什么是Windows可移植可执行文件格式?

Windows 可移植可执行文件 (PE) 是可执行文件和其他二进制文件类型的 Windows 本机文件格式。PE 文件格式被设计为独立于平台,因此它可以在任何运行相同操作系统版本和处理器体系结构的 Windows 机器上使用,该文件是为该文件编译的。

因此,让我们剖析 Windows PE 文件格式,并了解其结构和组成部分。

什么是 Windows 可移植可执行文件?

什么是Windows可移植可执行文件格式?

在探索 Windows 可移植可执行文件格式之前,了解基础知识很重要。让我们退后一步,了解一下 Windows PE 的底层概念——COFF。

当您将源代码编译为程序时,编译器会生成一个目标文件 (.obj)。该目标文件包含二进制格式的计算机指令。

COFF 或通用对象文件格式是一组用于表示二进制指令的标准化约定。COFF 有助于保持跨平台兼容性,因为所有 COFF 文件格式都遵循相同的一组规则和约定来组织代码和数据。尽管 COFF 最初是为在 *NIX 系统上使用而开发的,但它现在在所有平台上无处不在。

Windows 可移植可执行 (PE) 文件格式是 COFF 的修改版,已开发为专门用于32 位和 64 位 Windows 系统。与为目标文件提供标准化格式的 COFF 不同,Windows PE 为可执行文件和库文件提供标准化格式。

它包含部分和标题,提供有关可执行文件的信息,并帮助系统加载程序管理与可执行文件相关的数据。PE 文件中的标头帮助系统加载程序将文件映射到内存、解决 API 导出/导入等依赖关系、管理资源并准备文件以供执行。

Linux 也有自己的 COFF 迭代;它称为可执行链接文件或简称为 ELF 二进制文件。您可以通过在 Linux 上以文件名作为第一个参数运行文件命令来检查文件是否为 ELF 。

Windows 可移植可执行文件的结构 

什么是Windows可移植可执行文件格式?

可移植可执行文件格式由几个组件组成,每个组件都有特定的用途。这些组件包括:

  • 节头,描述文件每个节的布局和特征 节本身,包含可执行代码、数据和资源。
  • PE 标头,它提供有关文件的整体结构和要求的信息。
  • DOS 标头,其中包含一个小程序,该小程序在文件在 DOS 系统上执行时运行。
  • 最后是 PE 部分标题,它描述了每个部分在文件中的位置和属性。

总的来说,这些组件协同工作以创建一种结构化格式,允许操作系统正确加载、执行和管理文件中包含的可执行代码。让我们确切了解每个组件的作用。

DOS 标头

PE 文件的第一部分称为 DOS 标头。少量可执行代码存储在 DOS 头文件中,这些代码也可以在 DOS 机器上运行。

此代码也称为 MS-DOS 存根,用于在不支持 PE 文件的系统上抛出错误消息。

文件头

Portable Executable 标头提供有关可执行文件的信息,例如文件有多大、不同部分所在的位置以及可执行文件需要哪些资源。PE 标头还包含有关可执行文件类型的信息,无论它是Windows .DLL 文件还是 .EXE。

章节标题

实现部分是为了组织可执行文件的许多组件,例如代码、数据和资源(如文本字符串、图像等)。部分标题包括有关每个部分的大小和位置的信息,以及任何关联的标志。

与每个节头关联的标志可以指示该节的各种属性,例如它是可执行的、可写的还是可读的。这些标志有助于操作系统在程序执行期间正确加载和管理每个部分的内容。

部分

这些部分本身包含可执行文件的真实代码、数据和资源。每个段都与特定的内存边界对齐,并具有自己的一组属性,这些属性会影响操作系统如何处理它。

现在您对 Windows 可移植可执行文件格式了如指掌

Windows 可移植可执行文件是一种强大且通用的文件格式,用于生成各种 Windows 应用程序和系统组件。通过了解 PE 文件格式的结构,开发人员可以构建利用 Windows 独特特性的高效应用程序。

除了深入了解您的应用程序将运行的平台之外,通过遵循一些标准的良好编码实践,您将能够最大限度地提高应用程序的质量,而不管它运行在什么平台上。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
(0)
上一篇 2023年6月23日
下一篇 2023年6月23日

相关推荐

  • 如何有效地释放电脑磁盘空间?这些方法值得一试

    磁盘空间不足会降低您的设备速度,并阻止您保存文件和安装重要的安全更新。我们将向您展示如何通过清空回收站、使用磁盘清理实用程序、删除临时文件和卸载应用程序来清理Windows和Mac…

    2023年6月28日
  • 修复:无法更改新应用程序将保存到商店中的驱动器

    如果目标驱动器被加密或压缩,您可能无法更改新 Microsoft Store 应用程序的保存位置。此外,如果系统的组策略/注册表禁止您更改路径,也会出现此问题。 用户在更改新 Mi…

    2023年6月9日
  • 如何更改Microsoft Teams的名称?自定义设置

    在本文中,我们将向您展示如何更改 Microsoft 团队的名称。更改您在 Microsoft Team 上的用户名可能非常重要,尤其是当您认为在创建 Teams 帐户时没有选择合…

    2023年6月10日
  • 从Windows10的登录屏幕重置微软帐户密码

    如果您忘记了微软帐户的密码,您可以在Windows10计算机的登录屏幕上找到重置Microsoft帐户密码的步骤。 如何重置Microsoft帐户密码 Windows 10 中的本…

    2022年11月28日
  • 如何修复Windows中游戏FPS较低的问题

    PC 游戏的魅力之一在于享受业界提供的最佳图形和性能。但当你遇到低帧率的问题时,你就很难享受游戏的乐趣。 无论您最新购买的游戏在电脑上运行不顺畅,还是您突然发现游戏总体运行困难,我…

    2023年7月1日
  • 蓝牙设备在Windows11/10中不显示、配对或连接

    如果蓝牙未检测到设备,并且您在 Windows 11/10 中遇到蓝牙设备问题,那么这篇文章将帮助您解决该问题。也许您无法使用蓝牙设备进行连接,或者连接失败。如果您遇到蓝牙设备无法…

    2023年12月13日
  • 在PDF文件中添加或删除密码Professionaly

    便携式文档格式或 PDF 是一种格式,用于保存无法修改但仍易于共享和打印的文件。用户可以通过为其设置密码来限制对 PDF 文件的访问。这将保护文档并且只能使用密码访问。还可以为编辑…

    2023年7月7日
  • 华硕LAN驱动程序未安装或工作

    一些Windows用户报告称,他们无法在计算机上安装华硕LAN驱动程序。当尝试执行相同操作时,他们会收到一条错误消息,指出Windows无法安装您的网络控制器。在这篇文章中,我们将…

    2024年1月13日
  • Windows11家庭版与专业版:哪个版本适合您?

    在 Windows 11 中,微软推出了两个不同版本的操作系统:家庭版和专业版。虽然这两个版本都包含核心 Windows 11 体验,但存在一些关键差异,使得一个版本比另一个版本更…

    2023年5月24日
  • 如何修复WHEA不可纠正的错误

    Windows 硬件错误架构 (WHEA) 不可纠正的错误是蓝屏上显示的Windows停止代码。发生此错误时,您的计算机通常会编译一些诊断数据然后重置。如果根本问题仍然存在,您的计…

    2023年8月3日