C++自己写的压缩壳
仿照《加密解密》保护章节的加壳程序写的。基本思路是:1.读取待加壳exe的Image
2.处理IAT,压缩各个Section数据
3.编写ShellImage,将汇编的壳程序和压缩后的Section数据添加到新区段
汇编壳程序的思路很简单:
1.获取一些函数地址
2.解压和恢复Section数据
3.重建IAT
4.Goto OEP
加了几个花码,聊胜于无{:1_907:}。
目前遇到的问题:
1.Hook IAT的问题
我想讲IAT改写成push ProcAddr;ret;的形式,然而全部IAT处理以后,程序出错了,跟踪,看到有些IA不是被Call用的,比如msvcr100._acmdln,这个好像原始IAT处是一个字符串的地址,我改成push ProcAddr,ret形式后,就出错了,这个问题怎么解决?哪些IAT可以Hook,哪些不能?
2.我用的是aplib压缩引擎,我只会动态加载dll,所以每一个加壳后的程序还需要附带aplib.dll去解压,如何将aplib中的函数封装到壳里,这是我想解决的一个问题。
想改进的地方:
52_aha 发表于 2017-3-4 12:33
问一下楼主,我一直用的压缩壳是upx,不知道你这个压缩率有没有那个高
关于压缩率这个问题,主要取决于使用的压缩引擎。我使用的是aplib引擎,upx使用什么引擎没有研究,aplib引擎对小文件的压缩很优秀。 谢谢楼主分享
学习了 谢谢楼主分享
学习了 能写壳的都是大牛{:301_975:} 谢谢拉 学习下 嘿嘿{:301_978:} 厉害了!word哥 能写壳的都是大牛,佩服啊 谢谢分享,,感谢LZ,,吾爱破解有你更精彩!!! 感谢分享 谢谢 哈哈 谢谢大牛,我受益匪浅