首页
社区
课程
招聘
[旧帖] [求助]关于PE文件格式的一个迷惑的地方 0.00雪花
发表于: 2008-5-17 21:58 3775

[旧帖] [求助]关于PE文件格式的一个迷惑的地方 0.00雪花

2008-5-17 21:58
3775
我有个小问题,一直是我迷惑的地方!
在节表中为什么有时候 VirtualSize 比  SizeOfRawData 要小呢?
一个是节的虚拟大小(是在内存中的大小吗?),一个是文件中的大小。文件中数据不是都全部映射到内存中去了吗,那内存中的虚拟大小要么比文件中大,要么至少相等吧,怎么可能小呢!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我问过同样的问题,但没得到准确的答案。
Matt Pietrek在探索PE文件内幕中讲.BSS节的时候提到:

在节表中,.bss节中的RawDataOffset域被设置为0,这表明这个节不占用文件的任何空间。TLINK并不生成这个节。它通过扩展DATA节的虚拟大小来代替。

目前我找到的最贴边的答案。
2008-5-17 22:36
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
3
真正的大小是对齐后的大小。
对齐后 VirtualSize>=SizeOfRawData
2008-5-17 23:19
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我想起来了这个VirtualSize 应该是可有可无的东西吧!
2008-5-18 00:10
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在网上查找了一下
有高手说VirtualSize 是 节对齐前的大小 , 而SizeOfRawData是 节对齐后的大小
但是事实表明 VirtualSize > SizeOfRawData  

我在想是不是这样的。VirtualSize 是 节对齐前的大小,在文件中时VirtualSize<SizeOfRawData
但当加载到内存中时,由于磁盘和内存对齐单位不同的原因,导致 VirtualSize > SizeOfRawData  !加载器会修改VirtualSize的值吗?
2008-5-18 00:18
0
游客
登录 | 注册 方可回帖
返回
//