首页
社区
课程
招聘
[讨论]一个PE data区块的疑问
发表于: 2015-3-9 19:37 4334

[讨论]一个PE data区块的疑问

2015-3-9 19:37
4334
最近看在PE结构,
看到DATA段的时候发现
DATA段的
未加载内存的大小 VirtualSize:           0x0002712C
比加载内存后对齐的大小大  SizeOfRawData:         0x00009000
这是什么原因呢,其他区段都是 sizeOfRawData 大于 VirtualSize
我的理解是对齐后应该比没有对齐前占用的空间大,但是这个 Data 段为什么正好相反


Name:                  .data
    VirtualSize:           0x0002712C
    VirtualAddress:        0x00229000
    SizeOfRawData:         0x00009000
    PointerToRawData:      0x00227C00
    PointerToRelocations:  0x00000000
    PointerToLinenumbers:  0x00000000
    NumberOfRelocations:   0x0000
    NumberOfLinenumbers:   0x0000
    Characteristics:       0xC0000040
    (INITIALIZED_DATA, READ, WRITE)

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (7)
雪    币: 19
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
展开和没展开的区别
sectionalignment
filealignment
2015-3-9 20:15
0
雪    币: 2
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
SizeOfRawData是文件对齐值的整数倍. 他是根据文件对齐取的大小. 不是内存对齐值
2015-3-9 20:20
0
雪    币: 376
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
为什么对齐的比文件的小呢
2015-3-9 20:27
0
雪    币: 1
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MSDN 上的:
VirtualSize
The total size of the section when loaded into memory, in bytes. If this value is greater than the SizeOfRawData member, the section is filled with zeroes. This field is valid only for executable images and should be set to 0 for object files

我理解的意思是,只有executable imagess时,有可能VirtualSize(文件,内存未对齐)比SizeOfRawData(文件对齐)大,大的部分用0来填充.不过我在想,这里executable imagess,只指exe么?
2015-3-9 21:06
0
雪    币: 376
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
应该是翻译过来 执行镜像
2015-3-10 00:06
0
雪    币: 19
活跃值: (1106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
VirtualSize: 指出实际的,被使用的区块大小,是区块在没有对齐处理前的实际大小.如果VirtualSize > SizeOfRawData,那么SizeOfRawData是可执行文件初始化数据的大小
(SizeOfRawData – VirtualSize)的字节用0来填充.这个字段在OBJ文件中被设为0.

SizeofRawData: 该块在磁盘中所占的大小,在可执行文件中,该字段包括经过FileAlignment调整后块的长度。例如FileAlignment的大小为200h, 如果VirtualSize中的块长度为19Ah个字节,这一块保存的长度为200h个字节.
2015-3-10 00:33
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
SizeOfRawData 一般情况指磁盘文件大小,有些特殊的指压缩后大小。VirtualSize就是内存中的大小.
2015-3-10 08:19
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册