【文章标题】: ACProtect之补区段法(OEP Obfuscation, API redirection)
【文章作者】: wynney
【软件名称】: 1个小东西
【下载地址】: 自己搜索下载
【加壳方式】: AntiCrack Protector 1.0x -> RISCO Software Inc.
【使用工具】: Topo
【作者声明】: 论坛冷冷清清,浇浇水:)
--------------------------------------------------------------------------------
【详细过程】
一、写在前面:
东西很简单,本文所说的只是用一个方法来解决Stolen Code,没什么技术含量。
关于ACProtect的Stolen Code,以前有不少高人有具体分析,发文章之前,简单搜索了下论坛,看到这篇介绍的很详细。
《simonzh2000分析的Acprotect1.21加密的电脑中国象棋》。本文所介绍的是,如何用“傻瓜式”的方法来解决那些字节
抽取得太多的,而你又没耐性抑或没能力去分析的情况。抛砖引玉,勿见笑。
二、Fix IAT&Go to OEP
忽略所有异常。
00400000 00001000 NgaMy PE header Imag R RWE
00401000 00009000 NgaMy .text code Imag R RWE
0040A000 00002000 NgaMy .rdata code,data Imag R RWE
0040C000 00004000 NgaMy .data code Imag R RWE
00410000 0000F000 NgaMy .rsrc code,resourc Imag R RWE
0041F000 0001E000 NgaMy .perplex code,imports Imag R RWE
.rdata段,F2,Shift+F9
注:Delphi和BCB的程序是.idata段
作如上修改后,就可以用ImportREC来修复IAT了,到00401000段,下内存访问断点
第1次Shift+F9
第2次Shift+F9
第3次Shift+F9,到达FOEP
到此,脱壳吧,ImportREC修复,OEP填305C,全部有效,Fix Dump。
现在脱壳修复后的文件当然是运行不了的,因为OEP没修复嘛:)
三、Find Stolen Code Binary
Ctrl+F12,重新再入
几次Shift+F9后来到这里
0043BE77 /EB 01 jmp short NgaMy.0043BE7A
0043BE7A - FF25 BCBE4300 jmp dword ptr ds:[43BEBC] ; 跳向FOEP
以上的二进制代码就是所有的Stolen Code了,汇总下吧
四、Fix Stolen Code
打开Topo-->选择上面脱壳后修复的文件-->选择“创建一个新的区段”-->在新增加的字节中填写1000吧[这个大小够我们写代码了]-->
-->点执行-->提示新增加的区段起始地址为0043E000-->此时topo将备份原程序
OD打开topo修改的程序,Ctrl+G:0043E000,粘贴以上二进制
复制以上修改,保存为另外一个文件吧
打开LordPE,修正OEP为3E000,只选上“验证PE”重建 PE。到此脱壳完成。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!