能力值:
( LV4,RANK:50 )
2 楼
看手册
能力值:
( LV2,RANK:10 )
3 楼
小艾
看手册
哪个手册,能不能提供下名字
能力值:
( LV4,RANK:50 )
4 楼
6b6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3V1k6V1k6i4y4C8N6r3!0H3i4K6u0r3k6r3g2T1N6h3N6Q4x3V1k6H3k6g2)9J5k6r3k6G2M7X3#2S2N6l9`.`.
能力值:
( LV2,RANK:10 )
5 楼
pe权威指南。
能力值:
( LV2,RANK:10 )
6 楼
小艾
0bcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3V1k6V1k6i4y4C8N6r3!0H3i4K6u0r3k6r3g2T1N6h3N6Q4x3V1k6H3k6g2)9J5k6r3k6G2M7X3#2S2N6l9`.`.
谢谢
能力值:
( LV2,RANK:10 )
7 楼
寧靜致遠
pe权威指南。
这本书上没有吧,我有这本书,就是对着它学习的,确定没有找到相关内容,百度完,也只是说跟编译器有关啥的,没弄明白,才来论坛发帖求助的
能力值:
( LV2,RANK:10 )
8 楼
小艾
8fdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3V1k6V1k6i4y4C8N6r3!0H3i4K6u0r3k6r3g2T1N6h3N6Q4x3V1k6H3k6g2)9J5k6r3k6G2M7X3#2S2N6l9`.`.
貌似上面也没有这部分的介绍啊,我搜了下,就只有简单的介绍了 .data
Initialized data (free format)
IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE
其他再没有介绍了
能力值:
( LV11,RANK:190 )
9 楼
VirtualSize只是一个数值而已,这个数值就是告诉windows,映射这个区段的时候给我多大的内存,你也可以改的更大(但是改小可能会出现问题,因为编译出来的VirtualSize的明确的,表示程序至少需要这么多的内存)。相当于静态分配内存。我猜你没见过VirtualSize为0或者RawSize为0的情况。。。
能力值:
( LV2,RANK:10 )
10 楼
zplusplus
VirtualSize只是一个数值而已,这个数值就是告诉windows,映射这个区段的时候给我多大的内存,你也可以改的更大(但是改小可能会出现问题,因为编译出来的VirtualSize的明确的,表示程 ...
谢谢大佬指点,我主要是想把一个运行的exe保存到文件里面,然后RawSize就这么大,那等于内存中VirtualSize大小的数据,会有一大部分不知道应该怎么保存到文件里面去,还是说那多出来的部分根本就不需要管它,直接存盘RawSize大小的那部分数据就可以了.
能力值:
( LV9,RANK:190 )
11 楼
内存有内存的对齐粒度,文件有文件对齐的粒度,记得内存对齐粒度应该一定要是文件对齐粒度的双倍数或相等值(他们之间关系是很紧密的),RawSize 只是指明该节有效数据的一个参考数,写数据到文件是要以这个数据的 文件对齐粒度长度来写的!
最后于 2019-1-10 20:28
被linziqingl编辑
,原因:
能力值:
( LV2,RANK:15 )
12 楼
VirtualSize和SizeOfRawData是其中两个比较重要的属性。根据微软对PE的规定,VirtualSize应该包含载入到内存的节大小,SizeOfRawData应该包含节在硬盘中的大小。Windows加载器使用VirtualSize和SizeOfRawData中的最小值将节数据映射到内存。如果SizeOfRawData大于VirtualSize,则仅将VirtualSize大小的数据复制入内存,忽略其余数据。
能力值:
( LV2,RANK:10 )
13 楼
恩,谢谢楼上的两位,差不多已经搞懂了,不再纠结这个问题了.
能力值:
( LV4,RANK:50 )
14 楼
8f4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3V1k6V1k6i4y4C8N6r3!0H3i4K6u0r3k6r3g2T1N6h3N6Q4x3V1k6H3k6g2)9J5k6r3k6G2M7X3#2S2N6q4)9J5x3%4y4W2j5%4c8A6L8$3&6Q4x3X3c8@1j5h3u0D9k6g2)9J5k6s2y4W2j5%4c8A6L8$3&6Q4x3X3c8Z5k6h3q4V1k6i4u0K6
能力值:
( LV6,RANK:90 )
15 楼
DATA节里存储的是程序运行时所需的数据。这些数据在程序运行时是以内存地址形式访问。而编译时数据分几种(只读、读写、已初始化、未初始化等),编译器出于优化考虑,会将未初始化的数据所占空间偏移等预留出来(内存地址偏移),而由于这部分未初始化数据没有初值,所以没必须写入PE文件占用文件大小,所以就会出现你看到的情况。如果不是加壳软件等调整的话,你用PE工具看DATA节的FLAGS应该会包含未初始化数据
IMAGE_SCN_CNT_UNINITIALIZED_ DATA
的标记。
最后于 2019-1-17 10:16
被拍拖编辑
,原因: