【PE】扩大节、新增节、合并节
扩大节、新增节、合并节
详细查看https://bbs.kanxue.com/thread-281836.htm#msg_header_h3_9
扩大节
最好只扩大最后一个节
1、分配一块新的空间了,大小为S
2、将最后一个节的SizeOfRawData和VirtualSize改成N
N = (SizeOfRawData或者VirtualSize内存对齐后的值)+S
3、修改SizeOfImage大小
4、如果不能执行就在节的末尾的Characteristics属性改成具有可执行的功能
新增节
1、先判断节表有没有空间可以新增一个节表成员
2、在节表新增一个成员
3、修改PE头中节的数量
4、修改SizeOfImage大小
5、在原有数据的最后,新增一个节的数据(内存对齐整数)
6、修正新增节表属性
合并节
先拉伸,后合并,需要用拉伸后的对齐法进行合并
1、按照内存对齐展开
2、将第一个节的内存大小、文件大小改成一样
Max = SizeOfRawData>VirtualSize ?SizeOfRawData:VirtualSize
SizeOfRawData=VirtualSize=最后一个节的VirtualAddress+Max-SizeOfHeaders内存对齐后的大小
3、将第一个节的属性改为包含所有节的属性
4、修改节的数量为1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哥布林的❤秘密❤洞穴!