流水账笔记:PE文件格式(RVA & FOA)
来源:互联网 发布:linux 翻到最后一页 编辑:程序博客网 时间:2024/05/16 10:52
讲解 PE 文件时经常出现 映像(Image) 这一术语,希望各位牢记。PE 文件加载到内存时,文件不会原封不动地加载,而要根据节区头中定义的节区起始地址、节区大小等加载。因此,磁盘文件中的 PE 与内存中的 PE 具有不同的形态。将装载到内存中的形态成为映像 以示区别,使用这一术语能够很好地区分二者。 —— 《逆向工程核心原理》
假设文件与内存的映射关系如下表:
注:ImageBase = 0x00400000
如:内存中的地址 0x0040100C
此时 RVA1 = 0x0040100C - ImageBase = 100C。
计算 FOA 时,先判断 0x0040100C 落在哪个节中,从图中可以知道落在了第二个节 0x00401000 ~ 0x00402000 范围内。
于是 FOA = 0x0040100C - ImageBase + 0x400 = 0x40C
根据 IMAGE_SECTION_HEADER 结构体,换算公式如下:
FOA - PointerToRawData = RVA - VirtualAddress —— 《逆向工程核心原理》
注:
PointerToRawData: 节区在文件中的基地址
VirtualAddress : 节区在内存中的基地址
~ ~ 以后有空再补充…
- 相对模块的偏移地址
FOA: 文件中的位置 ↩
阅读全文
0 0
- 流水账笔记:PE文件格式(RVA & FOA)
- 流水账笔记:PE文件格式(Dos Header)
- 流水账笔记:PE文件格式(FileHeader)
- 流水账笔记:PE文件格式(OptionalHeader 上)
- 流水账笔记:PE文件格式(IAT)
- 流水账笔记:PE文件格式(OptionalHeader 下)
- 流水账笔记:PE文件格式(SectionHeaders)
- 流水账笔记:PE文件格式(关于dump)
- 流水账笔记:PE文件格式(导出表)
- 流水账笔记:PE文件格式(TLS)
- 流水账笔记:PE文件格式(资源表)
- 流水账笔记:PE文件格式(手工增加节)
- 流水账笔记:PE文件格式(导入表注入---手动)
- 流水账笔记:PE文件格式(重定位表)
- 流水账笔记:PE文件格式(TLS手动注入)
- PE文件的相对虚拟地址(RVA)和文件偏移地址(FOA)的转换
- PE文件格式的RVA概念
- PE文件格式的RVA概念
- C#中利用正则表达式检测文件路径的合法性
- 理解Java中的引用传递和值传递
- 煎饼排序 (Stacks of Flapjacks, Uva 120)
- [翻译]词袋模型入门
- 流水账笔记:PE文件格式(SectionHeaders)
- 流水账笔记:PE文件格式(RVA & FOA)
- phpMyAdmin使用教程
- 算法入门:最少比较次数求最大/最小/第二大元素
- C#中的单例模式
- Python笔记: 通过字典的值得到键
- LeetCode#53暨最大连续子序列和问题
- win10全版本下载地址MSDN纯净版ISO
- Xcode9学习笔记3
- shader和gis是目前的弱项,从osgearth源码入手