7C921231 C3 retn //OD载入程序比较希奇,停在系统上
7C921232 8BFF mov edi,edi //ait+f9先返回程序领空
7C921234 90 nop
7C921235 90 nop
━━━━━━━━━━━━━━━━━━━━━━━━━━
005108F9 33C0 xor eax,eax //第一次返回到了这里
005108FB 8B5424 F0 mov edx,dword ptr ss:[esp-10] //我们继续ait+f9返回
005108FF 64:8910 mov dword ptr fs:[eax],edx
00510902 58 pop eax
00510903 E8 00000000 call eXPresso.00510908
━━━━━━━━━━━━━━━━━━━━━━━━━━
005109A7 F0:0FF0 ??? ; 未知命令 //第二次我们返回到了这里
005109AA CC int3 //我们继续ait+f9返回
005109AB 33C0 xor eax,eax
005109AD 8B5424 F0 mov edx,dword ptr ss:[esp-10]
━━━━━━━━━━━━━━━━━━━━━━━━━━
0039004E C2 0400 retn 4 //第三次我们返回到了这里
00390051 3A2D 29000000 cmp ch,byte ptr ds:[29] //我们继续ait+f9返回
00390057 0000 add byte ptr ds:[eax],al
00390059 0000 add byte ptr ds:[eax],al
0039005B 0000 add byte ptr ds:[eax],al
━━━━━━━━━━━━━━━━━━━━━━━━━━
00510A26 58 pop eax ; ntdll.RtlRaiseException
00510A27 58 pop eax //返回到这里时,我们停下
00510A28 58 pop eax //在命令提示行输入bp VirtualProtect+5
00510A29 E8 00000000 call eXPresso.00510A2E //+5是为了避免程序检测到断点
00510A2E 5E pop esi //下好断点,我们shift+f9运行程序
00510A2F 83C6 11 add esi,11
━━━━━━━━━━━━━━━━━━━━━━━━━━
EAX 00000001
ECX 0012FF48 //经过大概20次之后我们注意寄存器
EDX 7C92EB94 ntdll.KiFastSystemCallRet //注意寄存器里的值
EBX 00001000
ESP 0012FFA0
EBP 7C801AD0 kernel32.VirtualProtect
ESI 00401000 eXPresso.00401000 //当寄存器里出现我们的code段时返回
EDI 00400000 ASCII "MZREh" //ESI显示我们的code段,EDI显示我们程序的基址
EIP 0050D189 eXPresso.0050D189 //正在返回大好时机
━━━━━━━━━━━━━━━━━━━━━━━━━━
0050D189 8D87 1F020000 lea eax,dword ptr ds:[edi+21F] //我们ait+b取消我们的断点
0050D18F 8020 7F and byte ptr ds:[eax],7F //单步F8一路向下走
0050D192 8060 28 7F and byte ptr ds:[eax+28],7F
━━━━━━━━━━━━━━━━━━━━━━━━━━
0050D19F 61 popad //比较眼熟吧,没有错就是UPX
0050D1A0 8D4424 80 lea eax,dword ptr ss:[esp-80] //这个UPX够变态吧
0050D1A4 6A 00 push 0
0050D1A6 39C4 cmp esp,eax
0050D1A8 ^ 75 FA jnz short eXPresso.0050D1A4
0050D1AA 83EC 80 sub esp,-80
0050D1AD - E9 CB6FF4FF jmp eXPresso.0045417D //这里返回到我们的OEP
━━━━━━━━━━━━━━━━━━━━━━━━━━
0045417D 55 push ebp //到达OEP,运行lordPE把程序DUMP
0045417E 8BEC mov ebp,esp //在运行importRCE把程序修复即可
00454180 6A FF push -1 //修复时有两个指针无效,直接剪切掉
00454182 68 48694800 push eXPresso.00486948
00454187 68 D0954500 push eXPresso.004595D0
0045418C 64:A1 00000000 mov eax,dword ptr fs:[0]
[ 本帖最后由 小生我怕怕 于 2008-12-9 00:45 编辑 ] |