TA的每日心情 | 无聊 2017-3-9 21:22 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
发表于 2007-12-5 18:13:03
|
显示全部楼层
我要奖品!!!!
过程:
一、转成单进程
用脚本可以搞定
二、找Magic Jmp
1、下he GetModuleHandleA shift + F9运行多少次忘记了。寄存器中出现
EAX 001293DC ASCII "kernel32.dll"
ECX 001293E8
EDX 001293DC ASCII "kernel32.dll"
EBX 00000000
ESP 0012928C
返回 取消硬断点
00CC5CFB FF15 BC62CE00 call dword ptr ds:[CE62BC] ; kernel32.LoadLibraryA
00CC5D01 8B0D AC40CF00 mov ecx,dword ptr ds:[CF40AC]
00CC5D07 89040E mov dword ptr ds:[esi+ecx],eax
00CC5D0A A1 AC40CF00 mov eax,dword ptr ds:[CF40AC]
00CC5D0F 391C06 cmp dword ptr ds:[esi+eax],ebx
00CC5D12 0F84 2F010000 je 00CC5E47 / /Magic Jmp 改为jmp 00CC5E47
在这里下个断点 00CC5E47 83C7 0C add edi,0C 按F2 运行
然后加到00CC5D12 处 恢复到 je 00CC5E47 怕出错。
2、下 he CreateThread 运行中断在
7C810637 > 8BFF mov edi,edi
7C810639 55 push ebp
7C81063A 8BEC mov ebp,esp
7C81063C FF75 1C push dword ptr ss:[ebp+1C]
一直单步到
00CDF709 8B90 90000000 mov edx,dword ptr ds:[eax+90]
00CDF70F 3350 40 xor edx,dword ptr ds:[eax+40]
00CDF712 3350 04 xor edx,dword ptr ds:[eax+4]
00CDF715 2BCA sub ecx,edx
00CDF717 FFD1 call ecx
在 00CDF717 按F7进去
(第一层完了)
到
0052E000 9C pushfd
0052E001 60 pushad
0052E002 E8 02000000 call 2.0052E009
第二层用ESP定律按定
hr 0012F6FC 运行 中断在
0052E467 9D popfd
0052E468 68 74C24900 push 2.0049C274
0052E46D C3 retn
返回就是OEP了
0049C274 55 push ebp
0049C275 8BEC mov ebp,esp
0049C277 83C4 F0 add esp,-10
0049C27A B8 ACBE4900 mov eax,2.0049BEAC
用LordPE DUMP出来 用ImportREC修复就OK了 把无效的指针删了。
还有个校验
0045E1F5 . /74 49 je short 0045E240
改为
0045E1F5 /EB 49 jmp short dumped_.0045E240
一切OK!!!!
问题没发现,在我的机器上正常
可能是指针没修复好的原因,我又做了一下,不晓得这回能用了不。
[ 本帖最后由 ABCdiyPE 于 2007-12-5 20:28 编辑 ] |
评分
-
查看全部评分
|