RVA和RAW相互转换
2015-09-28 15:33
363 查看
E.g:
+---------+---------+---------+---------+---------+---------+
| 段名称 虚拟地址 虚拟大小 物理地址 物理大小 标志 |
+---------+---------+---------+---------+---------+---------+
| 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|
+---------+---------+---------+---------+---------+---------+
文件虚拟偏移地址和文件物理偏移地址的计算公式如下:
>>>>>>> VA To FileOffset (虚拟地址转文件偏移地址)
如 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
>>>>>> FileOffset To VA (文件偏移地址转虚拟地址)
如 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|
+---------+---------+---------+---------+---------+---------+
文件虚拟偏移地址和文件物理偏移地址的计算公式如下:
>>>>>>> VA To FileOffset (虚拟地址转文件偏移地址)
如 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
>>>>>> FileOffset To VA (文件偏移地址转虚拟地址)
如 FileOffset = 435 (文件偏移地址)
VA = FileOffset + ImageBase + VRk = 435 + 00400000 + C00 = 00401035 (虚拟地址)
相关文章推荐
- 初学Java的备忘录
- 文件系统变为raw 无法访问的解决方法
- android读取raw文件示例
- Java线程模型缺陷
- 使用android-apktool来逆向(反编译)APK包方法介绍
- 硬盘、移动硬盘或U盘的文件系统变成了RAW格式的解决办法
- VTK读取raw格式的数据
- raw device
- RAW & JPG
- No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VA
- Rust - Reference counted and raw pointers | 引用计数和原始指针
- Twist1逆向分析
- 基于dicom 影像浏览处理的动态库(VC)
- dicom 胶片排版打印
- Android 使用raw文件下的sqlite数据库以及分页查询
- VS2008中VA解决QT不能自动补全问题及不识别类的问题
- [学习笔记]逆向练习1
- Android优化系列——性能优化(资源存储)
- 逆向安卓app如何快速追踪到handlemessage发送的地方
- assets和raw文件路径