能力值:
( LV2,RANK:10 )
|
-
-
2 楼
第一个,在内存中是整数对齐的,列如,535在内存中是1000,磁盘大小和内存大小对齐方式是不一样的
第二个,因为他不是增加节区的数目,只是用已有的节区的空白地方自己添加,所以不用修改大小
你想要了解相关知识,去学习windowsPE文件结构就知道了.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
感谢答疑:
1. “磁盘大小和内存大小对齐方式是不一样的”这个我明白,对齐大小是PE的FileAligment和SectionAligment决定的,但是在内存中.rdata这个节区的RVA=6000,virtual size=2C56, 6000+2C56= 8C56 并不是SectionAligment(=1000)的整数倍,用winhex查看过2C56只包含了有数据的大小,节区后面为了对齐的Null-Padding并没有算进去,但是size of raw data却算进去了
2. 问题2同上 Virtual Size大小因为在节区中新增了一个IID结构,如果virtual size确实只包含数据的大小,那新增了一个IID结构的数据后,virtual size为什么不用修改。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢答疑:
1. “磁盘大小和内存大小对齐方式是不一样的”这个我明白,对齐大小是PE的FileAligment和SectionAligment决定的,但是在内存中.rdata这个节区的RVA=6000,virtual size=2C56, 6000+2C56= 8C56 并不是SectionAligment(=1000)的整数倍,用winhex查看过2C56只包含了有数据的大小,节区后面为了对齐的Null-Padding并没有算进去,但是size of raw data却算进去了
2. 问题2同上 Virtual Size大小因为在节区中新增了一个IID结构,如果virtual size确实只包含数据的大小,那新增了一个IID结构的数据后,virtual size为什么不用修改。
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
第一个,在内存中是整数对齐的,列如,535在内存中是1000,磁盘大小和内存大小对齐方式是不一样的,补充一下,申请内存时只能按页大小申请,也就是说虽然在内存中只有535,但是实际上还是要申请1000的空间,在加载的时候,至拷贝535的数据到内存中看,剩余的是什么数据就不太清楚了。
第二个,注意是要么在最后一个节空白地方加数据或增加新节,空白位置指包含在最后一个节内,最后一个节足够的时候直接写进去就好,但是不够的时候才会增加新节,当然也可以扩大最后一个节,上面可能没有描述清楚。
|
|
|