首页
社区
课程
招聘
[求助]看书之后的疑问,关于pe格式的,高人请进,在此拜过了!
发表于: 2006-5-16 10:17 6447

[求助]看书之后的疑问,关于pe格式的,高人请进,在此拜过了!

2006-5-16 10:17
6447
小弟前段时间潜心研究了pe格式,当然也看了看雪大哥的两本书,受益匪浅,但是有两个问题一直没搞明白,在此向各位高人请教!
第一:在pe可选文件头下的Data Directory属性中BOUND_IMPORT(绑定输入)一项,我将他的偏移和大小全部置零(可以说是绑定输入这一项取消了吧),程序正常执行,因此我就有点疑问,到底这一项对pe文件起何作用,修改它会对pe文件产生什么影响,可不可以任意修改?
第二:小弟也看了“加密解密”第二版,在后面有一个增加段的,因此我就想创新以下,增加一个pe文件的大小,扩展它的数据段,以下是我做的工作:
1。假如我要扩展代码段,在第一个段之后直接插入4096个字节(用ultraedit很容易);
2。然后修改相关属性,我所修改的如下:
size of image加0x1000,
Data Directory属性下RESOURCE 的 rva加0x1000,
然后时段表中的属性:第一段的VirtSize加0x1000  ,raw data size加0x1000;
后续段的VirtAddr 和raw data offs加0x1000;
自认为修改完了,然后用windump也能正常分析,但是打开文件时在xp下出现提示参数设置不正确,在98下游的双击没法应,有的提示遇到错误windows将其关闭,真不知道是怎么回事!
以上两个问题很是困惑我,希望各位高手,大哥大姐帮帮忙,小弟在此不胜感激,我想这也包含了一些有用的信息,如果坛主能来的话,希望坛主赐教!
再次感谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
第一个问题:http://bbs.pediy.com/showthread.php?s=&threadid=24170&highlight=BOUNDIMPORT

第二个问题:
你新增的大小要对齐,像4096这个字不合法的,一般的对齐值是0x1000,所以,你新增大小是0x1000倍数,如0x4000或0x5000

你应将区块的信息帖出来,随意增加代码段大小会影响后面区块的,即使成功,程序运行也可能出错,资源移动不是简单改RVA,资源里相关数据都要改动。
2006-5-16 10:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢坛主指点,第一个问题我搞明白了;
但是第二个问题,我都是在ultraedit下手动改的,插入4096是十进制,也就是十六进制的1000h呀,而且后面的段的段表中的偏移我也改了,因为ultraedit是插入功能所以后续段的数据也直接后移了啊!资源的数据当然也后移了,所以感觉修改得没错,就是运行不了!
坛主说的“随意增加代码段大小会影响后面区块的,即使成功,程序运行也可能出错”是什么意思?我想现在我的问题就在这里,是不是不能随意增加代码段的大小,但是我增加后面数据段也出现这样的问题。
很费解!希望坛主百忙之中能再指点一二,拜过了!
2006-5-16 15:33
0
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
Number  Name    VirtSize RVA      PhysSize Offset   Flag
     1 .text    00002C1E 00001000 00003000 00001000 60000020   
     2 .rdata   00000898 00004000 00001000 00004000 40000040
     3 .data    00000A1C 00005000 00001000 00005000 C0000040
     4 .rsrc    00001000 00006000 00001000 00006000 40000040

上图是某个程序的区块表,你现在想增加.text大小,按你的意思是想将.text区块的PhysSize:3000,变成0x4000。你改后,势必影响后面的区块.rdata,.data,.rsrc。
例如你改后,.rdata的RVA就会变成0x50000,而程序许多访问.rdata代码你也得修正,例如:

call    dword ptr [404044]  //你得改成call    dword ptr [405044]

还有其他一些数据变量等,因此说,你这想法是不现实的。

.rsrc 区块倒可以用一些资源工具移动。
2006-5-16 15:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
听你这么一分析,我真的感到自己对pe格式还是有待更深入的了解啊!
感谢大哥的赐教!拜过了!
2006-5-16 18:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
假如我重建重定向表,会不会可以解决问题?
2007-3-9 18:34
0
游客
登录 | 注册 方可回帖
返回
//