手脱ASProtect v1.2(无Stolen Code)

手脱ASProtect v1.2(无Stolen Code)

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