今天基友发来一溢出程序让免杀,载入PEid显示PECompact 2.x -> Jeremy Collake,脱壳咱是小菜啊~果断百度找方法,记录下脱壳的过程.
首先程序载入OD 后停在此处:
00407A2F > B8 38D3E400 mov eax,XS++.00E4D338 00407A34 50 push eax 00407A35 64:FF35 0000000>push dword ptr fs:[0] 00407A3C 64:8925 0000000>mov dword ptr fs:[0],esp 00407A43 33C0 xor eax,eax 00407A45 8908 mov dword ptr ds:[eax],ecx
单步 F8 3下到 这里
00407A3C 64:8925 0000000>mov dword ptr fs:[0],esp
看esp 的值, 使用esp定律,(dd esp,-跟随到数据窗口-断点-硬件访问断点 byte), 然后 shift + F9 停到这里:
00E4D367 83C4 04 add esp,4 00E4D36A 55 push ebp 00E4D36B 53 push ebx 00E4D36C 51 push ecx 00E4D36D 57 push edi 00E4D36E 56 push esi 00E4D36F 52 push edx
删除硬件断点, 一直单步F8: (或者往下拉拉,看下面的代码 ,找到 jmp eax; 直接下断)
00E4D3F7 59 pop ecx 00E4D3F8 5B pop ebx 00E4D3F9 5D pop ebp 00E4D3FA FFE0 jmp eax; /// 跑到 oep 00E4D3FC 0000 add byte ptr ds:[eax],al 00E4D3FE 0000 add byte ptr ds:[eax],al 00E4D400 0000 add byte ptr ds:[eax],al
OK,到达入口点,脱之~