squijy 发表于 2017-1-16 15:18

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中的函数封装到壳里,这是我想解决的一个问题。
想改进的地方:

squijy 发表于 2017-3-4 16:44

52_aha 发表于 2017-3-4 12:33
问一下楼主,我一直用的压缩壳是upx,不知道你这个压缩率有没有那个高

关于压缩率这个问题,主要取决于使用的压缩引擎。我使用的是aplib引擎,upx使用什么引擎没有研究,aplib引擎对小文件的压缩很优秀。

东关之南 发表于 2017-1-16 15:31

谢谢楼主分享
学习了

killyouiii 发表于 2017-1-16 15:35

谢谢楼主分享
学习了

clf3211147 发表于 2017-1-16 15:40

能写壳的都是大牛{:301_975:}

呆到深处自然萌 发表于 2017-1-16 15:42

谢谢拉 学习下 嘿嘿{:301_978:}

Nboos 发表于 2017-1-16 15:53

厉害了!word哥

daihoukun 发表于 2017-1-16 17:41

能写壳的都是大牛,佩服啊

v无法阻挡v 发表于 2017-1-17 01:28

谢谢分享,,感谢LZ,,吾爱破解有你更精彩!!!

q65686488 发表于 2017-1-17 01:55

感谢分享 谢谢    哈哈

lincyan 发表于 2017-1-23 15:14

谢谢大牛,我受益匪浅
页: [1] 2 3
查看完整版本: C++自己写的压缩壳