Microsoft's documentation声明该字段应为:
入口点的RVA,需要指向字节0xFF 0x25,然后是标记为EXE执行/读取的部分中的RVA,或者指向DLL的0
这是什么意思?我检查了一个由c#编译器生成的PE文件,发现一个RVA指向所描述的字节0xFF 0x25,但接下来的四个字节是0x00402000,超出相对虚拟内存的范围,而不是有效的RVA,因为我可以告诉。我知道有一个重定位(第25.3.2节)指向这个类型为“IMAGE_REL_BASED_HIGHLOW”的值,但我不知道这意味着什么。我也明白它应该调用mscoree.dll的“_CorExeMain”(我正在使用可执行文件),如第25.3.1节所述,但我不明白如何。
答案 0 :(得分:1)
0xFF 0x25字节编码跳转双字ptr指令。 0x402000值是(在这种情况下)任何.NET exe导入的一个本机函数的导入地址表(IAT)的偏移量,即来自mscoree.dll的_CorExeMain。当然,跳转到此地址会启动该过程的CLR。