2010-10-12 75 views
3

便携式可执行文件的部分标有不同标志。有人可以解释IMAGE_SCN_MEM_EXECUTE(该部分可以作为代码执行)和IMAGE_SCN_CNT_CODE(该部分包含可执行代码)之间的区别吗?谢谢。可执行部分标志

回答

2

IMAGE_SCN_MEM_EXECUTE是PE加载器实际用于设置页面权限的一个。没有使用IMAGE_SCN_CNT_CODE,我想这只是一个描述性标志。

+0

使用IMAGE_SCN_MEM_EXECUTE而不使用IMAGE_SCN_CNT_CODE!这是答案吗?你怎么能这样说? COFF规范并没有真正的帮助。这是否意味着IMAGE_SCN_CNT_CODE没有意义,可以忽略?谢谢。 – mox 2010-10-12 13:21:41

+0

这是我使用PE文件和Windows的经验。您可以自己尝试 - 切换位并查看文件是否运行。 – 2010-10-13 13:05:16

+0

我刚看了一下Firefox的下载包(“Firefox Setup 3.6.10.exe”)。该软件包已使用UPX压缩(请参见典型部分名称)。不知何故,看到UPX0和UPX1部分都标有IMAGE_SCN_MEM_EXECUTE,但NONE有IMAGE_SCN_CNT_CODE!这可以证实你说的话。但说实话,我对此仍有点困惑。 – mox 2010-10-14 11:02:29