思路:
1) 添加一个新的节(可以copy一份)
2) 在新增节后面 填充一个节大小的000
3) 修改PE头中节的数量
4) 修改sizeOfImage的大小
5) 再原有数据的最后,新增一个节的数据(内存对齐的整数倍).
6)修正新增节表的属性
重点关注的几个结构:
1.PE标准头的NumberOfSections
2.节区头的VirtualAddress、SizeOfRawData、VirtualSize、PointerToRawData(这些是用来确定在新增节区在文件和内存中的位置,需要考虑偏移量)
3.可选头的SizeOfImage
操作过程(随便找一个程序为例):
现在有5个节区,我们目的是向其中添加一个同样的.data2节区
首先修改FileHeader->NumberOfSections结构为6
最后一个节区头的后面拷贝一个和.data相同的结构,执行一下,发现添加上了
手工添加一个节区(简单拷贝)
最新推荐文章于 2022-04-10 12:21:03 发布
本文介绍了如何手动向PE文件中添加一个新的节区,详细阐述了操作步骤,包括复制现有节区、填充0、更新PE头信息、修正节区属性等,确保新增节区在文件和内存中的正确定位。
摘要由CSDN通过智能技术生成