三种地址

  (一)VA(虚拟地址):PE 文件被 Windows 加载到内存后的地址。

  (二) RVA(相对虚拟地址):PE 文件虚拟地址相对于映射基地址(对于 EXE 文件来说,映射基地址是 IMAGE_OPTIONAL_HEADER 的 ImageBase 字段的值)的偏移地址。

  (三)FOA(文件偏移地址):相对于 PE 文件在磁盘上文件开头的偏移地址。

地址转换

  VA -> RVA:VA - IMAGE_OPTIONAL_HEADER.ImageBase(DLL 减去装载地址) = RVA

  RVA -> FOA:

  IMAGE_OPTIONAL_HEADER.SectionAlignment == IMAGE_OPTIONAL_HEADER.FileAlignment 时,RVA == FOA

  IMAGE_OPTIONAL_HEADER.SectionAlignment != IMAGE_OPTIONAL_HEADER.FileAlignment 时,当前节的 FOA + (当前数据的 VA (RVA)  - 当前节的 VA (起始 RVA) ) = 当前数据的 FOA

PE 结构的三种地址的更多相关文章

  1. IA32的三种地址

    IA32的三种地址 逻辑地址:机器语言指令仍用这种地址指定一个操作数的地址或一条指令的地址. 这种寻址方式在Intel的分段结构中表现得尤为具体,它使得MS-DOS或Windows程序员把程序分为若干 ...

  2. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  3. Python - Django - ORM 多对多表结构的三种方式

    多对多的三种方式: ORM 自动创建第三张表 自己创建第三张表, 利用外键分别关联作者和书,关联查询比较麻烦,因为没办法使用 ORM 提供的便利方法 自己创建第三张表,使用 ORM 的 ManyToM ...

  4. SIMD数据并行(四)——三种结构的比较

    在计算机体系中,数据并行有两种实现路径:MIMD(Multiple Instruction Multiple Data,多指令流多数据流)和SIMD(Single Instruction Multip ...

  5. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

  6. Java/JSP获得客户端网卡MAC地址的三种方法解析

    java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等.(java/jsp) 2.通过ActiveX的方法.(jsp) 3.通过向13 ...

  7. 【转载】取得系统中网卡MAC地址的三种方法

    From:http://blog.csdn.net/zhangting1987/article/details/2732135 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址 ...

  8. ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思?

    问题: ARM微处理器中支持字节.半字.字三种数据类型,其中,字需要4字节对齐(地址的低两位为0).半字需要2字节对齐(地址的最低位为0).我想问的是括号中的内容是什么意思呢?请牛人帮忙解释一下!谢谢 ...

  9. Java数据结构——树的三种存储结构

    (转自http://blog.csdn.net/x1247600186/article/details/24670775) 说到存储结构,我们就会想到常用的两种存储方式:顺序存储和链式存储两种. 先来 ...

  10. 链路层三种类型的MAC地址

    若需要转载,请注明出处. 我们知道,链路层都是以MAC地址来进行通信双方的地址标识的,如下图:在应用中根据接收方的多寡来进行划分,可分为以下三种: 单播(Unicast) 多播(Multicast) ...

随机推荐

  1. C#中的数据字典Dictionary

    前言 今天上午和往常一样在网上冲浪,看到码甲哥微信群里面在聊一个面试题,比较有意思,这里简单分享下结论中的Dictionary字典. 有50w个int类型的数字,现在需要判断一下里面是否存在重复的数字 ...

  2. VUE-生命周期/请求数据

    使用方法 --- 4个before,4个ed,创造,装载,更新,销毁 初始化阶段 beforeCreate(){} // 准备怀孕 created(){} // 怀上了 *************** ...

  3. Oracle_数据泵

    Oracle数据泵导入.导出数据 expdp导出 运行CMD 登录数据库,输入sqlplus 使用管理员角色登录需要在用户名后加" as sysdba" 例如:sys as sys ...

  4. TypeScript 学习笔记 — 基于对象操作的内置类型的使用(十二)

    目录 1.Partial 转化可选属性 (?) 2.Required 转化必填属性 (-?) 3.Readonly 转化仅读属性 (readonly) Mutate(非内置,与 Readonly 相对 ...

  5. sqlite3使用2

    一. 在cmd中打开SQLite 1.进入数据库 通过输入 d:cd D:\--\SQLitesqlite3 进入数据库 查看数据库的基本信息: .help 显示各种重要的SQLite点命令的列表.s ...

  6. [ElasticSearch] ES集群状态由非正常状态(red)恢复为正常状态(green)的思路与实践

    1 场景描述 1.1 资源与原规划 三台主机组成ES集群的规划: 集群名: xxx_elastic 172.15.3.7 es1 master 172.15.3.8 es2 (非master) 172 ...

  7. [MAUI 项目实战] 手势控制音乐播放器(三): 动画

    @ 目录 吸附动画 确定位置 平移动画 回弹动画 使用自定义缓动函数 多重动画 点击动画 项目地址 上一章节我们创建了手势容器控件PanContainer,它对拖拽物进行包装并响应了平移手势和点击手势 ...

  8. Git提交代码仓库的两种方式

    目录 一: 两种本地与远程仓库同步 1 git 远程仓库 提交本地版本库操作 提交到远程版本库操作 1.Git 全局设置: 2.增加一个远程仓库地址 3.查询当前存在的远程仓库 5.本地版本库内容提交 ...

  9. 2023成都.NET线下技术沙龙圆满结束

    2023年4月15日周六,由MASA技术团队和成都.NET俱乐部共同主办的2023年成都.NET线下技术沙龙活动在成都市世纪城新会展中心知域空间举行,共计报名人数90多人,实际到场60多人,13:30 ...

  10. Mysql中的数据类型注意事项

    整型数据类型 MySQL数据类型 含义(有符号) tinyint 1字节,范围(-128~127) smallint 2字节,范围(-32768~32767) mediumint 3字节,范围(-83 ...