:PE文件中RVA和RAW是如何互相转换的?"(看雪)
2011-09-14 20:21
1656 查看
在DFCG回答过,再转过来吧。
+---------+---------+---------+---------+---------+---------+
| 段名称 虚拟地址 虚拟大小 物理地址 物理大小 标志 |
+---------+---------+---------+---------+---------+---------+
| Name VOffset VSize ROffset RSize Flags |
+---------+---------+---------+---------+---------+---------+
| .text 00001000 00000092 00000400 00000200 60000020|
| .rdata 00002000 000000F6 00000600 00000200 40000040|
| .data 00003000 0000018E 00000800 00000200 C0000040|
| .rsrc 00004000 000003A0 00000A00 00000400 C0000040|
+---------+---------+---------+---------+---------+---------+
文件虚拟偏移地址和文件物理偏移地址的计算公式如下:
>>>>>>>VaToFileOffset(虚拟地址转文件偏移地址)
如VA = 00401000 (虚拟地址)
ImageBase = 00400000 (基地址)
VRk = VOffset - ROffset = 00001000 - 00000400 = C00 (得出文件虚拟地址和文件物理址之间的VRk值)
FileOffset = VA - ImageBase - VRk = 00401000 - 00400000 - C00 = 400(文件物理地址的偏移地址)
如VA = 00401325,则:
FileOffset = VA - ImageBase - VRk = 00401325 - 00400000 - C00 = 725
>>>>>>FileOffsetToVa(文件偏移地址转虚拟地址)
如FileOffset = 435(文件偏移地址)
VA = FileOffset + ImageBase + VRk = 435 + 00400000 + C00 = 00401035(虚拟地址)
还有老大给的一张图:
+---------+---------+---------+---------+---------+---------+
| 段名称 虚拟地址 虚拟大小 物理地址 物理大小 标志 |
+---------+---------+---------+---------+---------+---------+
| Name VOffset VSize ROffset RSize Flags |
+---------+---------+---------+---------+---------+---------+
| .text 00001000 00000092 00000400 00000200 60000020|
| .rdata 00002000 000000F6 00000600 00000200 40000040|
| .data 00003000 0000018E 00000800 00000200 C0000040|
| .rsrc 00004000 000003A0 00000A00 00000400 C0000040|
+---------+---------+---------+---------+---------+---------+
文件虚拟偏移地址和文件物理偏移地址的计算公式如下:
>>>>>>>VaToFileOffset(虚拟地址转文件偏移地址)
如VA = 00401000 (虚拟地址)
ImageBase = 00400000 (基地址)
VRk = VOffset - ROffset = 00001000 - 00000400 = C00 (得出文件虚拟地址和文件物理址之间的VRk值)
FileOffset = VA - ImageBase - VRk = 00401000 - 00400000 - C00 = 400(文件物理地址的偏移地址)
如VA = 00401325,则:
FileOffset = VA - ImageBase - VRk = 00401325 - 00400000 - C00 = 725
>>>>>>FileOffsetToVa(文件偏移地址转虚拟地址)
如FileOffset = 435(文件偏移地址)
VA = FileOffset + ImageBase + VRk = 435 + 00400000 + C00 = 00401035(虚拟地址)
还有老大给的一张图:
相关文章推荐
- PE文件结构(二) 区块,文件偏移与RVA转换
- Windows Pe 第三章 PE头文件-EX-相关编程-2(RVA_FOA转换)
- 如何将xib文件再ipad和iphone之间互相转换
- 导出Excel表格时,如何把数据库表中的编号转换成配置文件中的"汉字"
- PE文件的相对虚拟地址(RVA)和文件偏移地址(FOA)的转换
- 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)
- PE文件中, RVA和文件偏移的转换
- 如何将语言文件po和mo互相转换
- [PE结构分析] 7.相对虚拟地址(RVA)和文件偏移间的转换
- [PE文件结构学习]1.相对虚拟地址(RVA)与物理地址的转换
- PE文件中RVA和Offset的转换
- 理解PE文件相对虚拟地址(RVA)到文件偏移的转换
- 如何解决GBK的编码的文件中的中文转换成为UTF-8编码的文件而且不乱码
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- word如何转换成pdf格式的文件
- 在把数据库文件放在raw中,在应用程序中如何打开
- 简单说说如何把json或者txt文件转换为db
- word2007用法--如何不出现转换文件
- 如何将PDF文件转换为能编辑的Word文档
- windos 文件传到linux中^M如何转换成linux中换行