pe文件节区的删除和增加

pe文件节区的删除和增加

节区(.reloc)的删除(按照《逆核》书中的步骤来进行)

整个过程需要四个步骤:
1.删除节区头
2.删除节区
3.修改节区数(number of section)
4.修改映像大小(size of image)

删除节区头

在这里插入图片描述
在hxd中找到rva从270到297区域,用0填充
在这里插入图片描述

删除节区内容

在这里插入图片描述
在hxd中找到poiner to raw data(磁盘中地址c000),删除其后面的所有内容
在这里插入图片描述

修改节区数量

找到文件头中的 number of section
在这里插入图片描述
同样在hxd中修改其值为4
在这里插入图片描述

修改映像大小

因为该文件的section alignment 大小是1000(他指定了节区在内存中的最小单位),而.reloc 节区的大小是E40,所以就要自动补齐为最小单位1000,所以删除该节区就要把image减去1000
在这里插入图片描述
将减去的结果在hxd中修改
在这里插入图片描述

修改成功

试一下reloc.exe是否能正常运行

增加节区

现在来增加一个名字为new的节区

步骤

1.增加节区头
2.修改节区数量
3.修改image大小
4.增加节区内容
5.修改新增节区的属性(VirtualSize,VirtualAddress,SizeOfRawData,PointerToRawData)

一,增加节区头

在这里插入图片描述
hxd中找到之前节区头最后的位置,判断是否有足够空间(看characteristics的第一个数据:40)存放一个节区头
在这里插入图片描述
然后填充节区头内容
在这里插入图片描述

二,修改节区头数

与删除节区操作一样,将5改为6

三,修改image大小

与之前相同,image大小增加1000 = 12000
在这里插入图片描述

四,增加节区内容

在原有的最后一个节区的末尾,增加一个节区的随机内容
在这里插入图片描述

五,修改新节区属性大小

现在需要将此时此刻修改一部分的文件保存,再载入peview查看
在这里插入图片描述
此时.new节区的属性还没有确定

修改VirtualSize

修改为1000
在这里插入图片描述

修改RVA

这里要按照上一个节区的大小来修改(注意对齐)
在这里插入图片描述
上一个节区的VirtualSize是E40,对齐后是1000,所以新节区的RVA就是10000+1000=11000,修改它
在这里插入图片描述

修改SizeOfRawData
这个大小取决于我们增加的节区内容大小(1000)
在这里插入图片描述
修改pointer to raw data
在这里插入图片描述
修改的依据是上面两个值相加=D000
在这里插入图片描述

修改成功

重新载入peview查看
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zsc_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值