PE文件介绍

PE文件主要是windows操作系统下使用的可执行文件格式,PE文件是指32位的可执行文件也叫做PE32,64位可执行文件叫做PE+或者PE32+

PE文件格式

种类 主扩展名
可执行类型 EXE,SCR
驱动程序类型 SYS,VXD
库系列 DLL,OCX,CPL,DRV
对象文件系统 OBJ

PE文件种类

严格地说OBJ(对象)文件之外的所有文件都是可执行的。DLL,SYS文件虽然不能直接在shell中运行,但是可以使用其他方法(调试器,服务等)执行。

VA&RVA

VA 指的是进程虚拟内部的绝对地址,RVA相对虚拟地址,指从某个基准位置(ImageBase)开始的相对地址VA与RVA满足下面的换算关系。

RVA+ImageBase=VA

PE内部信息大多以RVA形式存在的。原因在于,PE文件(主要是DLL)加载到进程虚拟内存的特定位置时,该位置可能已经加载了其他的PE文件(DLL)。此时必须通过重定位将其加载到其他位置。如果使用VA,则无法正常访问。因此使用RVA来定位,即使发生了重定位,只要相对于基准位置的相对地址没有变化,就能正常访问。


32位window OS中,各进程分配有4GB的虚拟内存,因此进程中VA值的范围是 00000000~ FFFFFFFF

最新文章

  1. win10 右键菜单添加Git Hash Here
  2. [Java] HashMap的用法
  3. MVC架构和SSH框架对应关系
  4. [JavaScript] js实现简单的代码运行框
  5. 动态插入图片到 svg 中
  6. Performance Monitor采集性能数据
  7. 移动端 canvas插入多张图片生成一张可保存到手机图片
  8. CSS3属性——“box-flex”
  9. github windows pycharm 设置
  10. centos7下kubernetes(12。kubernetes-service)
  11. Confluence 6 系统运行信息中的 JVM 内存使用情况
  12. No.02——第一次使用Android Studio,并创建出Hello World
  13. Autofac创建实例的方法总结[转]
  14. 配置SpringBoot-从日志系统配置说起
  15. Day01 html详解
  16. 浏览器组成、线程及event loop
  17. nginx日志配置(cookie,header,post等字段记录)
  18. 通过文件路径读取CSV表格内的数据
  19. web安全-xss攻击
  20. python模块详解 YAML和configparser

热门文章

  1. eslint插件开发教程
  2. 05.django 搜索与过滤
  3. python基本数据类型:字符串及其方法(一)
  4. poj1386有向图判断是否存在欧拉回路或者欧拉路
  5. json和数组
  6. Python连接不上SQL Server的两种根治思路
  7. AdaBoost理解
  8. mysql 数据类型笔记
  9. Flask 蓝图进行路由分发.md
  10. Black Hat Python之#2:TCP代理