ACProtect Professional 1.3C 主程序脱壳(3)(图)

2023-12-04 0 202

运行程序,crashedL。直接用修复完stolen code的dumped_.exe看看。从EP的第1个call进去就有问题。

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

在OllyDbg中可以看到:
500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

有部分IAT在壳中。这部分代码前面是跟到了的(在第6次int 3以后),原来认为这只是loader自己需要的API。实际上正常的程序代码也使用了这个IAT。

如果用ImportRec把这部分也取出来,属于不同dll的api混排了,ImportRec不能处理
这些地址是在736643处理的。
500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

而且有一个不能识别(这个实际上是Hooked MessageBoxA)。

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

估计这是加壳时做的手脚。当发现主程序使用了与壳代码同样的API时,修改了对应的调用代码,使其调用到壳中的IAT。这样可以加强与壳的联系。反过来看,这里大部分API(除了只有壳使用的),在前面避开IAT加密处理后,都已经import了。

在ACProtect_Fixed中已经有解好的api名。

ACProtect Professional 1.3C 主程序脱壳(3)(图)500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />
紧临的函数指针:

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

注意函数名及指针与7339A9附近的代码并不完全对应。有的函数名或指针在别处。

可以在程序入口自己调用LoadLibrary,GetProcAddress进行处理,填入相应的地址。或者把Loader的代码搬过来。也可以修改主程序的代码,使其调用前面得到的干净的IAT而不是壳中的IAT(这样要处理的地方太多,很麻烦)。

注意ACProtected_Fixed中,import了几个基本的API:
ACProtect Professional 1.3C 主程序脱壳(3)(图)500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />
在加载API时壳代码会使用这些函数。这几个地址直接填入007300D8开始的IAT中了。修改dumped_.exe的EP,从壳代码开始(可以看到dump出来的代码,这部分已经解开了),

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

注意Loader代码中用的几个API(GetModuleHandleA,GetProcAddress)改为使用避开IAT加密后得到的主程序的IAT。
500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

原来在壳代码import的4个API,从主程序的IAT直接取。结束处理后跳回前面的OEP 409DE4。用pushad,pushad保存寄存器值。

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

注意最后一项7301CC实际是MessageBoxA,被ACProtect用做SDK的接口。 不要填入MessageBox的真正地址。

下面的73013C在跟原程序的过程中始终为0,可能是注册版才有?
500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

处理完后,位于壳空间的IAT已经赋上了正确值。

7. 修复Replaced code (1)

用前面的OllyScript脚本,停下后对Code section设内存访问断点。忽略所有异常。断下后,在抽取代码的共同入口722416设断,运行。第1次调用在004047E5。

ACProtect Professional 1.3C 主程序脱壳(3)(图)500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />
里面还有SMC,解出后贴到ACProtect_Fixed中对照跟踪。这部分的处理与低版本基本相同。

1) 查返回地址表

500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

7225CC后ebx指向返回地址表,里面是RVA:
500)this.width=500\” title=\”点击这里用新窗口浏览图片\” />

上一页12 3 下一页 阅读全文

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 加密解密 ACProtect Professional 1.3C 主程序脱壳(3)(图) https://www.u-9.cn/security/jiemi/73845.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务