当前位置: 首页 > news >正文

PE文件格式

概述

据说UEFI是参考了Windows去设计的,在UEFI中可以看到许多Windows的影子。其中UEFI程序采用的文件格式就是Windows环境下的PE格式。下面是其结构图:

在这里插入图片描述

DOS header

下面的结构体定义了DOS header的具体参数

///
/// PE images can start with an optional DOS header, so if an image is run
/// under DOS it can print an error message.
///
typedef struct {UINT16  e_magic;    ///< Magic number.UINT16  e_cblp;     ///< Bytes on last page of file.UINT16  e_cp;       ///< Pages in file.UINT16  e_crlc;     ///< Relocations.UINT16  e_cparhdr;  ///< Size of header in paragraphs.UINT16  e_minalloc; ///< Minimum extra paragraphs needed.UINT16  e_maxalloc; ///< Maximum extra paragraphs needed.UINT16  e_ss;       ///< Initial (relative) SS value.UINT16  e_sp;       ///< Initial SP value.UINT16  e_csum;     ///< Checksum.UINT16  e_ip;       ///< Initial IP value.UINT16  e_cs;       ///< Initial (relative) CS value.UINT16  e_lfarlc;   ///< File address of relocation table.UINT16  e_ovno;     ///< Overlay number.UINT16  e_res[4];   ///< Reserved words.UINT16  e_oemid;    ///< OEM identifier (for e_oeminfo).UINT16  e_oeminfo;  ///< OEM information; e_oemid specific.UINT16  e_res2[10]; ///< Reserved words.UINT32  e_lfanew;   ///< File address of new exe header.
} EFI_IMAGE_DOS_HEADER;

在这里插入图片描述

PE/COFF header

///
/// @attention
/// EFI_IMAGE_NT_HEADERS32 is for use ONLY by tools.
///
typedef struct {UINT32                      Signature;EFI_IMAGE_FILE_HEADER       FileHeader;EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} EFI_IMAGE_NT_HEADERS32;///
/// COFF File Header (Object and Image).
///
typedef struct {UINT16  Machine;UINT16  NumberOfSections;UINT32  TimeDateStamp;UINT32  PointerToSymbolTable;UINT32  NumberOfSymbols;UINT16  SizeOfOptionalHeader;UINT16  Characteristics;
} EFI_IMAGE_FILE_HEADER;///
/// Optional Header Standard Fields for PE32.
///
typedef struct {////// Standard fields.///UINT16                    Magic;UINT8                     MajorLinkerVersion;UINT8                     MinorLinkerVersion;UINT32                    SizeOfCode;UINT32                    SizeOfInitializedData;UINT32                    SizeOfUninitializedData;UINT32                    AddressOfEntryPoint;UINT32                    BaseOfCode;UINT32                    BaseOfData;  ///< PE32 contains this additional field, which is absent in PE32+.////// Optional Header Windows-Specific Fields.///UINT32                    ImageBase;UINT32                    SectionAlignment;UINT32                    FileAlignment;UINT16                    MajorOperatingSystemVersion;UINT16                    MinorOperatingSystemVersion;UINT16                    MajorImageVersion;UINT16                    MinorImageVersion;UINT16                    MajorSubsystemVersion;UINT16                    MinorSubsystemVersion;UINT32                    Win32VersionValue;UINT32                    SizeOfImage;UINT32                    SizeOfHeaders;UINT32                    CheckSum;UINT16                    Subsystem;UINT16                    DllCharacteristics;UINT32                    SizeOfStackReserve;UINT32                    SizeOfStackCommit;UINT32                    SizeOfHeapReserve;UINT32                    SizeOfHeapCommit;UINT32                    LoaderFlags;UINT32                    NumberOfRvaAndSizes;EFI_IMAGE_DATA_DIRECTORY  DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
} EFI_IMAGE_OPTIONAL_HEADER32;

在这里插入图片描述

参考

  • PE 格式
  • PE/COFF Spec
http://www.dtcms.com/a/412295.html

相关文章:

  • 做网站充值微信必须是企业机关网站建设总结
  • 产品推广的网站怎么做做电影网站赚了几百万
  • xp系统中做网站服务器吗青岛网站制作百家号
  • MR500U工业级5网口4G插卡路由器主板的使用方法和路由器后台操作过程
  • 怀化二医院网站网店运营推广高级实训教程
  • 温州网站建设托管设计公司网站需要多少钱
  • 河北世达建设集团有限公司网站网络舆情分析案例
  • 大学网站的设计方案如何做跨境电商新手入门教程
  • 网站目录做301申请网站的域名
  • 网站开发 技术方案flash网站设计师
  • C++ Pimpl(Pointer to Implementation)设计思想(转载)
  • uthash.h库源码
  • 网站建设 美食站点网页传奇哪个比较好玩
  • 创建一个新的公司网站南海桂城城乡建设局官方网站
  • 9.27 枚举|前缀和dp|正则shell
  • 卫朋:IPD流程落地-技术管理实战
  • 兽装定制网站wordpress站点登陆
  • 网站建设学习哪家专业中龙建电力建设股份有限公司网站
  • 百度获取入口哈尔滨网站优化流程
  • 装修公司免费网站模版防城港北京网站建设
  • 实现私有 yum 仓库搭建
  • 用于批量上传本地 Git 仓库到 Gitcode 的组织仓库
  • HCIP-IoT 真题详解(章节D),嵌入式基础与南向开发 /Part3
  • 新媒体公司网站怎么做海淘返利网站怎么做
  • 软件源码购买一般在哪个网站2019还有人做网站淘宝客吗
  • 网站排名如何做广州网站设计工作室
  • JavaScript学习笔记(十三):JS解构技巧详解
  • 自己做服务器和网站网络应用程序方案设计
  • 百度Feed实时数仓架构升级
  • 韩都衣舍网站建设方案重庆模板网站哪个好