- UID
- 48683
注册时间2008-3-31
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 无聊 2015-8-12 00:27 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
发表于 2008-9-21 09:50:44
|
显示全部楼层
手动查找IAT就可以啦,要是不会手动可以用CHimpREC到时候会有一个无效指针- 我来留个笔记给你吧
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 00400154 > 8725 28A54400 xchg dword ptr ds:[44A528],esp //OD载入
- 0040015A 61 popad //单步F8
- 0040015B 94 xchg eax,esp //到这里时注意堆栈窗口
- 0040015C 55 push ebp
- 0040015D A4 movs byte ptr es:[edi],byte ptr ds:[esi]
- 0040015E B6 80 mov dh,80
- 00400160 FF13 call dword ptr ds:[ebx]
- 00400162 ^ 73 F9 jnb short LordPE.0040015D
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 0044A52C 004001E8 LordPE.004001E8
- 0044A530 004001DC LordPE.004001DC
- 0044A534 004001DE LordPE.004001DE //堆栈窗口
- 0044A538 00404340 LordPE.00404340 //此时在这里右键反汇编窗口中跟随,(此时的00404340就是我们的OEP)
- 0044A53C > 7C801D77 kernel32.LoadLibraryA
- 0044A540 > 7C80ADA0 kernel32.GetProcAddress
- 0044A544 00000000
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 00404340 0000 add byte ptr ds:[eax],al //反汇编窗口跟随时会显示未解码的样式删除模块分析就可以成需要啦
- 00404342 0000 add byte ptr ds:[eax],al //我们就在上面的00404340处执行右键断点,设置硬件执行断点
- 00404344 0000 add byte ptr ds:[eax],al //设置好硬件断点,F8运行一下就停在了OEP
- 00404346 0000 add byte ptr ds:[eax],al
- 00404348 0000 add byte ptr ds:[eax],al
- 0040434A 0000 add byte ptr ds:[eax],al
- 0040434C 0000 add byte ptr ds:[eax],al
- 0040434E 0000 add byte ptr ds:[eax],al
- 00404350 0000 add byte ptr ds:[eax],al
- 00404352 0000 add byte ptr ds:[eax],al
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 00404340 51 push ecx //这里即是我们的OEP
- 00404341 56 push esi //此时dump程序运行 lmportrce 修复会出现就一排指针,一般除VB程序外其他语言都不可能的
- 00404342 6A 00 push 0 //我们注意下面这句 call dword ptr ds:[419160],我们在命令栏输入 d 419160,回车
- 00404344 FF15 60914100 call dword ptr ds:[419160] //注意数据窗口
- 0040434A A3 5CE74100 mov dword ptr ds:[41E75C],eax
- 0040434F E8 BC000000 call LordPE.00404410
- 00404354 8B35 D8904100 mov esi,dword ptr ds:[4190D8] ; kernel32.ExitProcess
- 0040435A 85C0 test eax,eax
- 0040435C 75 04 jnz short LordPE.00404362
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 00419160 7C80B6A1 kernel32.GetModuleHandleA //我们此时停在这里
- 00419164 7C801A24 kernel32.CreateFileA //拖动滚动条向上,找带有第一句带有API函数的
- 00419168 7C80ADA0 kernel32.GetProcAddress
- 0041916C 7C80220F kernel32.WriteProcessMemory
- 00419170 7C809920 kernel32.GetCurrentProcessId
- 00419174 7C802442 kernel32.Sleep
- 00419178 7C80180E kernel32.ReadFile
- ━━━━━━━━━━━━━━━━━━━━━━━━━━
- 0041900C 77DAEAF4 ADVAPI32.RegCreateKeyExA //找到这一句就是最上面啦,这个1900c也就是我们的 RVA
- 00419010 77DAEBE7 ADVAPI32.RegSetValueExA //此时运行我们的 lmportrce OEP填写 4340 RVA填上1900C 大小填上1000就好
- 00419014 77DCD11B ADVAPI32.LookupPrivilegeValueA //会发现没有一个有效指针,点显示无效---右键剪切掉指针即可
- 00419018 77DA7753 ADVAPI32.OpenProcessToken //剪切指针后会发现全部有效啦,有186个指针,抓取我们dump出去的程序
- 0041901C 77DCC123 ADVAPI32.RegDeleteKeyA //运行成功,收工
复制代码 |
|