创建加壳器和stub项目
新建加壳器和stub项目,stub设置如下。
程序中动态调用dll,因此需要先生成dll。
设置解决方案依赖项,调整生成顺序
设置输出目录,工作目录,库目录,中间目录
项目结构如下
新增节-存放stub代码
1.一个节表0x28个字节.在最后一个节表位置添加.如果SizeofHeaders 有足够空间的情况下.
2.修改文件头中节表个数. 文件.SectionNumber = 原有节个数 + 你新增节的个数. 例如: 原为7.你增加了一个节.就为8
3.修改节属性:
节.VirtuallAddress 内存中展开的位置.按照内存对齐. 可以参照上一个节.virtuallAddress位置.我们进行修改.
节.SizeofRawData 节数据按照文件对齐后的大小. 节.SizeofRawData = 你添加的节数据大小. 按照文件对齐存放. 例如添加了0x1000.那么大小就是0x1000
节.PointerToRawData 文件中的偏移. 节.PointerToRawData = ()上一个节.PointerToRawData + 上一个节.SizeofRawData. )
4.修改扩展头SizeofImage PE镜像大小. 扩展头.SizeofImage = 内存对齐(原SizeofImage值 + 你行增节数据大小 按照内存对齐)