2、下断点:BP VirtualFree。中断后,取消断点,Alt+F9。
003F0357 8B46 0C mov eax,dword ptr ds:[esi+C] //返回到这里
003F035A 03C7 add eax,edi
003F035C 5D pop ebp
003F035D 5E pop esi
003F035E 5F pop edi
003F035F 59 pop ecx
003F0360 5B pop ebx
003F0361 C3 retn
3、然后,ctrl+F ,查找 push 8000(特征码)。
003F0340 68 00800000 push 8000
003F0345 6A 00 push 0
003F0347 FFB5 C3120010 push dword ptr ss:[ebp+100012C3]
003F034D 8B46 28 mov eax,dword ptr ds:[esi+28]
003F0350 8B7E 08 mov edi,dword ptr ds:[esi+8]
003F0353 03C7 add eax,edi
003F0355 FF10 call dword ptr ds:[eax]
003F0357 8B46 0C mov eax,dword ptr ds:[esi+C]
003F035A 03C7 add eax,edi
003F035C 5D pop ebp
003F035D 5E pop esi
003F035E 5F pop edi
003F035F 59 pop ecx
003F0360 5B pop ebx
003F0361 C3 retn //F2下断点
4、F9 ,运行,此时断了。单步f8,来到
1006F62B 8985 2D110010 mov dword ptr ss:[ebp+1000112D],eax ; NaviHelp.<模块入口点>
1006F631 8BF0 mov esi,eax
1006F633 59 pop ecx
1006F634 034B 18 add ecx,dword ptr ds:[ebx+18]
1006F637 68 00800000 push 8000
1006F63C 6A 00 push 0
1006F63E 57 push edi
1006F63F FF11 call dword ptr ds:[ecx]
1006F641 8BC6 mov eax,esi
1006F643 5E pop esi
1006F644 5F pop edi
1006F645 59 pop ecx
1006F646 5B pop ebx
1006F647 5D pop ebp
1006F648 FFE0 jmp eax //跳到OEP
5、下面就是DUMP进程,ImportREC修复输入表了。
脱壳后查壳为Microsoft Visual C++ 7.0 Method2