1.载入PEID
ASProtect v1.2
2.载入OD
00401000 > 68 01C04200 push 跑跑赛道.0042C001 ; //入口处 00401005 C3 retn 00401006 AA stos byte ptr es:[edi] 00401007 802C46 EC sub byte ptr ds:[esi+eax*2],0EC 0040100B DD92 690D09A2 fst qword ptr ds:[edx+A2090D69] 00401011 E8 B2AC5655 call 5596BCC8 00401016 D5 B2 aad 0B2
3.忽略所有异常,使用最后一次异常法,应该是第20次,第21次程序就会跑飞了
009F23F1 FF07 inc dword ptr ds:[edi] ; //最后一次异常法落脚点 009F23F3 ^ EB E8 jmp short 009F23DD 009F23F5 8BC1 mov eax,ecx 009F23F7 33D2 xor edx,edx 009F23F9 64:8F02 pop dword ptr fs:[edx] 009F23FC 5A pop edx 009F23FD E8 00000000 call 009F2402 009F2402 33C1 xor eax,ecx
4.落脚后往下拉在最近的一个retn处下段F2,shift+F9,F2,让程序运行到这个位置
009F2442 /E9 07000000 jmp 009F244E 009F2447 |98 cwde 009F2448 |1BC4 sbb eax,esp 009F244A |C3 retn ; //F2,shift+F9,F2 009F244B |C1C0 36 rol eax,36 009F244E \23C6 and eax,esi 009F2450 311E xor dword ptr ds:[esi],ebx
5.打开内存窗口在401000处下段,然后shift+F9运行,然后就可以到达OEP了。
0040A41E 55 push ebp ; //OEP 0040A41F 8BEC mov ebp,esp 0040A421 6A FF push -1 0040A423 68 C8CB4000 push 跑跑赛道.0040CBC8 0040A428 68 A4A54000 push 跑跑赛道.0040A5A4 0040A42D 64:A1 00000000 mov eax,dword ptr fs:[0] 0040A433 50 push eax 0040A434 64:8925 0000000>mov dword ptr fs:[0],esp 0040A43B 83EC 68 sub esp,68
6.使用LoadPE+ImportREC脱壳即可,需要注意的是使用ImportREC等级1+等级3修复之后程序是无法运行的,需要使用ASProtect插件修复才可以,我已经试过了,吾爱官方的ImportREC自带这些修复插件的。
7.运行查壳
运行OK,查壳:Microsoft Visual C++ v6.0