首页
社区
课程
招聘
[求助]pe文件增加新区段的问题
发表于: 2014-2-25 22:24 4254

[求助]pe文件增加新区段的问题

2014-2-25 22:24
4254
pe文件各个块的虚拟地址是否要连续?
比如:最后一个块.reloc 在虚拟地址 0001a000+451结束。但 因为对齐需要,  在 1b000位置处结束。
我新加一个块 .hook 虚拟起始地址设置为 1c000, 与与上一个块结束的虚拟地址 1b000之间有空洞。
增加这个块后发现,pe文件执行不了,显示不是win32程序。
如果我紧接着  最后一个块 加新的块  也就是说 新块起始地址设置为 1b000的话 不存在问题
pe文件可以执行
但有空洞的话  就不执行

该怎么解决  有空洞的问题 ? 因为我想,控制新建块的起始虚拟地址

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
难道是SizeOfImage必须是最大地址-最小地址,即使中间有空洞?
2014-2-25 23:16
0
雪    币: 1552
活跃值: (1288)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
3
空洞是指区块之间在虚拟地址空间中是不连续的
区块1
区块2
空洞。。。
区块3
区块4

并且各区块的起始地址是按照对齐规则对齐的
2014-2-26 08:30
0
雪    币: 25
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好久没有弄PE了,都忘记差不多了.

记得exe内存对其是0x1000,而exe在硬盘上的文件对其是0x200. 当然,这个不是通用的,有可能不一样.
你是直接修改文件添加块还是内存添加了以后又保存到文件的?  如果是另存到文件的,还要修复IAT表什么的.
2014-2-26 09:36
0
雪    币: 1552
活跃值: (1288)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
5
区块之间不允许有空洞
2014-2-26 11:19
0
游客
登录 | 注册 方可回帖
返回