ximo基础脱壳教程18:ACProtect之寻找丢失的Stolen Code
今天继续来脱一下偷代码的ACProtect壳,上一次脱的是版本比较低的壳,这次我们脱的是版本比较高的壳
我们还是先查一下壳
什么也没有发现,但是EP段显示.preplex,并且下面显示UltraProtect,UltraProtect是ACProtect的先前版本
我们用OD载入,然后打开调试选项,取消勾选int3中断,之前我们都是取消勾选非法访问内存,但这次要勾选,一般来说,都是取消勾INT3中断和非法访问内存中断中的一个
然后我们使用最后一次异常法,shift+F9
然后右键堆栈窗口的SE处理程序,,数据窗口跟随,下内存访问断点,shift+F9
下断,再次SHIFT+F9,下断,再次SHIFT+F9,取消所有断点,直接F4到RETN处
然后我们在命令窗口中输入d 12ffc0
然后下硬件断点,shift+F9
然后我们就找到了被偷去的代码
记录下被偷的代码,然后跳转到OEP
将需要的部分nop掉,然后填充,修改EIP
然后我们脱壳修复,修复完之后我们发现程序依然不能运行,这是因为高版本的ACProtect壳会检测你的程序,所以这里我们这里要再进行处理
我们用OD载入修复完的程序,我们右键转到修复之前的OEP
然后我们把被偷的代码放到起始的位置,然后跳转到真正的OEP
然后我们保存
选择保存文件
这时候我们保存的文件还是不能打开,这是因为,我们还没有改变OEP,我们用LordPE修改它的OEP,改为修复之前的OEP
修复完之后,选择保存,程序正常打开