PE文件

格式

可移植的执行体PE(Portable Executable)是Win32 平台下可执行文件格式,常见的exe、dll、ocx、sys、com 都是PE文件,其可移植可执行体现在跨Win32 平台。
PE 文件格式规定了代码、菜单、图标、位图、字符串等信息在可执行
文件中如何组织

  • PE 文件格式将可执行文件分成若干节(section),一个WinNT 应用程序典型地拥有9 个预定义节:.text、.bss、.rdata、.data、.pdata、.rsrc、.edata, .idata 和.debug;
  • .text 由编译器产生,存放二进制的机器代码;
  • .data 初始化的数据块,如全局变量、静态变量等;
  • .idata 可执行文件所使用的动态链接库等外来函数与文件信息;
  • .rsrc 存放程序的资源,如图标、菜单等;
  • .rdata 表示只读数据区;
  • 在VC 中可用#pragma data_seg() 将代码中的任意部分编译到PE的任意节,且节名可以自定义。
组织形式
  • 整个格式的组成:一个MS-DOS 的MZ 头部,之后是一个实模式的残余程序、PE文件标志、PE文件头部、PE可选头部、所有的节头部,最后是所有的节实体

  • 可选头部的末尾是数据目录入口的数组,这些相对虚拟地址指向节实体之中的数据目录。每个数据目录都表示了一个特定的段实体数据是如何组织的。

  • PE 文件格式有9 个预定义节,这对所有的WinNT应用程序通用的,但是每个应用程序可以为它自己的代码以及数据定义它自己独特的节。

  • .debug 预定义节也可以分离为一个单独的调试文件。如果这样的话,就会有一个特定的调试头部来用于解析这个调试文件,PE 文件中也会有一个标志来表示调试数据被分离了出去。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D-A-X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值