文章目录
预备知识
文件结构示意图:
添加节表和节的步骤说明:
1、判断是否有足够的空间,可以添加一个节表.
判断条件:
SizeOfHeader - (DOS + 垃圾数据 + PE标记 + 标准PE头 + 可选PE头 + 已存在节表) >= 2个节表的大小 (如果只有一个节表以上的空间也可以加不会报错,但是会有安全隐患)
2、需要修改的数据
- 添加一个新的节(可以copy一份)
- 在新增节后面 填充一个节大小的000
- 修改PE头中节的数量
- 修改sizeOfImage的大小
- 再原有数据的最后,新增一个节的数据(内存对齐的整数倍)
- 修正新增节表的属性
手工添加步骤
1.检查是否有足够空间
如图:
手工添加有两种方法查看是否有足够空间问题
1.第一种方法:使用HEX文本编辑器找到最后一个节表,查看空白区
2.第二种方法:使用PETools查看SizeofHeaders大小和最后一个节表存的地址相减。
0x00001000 - 0x00000294 (空间足够了)
注:一个节表大小为40字节
2.添加一个新的节
copy .text段节表,到下面,作为新的节。更改名称为.tttt
修改前:
修改后:
3.修正节的数量
修改前:
修改后:
4 修改sizeOfImage的大小
修改前:
修改后:
我们这里增加新的节表大小为0x1000所以把原来的033000,改成034000就行了
5 再原有数据的最后,新增一个节的数据(内存对齐的整数倍)
修改前:
修改后:
6 修正新增节表的属性
首先看一下,现在节表的情况:
修正信息 :
测试图
开源地址:
源代码: https://github.com/vShellCode/Analysis-of-PE-structure
觉得不错请给个star!