1.问题描述:
2.注意事项:
(1)首先判断头部的空白区够不够加节表, 所有的节表后面必须跟40个字节0。所以添加节表时得确保有两个节表大小(即80字节)的连续剩余。
分三种情况:a.头部的最后一个节表后直接可以放下两个节区
b.节表后放不下,但是dos头后pe前可放下
c.前两种情况都不行,需扩大最后一个节把代码填进去
(2)新增节需要修改的内容:
SizeOfImage
NumOfSections
节表内属性
(3) 在内存中添加新的节表时,需要注意:
新增节表中的VirtualAddress(内存中的偏移)必须是最后一个节表中VirtualAddress+max(VirtualSize,SizeOfRawData)
(注意: 不一定SizeOfRawData比VirtualSize大)
新增节表中的PoinTtoRawData(文件中的偏移)是最后一个节表中的PoinTtoRawData+SizeOfRawData
3.手工实现: