PE文件

原创 2015年11月19日 15:45:33

0x00 PE文件格式

  • PE文件格式是可执行文件的数据格式(.dll、.exe)
    这里写图片描述

    1) .text:由编译器产生,存放二进制的机器指令,是反汇编和调试的主要对象
    2) .data:初始化的数据块,如宏定义,全局变量等
    3) .idata:使用DLL等外来函数与文件的信息,即输入表
    4) .rsrc:存放程序的全部资源,如图标、菜单、位图等

0x01 虚拟内存及地址转换

  • 物理内存:进入windows内核级别ring0才能看到
    虚拟内存:调试器中看到的内存地址;区别于OS中的虚拟内存

  • 1) 文件偏移地址(File Offest):数据在PE文件中的地址,即文件在磁盘上存放时相对于文件开头的偏移,在静态反汇编工具看到
    2) 装载基址(Image Base): PE文件被载入内存后的首地址,exe文件默认0x00400000,dll文件默认0x10000000。可通过修改编译选项更改。
    3) 虚拟地址VA(Virtual Address): PE文件中的数据映射到内存后的地址
    4) 相对虚拟地址RVA(Relative VA):RVA=VA-Image Base,即虚拟地址相对于映射基址的偏移

  • 相对区段偏移(Relative Section Offset):数据相对所在区段首地址的偏移。
    Relative Section Offset = RVA – VOffset = File Offset - ROffset

  • 文件偏移(File Offset) = ROffset + Relative Section Offset
    = ROffset + RVA – VOffset
    = ROffset + VA – Image Base - VOffset

  • PE文件存储在磁盘上时,以0x200字节为基本单位来组织数据。PE文件被映射到内存中时,以0x1000字节为基本单位来组织数据。

  • eg:若某数据的文件偏移地址(FileOffset)是0x420,求VA.

    用LordPE打开一个.exe文件
    这里写图片描述
    VOffset:各区段的相对偏移地址(RVA),各区段在内存中的首地址偏移
    ROffset:各区段的文件偏移地址,即各区段在物理磁盘上的首地址偏移

    .txt的ROffse = 0x400 ==>>>该数据在txt段
    这里写图片描述

    VA = File Offset – ROffset + VOffset + Image Base
    = 0x420 – 0x400 + 0x1000 + 0x400000 = 0x401020


——《0day安全》学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。

PE文件数字签名检测工具

  • 2017年12月04日 13:04
  • 391KB
  • 下载

IDF实验室之简单的PE文件逆向

原题链接:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=38 因为是个pe文件,我们现在PC上运行以下,如下图: 也就是说要输...
  • calmegm
  • calmegm
  • 2015年10月09日 23:26
  • 2032

PE文件格式

  • 2016年01月06日 18:12
  • 825KB
  • 下载

更改PE文件版本、描述等

  • 2016年11月18日 15:22
  • 3KB
  • 下载

PE文件学习笔记(五):导入表、IAT、绑定导入表解析

fromhttp://blog.csdn.net/apollon_krj/article/details/77417063 1、导入表(Import Descriptor)结构解析: 导入...

Windows PE文件中的验证码签名格式

  • 2016年10月13日 22:45
  • 666KB
  • 下载

windows PE文件结构及其加载机制

1. 概述 PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程...

PE文件分析工具.rar

  • 2014年04月25日 16:39
  • 31.74MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PE文件
举报原因:
原因补充:

(最多只允许输入30个字)