在Windows PE文件中,当2个部分具有相同的原始地址时会发生什么?

时间:2015-04-28 14:56:50

标签: reverse-engineering portable-executable

我正在查看一个包含UPX的PE可执行文件,这些部分的布局如下:

UPX0:raw addr: 0x400 ,原始大小: 0x0 ,虚拟地址:0x1000,虚拟大小:0x6000

UPX1:原始地址: 0x400 ,原始大小:0xC00,虚拟地址:0x7000,虚拟大小:0x1000

UPX0部分的原始大小为零,与UPX1具有相同的原始地址。我的问题是,当PE可​​执行文件加载到内存中时,哪些数据会进入UPX0部分?

根据我读过的其他信息,当虚拟大小大于某个部分的原始大小时,Windows加载程序会填充0的部分。由于UPX0的原始大小为0,这是否意味着在加载可执行文件时,整个部分最初填充为0?或虚拟地址0x1000 - 0x1C00(UPX0)填充与虚拟地址0x7000 - 0x7C00(UPX1)相同的数据,地址0x1C01 - 0x6FFF(UPX0)填充0吗?还是会发生其他事情?

0 个答案:

没有答案