手脱ACProtect V2.0(无Stolen Code)

手脱ACProtect V2.0(无Stolen Code)

1.载入PEID

ACProtect V2.0 -> risco

2.载入OD

00401000 >  68 00A04000     push ACP_Feed.0040A000                         ; //入口点
00401005    68 0B104000     push ACP_Feed.0040100B
0040100A    C3              retn
0040100B    C3              retn
0040100C    858A 1D04802F   test dword ptr ds:[edx+2F80041D],ecx
00401012  - 77 82           ja short ACP_Feed.00400F96
00401014    EE              out dx,al
 

3.命令行输入:”bp GetCurrentProcessId”,然后shift+F9运行,落脚点在这个位置

7C8099B0 >  64:A1 18000000  mov eax,dword ptr fs:[18]                      ; //落脚点
7C8099B6    8B40 20         mov eax,dword ptr ds:[eax+20]
7C8099B9    C3              retn
7C8099BA    90              nop
7C8099BB    90              nop
 

4.先取消刚刚下的断点(Bp就是下断的意思),然后打开LoadPE,查看OD载入的这个程序的进程号也就是PId。我这里是”00000254”,可能不同的机器或者系统打开后显示的不同。

5.然后把步骤三中的代码进行修改,修改落脚点代码,把”mov eax,”后面的那个值改为步骤四中的Pid的值,然后把把原先落脚点下一行的mov代码整个给nop掉。修改完成后的代码变为下图这样:

7C8099B0 >  B8 54020000     mov eax,254                                    ; //落脚点
7C8099B5    90              nop
7C8099B6    90              nop
7C8099B7    90              nop
7C8099B8    90              nop
7C8099B9    C3              retn
7C8099BA    90              nop
7C8099BB    90              nop
 

6.步骤五执行完之后下第二个断点”BP GetModuleHandleA”,然后shift+F9,落脚点应该是这个位置

7C80B731 >  8BFF            mov edi,edi                                    ; //落脚点
7C80B733    55              push ebp
7C80B734    8BEC            mov ebp,esp
7C80B736    837D 08 00      cmp dword ptr ss:[ebp+8],0
7C80B73A    74 18           je short kernel32.7C80B754
7C80B73C    FF75 08         push dword ptr ss:[ebp+8]
 

7.取消断点,打开内存界面,在401000的位置下断点然后shift+F9运行,此时会弹出ACProtect的提示框,点一下确定就可以

Memory map, 项目 22
 地址=00401000
 大小=00002000 (8192.)
 属主=ACP_Feed 00400000
 区段=CODE
 包含=SFX,代码
 类型=映像 01001002
 访问=R
 初始访问=RWE
 

8.点完确定后就直接来到OEP了,然后使用LoadPE+ImportREC脱壳即可

00402150    55              push ebp                                       ; //OEP
00402151    8BEC            mov ebp,esp
00402153    83C4 F0         add esp,-10
00402156    53              push ebx
00402157    B8 10214000     mov eax,ACP_Feed.00402110
0040215C    E8 4FFCFFFF     call ACP_Feed.00401DB0
00402161    68 C4214000     push ACP_Feed.004021C4                         ; ASCII "ACProtect Feedback Form"
00402166    6A 00           push 0
00402168    6A 00           push 0
 

9.运行查壳

运行OK,查壳:Borland Delphi v3.0