从上面我们可以看到重定位表条目的计数是0
(没有reloc项),但是第一个reloc项的偏移量表明reloc项实际上存在。
DOS EXE报头的定义是这里。
如何理解它?
发布于 2010-09-29 20:58:36
这很正常。对于像PE这样的现代格式,重定位表的偏移量总是0040 H,即使没有重新定位项。
发布于 2021-01-21 05:32:15
您必须查看EXE标题大小(在屏幕截图中显示为DOS_HdrSize
)。这是整个标题使用的段落数(16字节块)。
在您的示例中,它是0x0004
,所以将它乘以16,得到标题长度为0x40
字节。重新定位表从重新定位表偏移量开始,并对DOS_ReloCnt
条目继续到标头结束。
在您的示例中,重定位表偏移量是0x40
,而头的末尾也是0x40
,因此没有空间放置重定位表,这也同样好,因为DOS_ReloCnt
说其中没有任何条目。
在这种情况下,可能与重新定位表偏移量设置为什么值无关。
https://stackoverflow.com/questions/3797013
复制相似问题