为什么我们需要取消映射才能成为PE文件有效?

时间:2017-02-23 13:42:12

标签: c windows assembly reverse-engineering portable-executable

当我们从内存中转储PE(MODULE / Process)时为什么在没有取消映射的情况下不执行它?

内存中的PE发生了哪些变化,导致无法直接执行?

1 个答案:

答案 0 :(得分:0)

执行前必须进行映射,因为您无法预测内存中每个DLL和其他资源的地址,以及程序中动态分配的内存的结果地址。 PE文件头告诉操作系统如何分配.text.data内存段。

回到80年代和90年代初,你可以回想起.COM个文件。这些复制和执行的内存副本(%EIP指向它的地址)是直接的,因为那里限制为64kb的.text数据。