手动修改PE文件:修改节表

本文介绍了如何手动修改PE文件,重点讲解了如何新增节以及移动节表。内容包括在特殊位置添加节,如在DosStub后,以及在文件末尾添加节,并讨论了如何更新文件头的相关信息以适应新增节。此外,还探讨了移动节表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前想到的关于修改节表就是新增节和节表移位,其它的改节的读写什么的就改个Flag而已就不说了。以后有新的想法再添加。


1.新增节


现在很多解析PE格式的软件都有添加节的功能,具体代码怎么写,下面就说一下。PE格式结构排布顺序是这样:Dos头->DosStub->NT头->节表->Padding->节内容。

在节表之后因为文件对齐的关系,可能会多出一段00,这一段00就可以用来扩充节表。

首先,要找到节表位置:

图中选择的部分就是最后一个节表位置,箭头部分就是要添加新节表的位置。用代码算算偏移就可以找到,手动找的话就从上面顺序找下来,找到以点开头的这一堆结构(正常程序),从点开始的40个字节就是节表的一项,然后一直偏移到后面00的位置就行了。


可以看到箭头所指的位置为0x2b0,根据此程序的文件对齐大小,得知程序内容开始在0x400处,之间就有很多空间来添加自己的东西。比如加新节表、代码、数据都可以。

根据节的结构修改内容,节结构是这样(Winnt.h):

#define IMAGE_S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值