新增节后,需要修改以下信息
1、添加一个新节,可以复制一份,最好是拥有可执行属性的节,如.text。
2、在节表区,新增节的后面,填充一个节,用零填充。
3、修改标准PE头中节的数量。
4、修改SizeOfImage的大小。
5、在原有数据的后面,新增一个节的数据(内存对齐的整倍数)。
6、修正新增节表的属性,比如.text段的一般都为可执行属性
1、Name:名字随便修改,不能超过八个字节。
2、VirtualSize:申请的新节空间大小,比如1000
3、VirtualAddress:等于上一个节的VirtualAddress + SizeOfRawData
4、SizeOfRawData:设置可以和VirtualSize一样,比如1000
5、PointerToRawData:等于上一个节的PointerToRawData+ SizeOfRawData
6、PointerToRelocation:设置成零
7、PointerToLineNumbers:设置成零
8、NumberOfLineRelocations:设置成零
9、NumberOfLineNumbers:设置成零
10、Characteristics:块属性0x20000060 可以取上一个节表和本节表的属性值,进行异或 如x|y