首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
0
0
[求助]一直挺想问的一个问题。
发表于: 2012-12-31 15:16
5101
[求助]一直挺想问的一个问题。
hrpirip
1
2012-12-31 15:16
5101
求大牛解答呀。
应该和文件对齐粒度无关吧,内存的对齐值高于文件对齐值。所以节区装载偏移一般大于文件节区装载偏移。
V.Size、R.Size究竟哪个更准确?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
#调试逆向
上传的附件:
VSize.jpg
(34.07kb,2次下载)
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
10
)
DriverAsm
雪 币:
22
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
11
回帖
146
粉丝
0
关注
私信
DriverAsm
2
楼
PE 文件对齐?
段 在磁盘 中按 0x200 bytes 对齐 (对齐当然就是补0了)
段 在内存 中按 0x1000 对齐
你这里的 v.size 应该是该 Section 的大小 (IMAGE_SECTION_HEADER.SizeOfRawData)
SectionHeader 还有段在 文件 和 内存 的偏移 ,用LoadPE 多看看就ok了。
2012-12-31 16:57
0
accessd
雪 币:
1115
活跃值:
(122)
能力值:
( LV7,RANK:100 )
在线值:
发帖
21
回帖
311
粉丝
3
关注
私信
accessd
2
3
楼
一直在等待回答这个问题:
一个是文件中的原始大小,一个是加载到内存后的大小。section加载到内存后,以页对齐。一页==0x1000
2012-12-31 16:59
0
HOWMP
雪 币:
2815
活跃值:
(2608)
能力值:
( LV6,RANK:80 )
在线值:
发帖
8
回帖
248
粉丝
7
关注
私信
HOWMP
1
4
楼
R.Size就是节在文件的中大小,一般都是对齐的。见过最后一个节可以不对齐
V.Size是加载到内存中大小(加载后会自动对齐),通常与R.Size差不多。但如果数据节未初始化变量比较多,就比R.Size大了。
不知你要的准确是指什么?准确的内存大小,还是准确的文件大小?或者你只是想计算一下文件中冗余空间?
2012-12-31 17:09
0
hrpirip
雪 币:
55
活跃值:
(519)
能力值:
( LV6,RANK:80 )
在线值:
发帖
48
回帖
407
粉丝
2
关注
私信
hrpirip
1
5
楼
我就是疑惑为什么加载到内存中会变小呢?
从图中看,
代码段,
只读数据段,
资源段,
重定位段,
为何都比在文件中的大小要小呢?丢掉的究竟是什么。
如果按照200文件,1000内存的方式对齐,如果说Size会把对齐补填的那部分大小算进来,那么应该是内存中的Size大于文件中的Size才对。
如果是碰巧,可我连续看了几个PE文件都是
VSize< RSize
。
2012-12-31 17:34
0
accessd
雪 币:
1115
活跃值:
(122)
能力值:
( LV7,RANK:100 )
在线值:
发帖
21
回帖
311
粉丝
3
关注
私信
accessd
2
6
楼
加载后肯定会大于等于原始文件中的数据。
2012-12-31 17:46
0
hrpirip
雪 币:
55
活跃值:
(519)
能力值:
( LV6,RANK:80 )
在线值:
发帖
48
回帖
407
粉丝
2
关注
私信
hrpirip
1
7
楼
PEID没有误报,它的意思是内存中的大小,比文件中的大小要小。
2012-12-31 21:05
0
wbs
雪 币:
1559
活跃值:
(1795)
能力值:
( LV2,RANK:10 )
在线值:
发帖
7
回帖
232
粉丝
0
关注
私信
wbs
8
楼
我也很困惑 大牛出来解释一下吧
2013-1-9 16:09
0
LoveMeiL
雪 币:
71
活跃值:
(242)
能力值:
( LV7,RANK:100 )
在线值:
发帖
7
回帖
21
粉丝
1
关注
私信
LoveMeiL
2
9
楼
按内存对齐后的值来算的
2013-1-9 16:44
0
Elijah
雪 币:
411
活跃值:
(25)
能力值:
( LV3,RANK:20 )
在线值:
发帖
11
回帖
90
粉丝
0
关注
私信
Elijah
10
楼
我是这么理解的。
R.size显示的是文件中的对齐后的大小,而V.size显示的不是在内存中对齐后的值。
上传的附件:
1.jpg
(56.80kb,1次下载)
2.jpg
(12.37kb,1次下载)
3.jpg
(54.66kb,1次下载)
2013-1-9 16:58
0
LiXMX
雪 币:
2155
活跃值:
(29)
能力值:
( LV3,RANK:20 )
在线值:
发帖
28
回帖
336
粉丝
1
关注
私信
LiXMX
11
楼
楼主的程序应该是VC的,或者说应该是MS的开发工具生成的。特点是内存和磁盘文件的对齐都是0x1000,并且V.SIZE明显的是不可以被0x1000整除的,而R.SIZE可以乘除0x1000。
再来看看这个,是我的一个C++Builder的程序区段信息。
对齐尺寸:文件是0x100或者0x200,内存中是0x1000。并且V.SIZE明显可以被0x1000整除
所以我感觉这个是编译器的问题。
VC++的编译器在生成PE头的时候,在计算V.SIZE的时候没有计算上该段末尾填充的0的数量。
C++Builder的编译器在生成PE头的时候,把末尾填充的0也算作是段的一部分长度了。
上传的附件:
VxMCUSec.JPG
(28.54kb,2次下载)
2013-1-9 17:44
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
hrpirip
1
48
发帖
407
回帖
80
RANK
关注
私信
他的文章
[求助] [ game ] 近期遇到的一个未解决的 OD&CE 硬件断点 调试问题
20838
二进制数据与文本数据的传输效率上有什么差异?
7007
[求助]使用OD 2.01 OD的状态条一直不停的显示"调试字符串:xxxxx" 怎么去掉?
5183
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
禹xiaoyan
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部