我正在分析一个PE可执行文件,我想知道为什么物理大小小于第二部分的虚拟大小?
00000FEC和00000E00
物理大小到底是多少,它是如何计算的?有时大于虚拟大小,有时小于虚拟大小
# Name VirtSize RVA PhysSize Offset
1 .text 000C44C1 00001000 000C4600 00000800
2 .data 00000FEC 000C6000 00000E00 000C4E00
3 .rsrc 00000520 000C7000 00000600 000C5C00
4 .reloc 0000B098 000C8000 0000B200 000C6200发布于 2021-07-11 02:40:20
虚拟大小表示区段映射到内存后的“实际”大小,而物理大小是PE文件中为区段数据分配的字节数。请注意,物理大小始终是文件块大小(512字节)的倍数,因此它可能会在对应于实际节数据的字节之后包含一些填充字节。
如果物理大小大于虚拟大小,这正是因为段数据被填充为文件块大小的倍数(您可以看到大小的差异将小于512字节)。
如果虚拟大小大于物理大小,这是因为该部分以零/空字节结束,并且在PE文件中没有显式表示零以节省空间。
https://stackoverflow.com/questions/68329522
复制相似问题