【文章标题】: ACProtect 1.32之Code Replace的简单处理
【文章作者】: wynney
【软件名称】: CryptoKeys
【作者声明】: 重点是Code Replace的处理
【特别感谢】: pavka(Russian)
--------------------------------------------------------------------------------
【详细过程】
一、写在前面
关于Code Replace有不少大狭已经讲述过,但是就我这样的小菜鸟,看起来很吃力,本文介绍一种我个人认为
很简单的处理方法,旧版的处理方法在此文有介绍http://bbs.pediy.com/showthread.php?threadid=30330,
看了下ACProtect 2.0的主程序,Code Replace跟1.32版的似乎差不多,当然ACProtect 2.0的主程序还有
Crypted section、Embedded、OEP Obfuscation等其他保护
二、Fix IAT&Go to OEP
这个程序只有API redirection和Code Replace
忽略所有异常
在.idata段F2,shift+F9[Delphi和BCB的程序]
注意:VC类程序是.rdata段
OK,到.code段F2,shift+F9
脱壳吧,打开ImportREC,OEP=D8F8C,全部有效修复
三、Find Code Replace Binary
运行,出错!就是Code Replace搞的鬼。
OD载入脱壳修复后的文件,如下设置异常
F9运行
上面这一段就是Code Replace的关键了,现在我们来看看出错的源头
你也可以看看,程序中有N处call 0055F416
四、Fix Code Replace
打开脱壳后修复的文件
还记得我们上面异常中断的地方吧
我们需要这么一段代码,当然需要修改下
另外还需要修改Code Replace Function'Start
保存以上3处,程序可以运行了:)
我们还可以稍作优化,nop掉0055F41C~0055F5C0中的所有代码
五、后话
Code Replace就这么处理完了!
还可以提供一个思路:不用ImportREC来修复,这样就没有最后的.mackt区段了,这个在fly的文章中早有介绍,
如何操作请查看fly的精华文章,我就不累述了。压缩包中的CryptoKeysU.exe就是没有用ImportREC来修复的文件,
文件相对小一些,而且要相对完美些。因为如果有的程序多加了很多保护的话,它会检测是否有.perplex、入口是否在
.perplex所在区段等等
最后用Resource Binder 2.3优化下文件吧。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年03月24日 wynney 06:46:01