1
A
回答
4
入口点RVA,入口点原始地址和图像基地址不是这样相关的。
图像库是“将图像的第一个字节加载到内存中时的首选地址”。换句话说,假设没有冲突,它就是图像的虚拟地址。如果在加载图像时发生地址冲突(例如,另一个图像已被加载到重叠范围内),则会为图像选择一个新的基地址。
RVA是一个相对虚拟地址。从图像实际加载时改变它是“相对的”。这是基地址未知的地址(例如,当图像未加载时)。加载映像后,RVA将成为虚拟地址(VA),即虚拟内存中的实际地址。
原始与RVA的区别是由于对齐。有部分对齐(当它们被加载到内存中时对齐这些部分)以及文件对齐(对齐部分中的原始数据)。这里的段对齐是0x1000,而文件对齐是0x200。
入口点RVA用于确定图像加载时入口点的VA(即入口点将位于虚拟地址EntryPoint (rva) + ImageBase
)。入口点原始地址是入口点所在文件的偏移量。
This document对校准有很好的解释。
相关问题
- 1. 理解号码PE
- 2. PE头的大小
- 3. 如何解析此头文件?
- 4. 如何读取内存中加载的模块的PE头?
- 5. 什么是PE头文件中的CheckSum?
- 6. PE头基址偏移
- 7. 通过PE头找出PE文件结束的位置?
- 8. 如何理解cpp头文件
- 9. 如何理解Chrome DevTools中的请求标头?
- 10. 如何在UWP中获得此箭头图标?
- 11. 如何解决来自PE上IAT的转发API?
- 12. 为什么PE文件中的MZ DOS标头签名0x54AD?
- 13. 无法理解此代码
- 14. 无法理解此SEGFAULT
- 15. 无法理解此代码
- 16. PE注射图像迁移
- 17. PE文件中偏移量为0x3c的PE头的指针是否始终设置为0x80?
- 18. 如何理解flex皮肤的图层?
- 19. 如何处理Javascript中的Ctrl +箭头?
- 20. 理解C头语法
- 21. 如何解决此代码中铬的控制台此错误?
- 22. 如何在CCRC视图更新过程中解决此错误?
- 23. 如何解释此位移?
- 24. 如何解码此程序?
- 25. 如何解释此SBT DSL?
- 26. 如何此Javascript解码
- 27. 如何解决此RuntimeException?
- 28. 如何解决此错误?
- 29. 如何解析此JSONArray
- 30. 如何解码此文本?
我不完全明白你的意思是'偏移入口点所在的文件',你能详细说明吗? – COMer 2010-09-19 15:05:09
我可能不正确,但我的理解是入口点在加载时(RVA +图像库)在内存中有一个地址,当图像未加载时,在磁盘上有一个“地址”。磁盘上的“地址”实际上只是文件的偏移量。因此,如果您想在不必首先加载映像的情况下开始拆卸入口点,则可以在文件中寻找原始入口点地址。 – 2010-09-19 22:16:05
在加载图像时,应该根据EntryPoint(raw)计算'EntryPoint(rva)',是吗? – wamp 2010-09-25 03:43:28