02 写壳

写压缩壳的思路:

提取正常PE的数据,和我们的壳代码合起来得到一个新的PE,就得到了压缩后的PE。

我们需要写两个工程:

1. 加壳器:给指定的程序加壳

2. 壳代码:新PE里的壳代码,进行解压缩,填导入表等操作

为了书写方便,把壳代码和压缩后的代码放在不同的节中。一般把每个节单独压缩,解压缩时也单独处理。

 

解压缩思路:

由于运行地址不固定,所以代码中不能访问绝对地址,此种代码称为地址无关代码(shellcode)。为实现此目的,所有字符串要保存在栈上,写成字符序列的方式。模块地址可从PEB中获取,并自己实现GetProcAddress。

 

VS可生成shellcode,要改以下选项:

  1. Release

  2. 随机基址选项打开

  3. 修改入口函数

  4. 关闭GS选项

  5. 关闭优化

上一篇:微PE工具箱v2.1魔改


下一篇:《VC驿站《PE文件格式解析》》