PE 新增节

新增节后,需要修改以下信息

1、添加一个新节,可以复制一份,最好是拥有可执行属性的节,如.text

2、在节表区,新增节的后面,填充一个节,用零填充

PE 新增节_第1张图片

3、修改标准PE头中NumberOfSections中节的数量,我这里原来5个,现在6个了

PE 新增节_第2张图片

4、修改SizeOfImage的大小,这里自己新增了0x1000,原本是27000,现在改为28000

PE 新增节_第3张图片

5、在原有数据的后面,新增一个节的数据(大小为内存对齐的整倍数)

6、修正新增节表的属性,比如.text段的一般都为可执行属性,0x60000020


Name:名字随便修改,不能超过八个字节。

VirtualSize:申请的新节空间大小,比如1000

PE 新增节_第4张图片

VirtualAddress:等于上一个节的VirtualAddress + SizeOfRawData,VirtualAddress为在内存中的起始地址

PE 新增节_第5张图片

SizeOfRawData:当前节在文件中对齐后的大小,这里设置为0x1000

这里SizeOfRawData和VirtualSize一样大小的原因是当前PE程序的内存对齐大小和文件对齐大小是相同的!

PE 新增节_第6张图片

PointerToRawData:等于上一个节的PointerToRawData + SizeOfRawData,当前节 数据在文件中的起始地址就是 上个节 在文件中对齐后的大小SizeOfRawData 加上 上个节 数据在文件中的起始地址PointerToRawData

PE 新增节_第7张图片

PointerToRelocation:设置成零

PointerToLineNumbers:设置成零

NumberOfLineRelocations:设置成零

NumberOfLineNumbers:设置成零

Characteristics:块属性0x20000060为可执行

参考文章:https://www.cnblogs.com/iBinary/p/9735276.html

你可能感兴趣的:(PE 新增节)