PE文件头

PE文件头的结构 PE文件是windows下可移植的可执行文件,常见的有exe、dll后缀文件都是PE文件。PE文件头是对整个PE文件数据存储的说明和文件信息的阐述,是一种数据组织方式。32位系统的PE头包括以下结构:DOS MZ头,DOS Stub,PE头,PE头,节表和节内容。 DOS ... 阅读详情

上次我们认识了Dos头,这次我们来认识一下PE文件头

 

紧跟着Dos stub的是PE文件头(PE Header),PE装载器将从IMAGE_DOS_HEADER结构中的e_lfanew字段里找到PE Header的起

始偏移量。该结构如下:

 

typedef struct  _IMAGE_NT_HEADERS {

    DWORD Signature;                           // PE文件头标志:"PE/0/0"

    IMAGE_FILE_HEADER FileHeader;               // PE文件物理分布的信息

    IMAGE_OPTIONAL_HEADER32 OptionalHeader; // PE文件逻辑分布的信息

} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32

 

IMAGE_NT_HEADERS是由三个字段组成。

 

1、Signature字段

 

    在一个有效的PE文件里,Signature字段被设置为00004550h,ASCII码字符是"PE00"

 

2、IMAGE_FILE_HEADER结构

 

   typedef struct _IMAGE_FILE_HEADER {
  WORD Machine;     //运行平台
  WORD NumberOfSections;  //区块的数目
  DWORD TimeDateStamp;    //文件创建日期和时间
  DWORD PointerToSymbolTable;  //指向符号表
  DWORD NumberOfSymbols;       //符号表中符号个数
  WORD SizeOfOptionalHeader;   //IMAGE_OPTIONAL_HEADER32结构大小
  WORD Characteristics;             //文件属性
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

 

 

3、IMAGE_OPTIONAL_HEADER结构

 typedef struct _IMAGE_OPTIONAL_HEADER {

    //

    // 标准域

    //

    WORD    Magic;                    

    BYTE    MajorLinkerVersion;        

    BYTE    MinorLinkerVersion;        

    DWORD   SizeOfCode;                  

    DWORD   SizeOfInitializedData;      

    DWORD   SizeOfUninitializedData;        

    DWORD   AddressOfEntryPoint;        

    DWORD   BaseOfCode;                  

    DWORD   BaseOfData;                  

    //

    // NT附加域      

    //

    DWORD   ImageBase;                   

    DWORD   SectionAlignment;           

    DWORD   FileAlignment;          

    WORD    MajorOperatingSystemVersion;

    WORD    MinorOperatingSystemVersion;

    WORD    MajorImageVersion;       

    WORD    MinorImageVersion;       

    WORD    MajorSubsystemVersion;      

    WORD    MinorSubsystemVersion;      

    DWORD   Win32VersionValue;      

    DWORD   SizeOfImage;                

    DWORD   SizeOfHeaders;          

    DWORD   CheckSum;                

    WORD    Subsystem;                   

    WORD    DllCharacteristics;     

    DWORD   SizeOfStackReserve;     

    DWORD   SizeOfStackCommit;      

    DWORD   SizeOfHeapReserve;      

    DWORD   SizeOfHeapCommit;           

    DWORD   LoaderFlags;                

    DWORD   NumberOfRvaAndSizes;        

    IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];

} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;

 

PE文件详解1——PE文件头部解析 参考书籍:《WindowsPE文件权威指南》 MSDN中winnt.h是PE文件定义的最终决定者。 EXE文件与DLL文件之间的区别完全是语义上的,二者PE结构完全相同。唯一区别用一个字段标示处这个文件是exe还是dll。许多DLL扩展,如OCX控件,控制面板等都是DLL,它们有一样的实体。 64位的Windows只是对PE格式做了一些简单的修饰,新格式叫PE32+。没有新的结构加进去,其余 阅读详情

相关推荐

PE总结3---PE文件结构DOS文件头

PE文件结构DOS文件头,会使用到IMAGE_DOS_HEADER结构体,如下图          结构体 IMAGE_DOS_HEADER          第一个参数 e_magic 其值 恒为0x4D5A (MZ) ----- 所以可以使用宏IMAGE_DOS_SIGNATURE进行判断          第19个参数 e_lfanew 其值为NT头部在文件中的偏移,新的exe文件

oBuYiSeng的博客 2350

PE文件相关内容

1.PE header: 如何加载到内存、从何处开始运行、运行中需要的DLL文件有哪些、需要多大的栈/堆内存等,大量信息以结构体形式存储在PE头中。 PE文件格式如下: DOS头+DOS存根+节区头=PE头 1.DOS头 在PE头最前面的是IMAGE_DOS_HEADER结构体,用来扩展已知的的DOS EXE头,该结构体共40个字节,我们必须要知道其中两个重要成员,分别是: e_magic 代表DOS签名,其16进制值为4D5A(ASCII值为“MZ”) e_flanew 指示NT头的偏移(根据不同的文

apple12_12的博客 578

PE文件格式总结 - DOS文件头、PE文件头、节表和表详解

PE文件格式总结 - DOS文件头、PE文件头、节表和表详解

dvlinker的技术专栏 1万+

PE文件详解之PE文件头

1, PE文件头(PE Header ) 紧挨着 DOS stub     2,  PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称。里面包含着许多PE装载器用到的重要字段。     3,执行体在支持PE文件结构的操作系统中执行时,PE装载器将从 IMAGE_DOS_HEADER 结构中的 e_lfanew 字段里找到PE Header的其实偏移量,加上基地

知其所以然 2092

GD32F303定时器配置:实现两路互补PWM输出与相位控制

本文详细解析了基于GD32F303定时器实现两路互补PWM输出与精确相位控制的方法。通过配置TIMER2的中间对齐模式,结合REMAP功能解决引脚复用问题,从硬件层面稳定生成相位差180度的互补PWM信号,适用于电机驱动、开关电源等对时序要求苛刻的应用场景。

weixin_29182481的博客 306

学习STM32的无人机控制

设计并实现无人机控制系统,使用STM32单片机进行控制。无人机控制系统主要包括飞行控制、姿态控制、定位导航等功能。以下是一个基于STM32的无人机控制系统的代码案例。以上是一个基于STM32的无人机控制系统的代码案例,包括飞行控制、姿态控制和定位导航等功能。请根据实际情况进行修改和完善。

qq_67153941的博客 838

PE格式详细讲解2 - 系统篇02|解密系列

PE格式详细讲解2-系统篇02 让编程改变世界 Change the world by program PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里边包含着许多PE装载器用到的重要字段。下边小甲鱼将为大家详细讲解哈~ 首先是IMAGE_NT_HEADERS 结构的定义:(啥?结构不会,先看看小甲鱼童鞋的《零基础入门学习C语言...

weixin_34221773的博客 226

Oracle 11g R2 RAC 到单实例 Data Guard 搭建(RMAN备份方式)

Oracle RAC集群到单机的dataguard搭建过程

驰兔的博客 1722

Windows逆向工程提升之PE文件的基本概念

PE 是 Microsoft 提出的可移植可执行文件格式,用于描述程序在磁盘上的存储格式以及加载到内存后运行的布局。文件扩展名.exe.dll.sys。用途:应用程序、动态链接库(DLL)、驱动程序等。架构兼容性:支持 x86、x64、ARM 等多种架构。

0xCC说逆向 2164

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

大华事件检测智能服务器,大华股份:高速公路智能事件检测 解决方案

1方案背景随着我国基础设施建设的飞速发展,公路尤其是高速公路的总里程数年年攀升。交通运输部统计数据显示,截止2017年底全国公路总里程477.35万公里,其中高速公路13.65万公里,位居世界第一。高速公路的运营和管理作为全国交通管理的重要组成部分日益受到严峻挑战,交通拥堵和事故频发已成为高速公路上非常突出的问题。抛洒物、行人、车辆不规则行驶等事件是导致以上结果的重要原因。基于视频分析的高速公路智...

weixin_39523887的博客 1822

PE学习(三)第三章:PE文件头

第三章:PE文件头 PE中涉及的地址有四类,它们分别为: 虚拟内存地址(VA) 相对虚拟内存地址(RVA) 文件偏移地址(FOA) 特殊地址  没有物理内存对应的页面被标记为dirty的页面,一般存储在一个名为“交换文件”的磁盘文件中。在WINDOWS XP系统中,交换文件为pagefile.sys  进程本身的VA被解释为:进程的基地址+相对虚拟内存地址  RVA是相对基地址的偏

零点起步 1408

【Proteus仿真】基于74LS148+74LS279+74LS48的四路抢答器

【Proteus仿真】基于74LS148+74LS279+74LS48的四路抢答器

perseverance51博客 8833

2.2 PE结构:文件头详细解析

PE结构是`Windows`系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,DOS头是PE文件开头的一个固定长度的结构体,这个结构体的大小为64字节(0x40)。DOS头包含了很多有用的信息,该信息可以让Windows操作系统使用正确的方式加载可执行文件。从DOS文件头`IMAGE_DOS_HEADER`的`e_lfanew`字段向下偏移`003CH`的位置,就是真正的PE文件头的位置,该文件头是由`IMAGE_NT_HEAD

微软技术分享 1万+

054_小驰私房菜_Camx i2c读写相关备忘

Camera 对Ae、Af这些控制,实际都是,最终实际都是落实到hal下发相关的指令给驱动,那hal这边是怎么给驱动下发相关命令的呢?#小驰私房菜054# #Qcom Camx#可以参考看下下面相关代码内容。

149

BLDC&PMSM电机控制器硬件设计工程(三)控制器驱动芯片方案

在汽车电机控制系统中,栅极驱动IC扮演着至关重要的角色。它作为主控MCU与功率开关管(MOSFET/IGBT)之间的桥梁,将微弱的PWM信号放大为足以快速、可靠驱动功率管的强信号。本文将深入解析英飞凌、TI和NXP的车规级栅极驱动方案,重点关注半桥和单侧驱动IC。1)为什么需要栅极驱动器?栅极驱动器是低压控制器和高压电路之间的缓冲电路,用于放大控制器的控制信号,从而实现功率器件更有效的导通和关断。栅极驱动器的作用总结如下:1.将控制器的低压信号转化为更高电压的驱动信号,以实现功率器件稳定导通和关断。

小幽余生不加糖 493

深入浅出Windows PE(一) PE文件头

深入浅出Windows PE(一)  PE文件头     PE文件头记录了PE文件中的所有数据组织方式,它类似于一本书的目录,通过目录我们可以快速定位到某个具体的章节;通过PE文件头部分对某些数据结构的描述,我们也可以定位到那些不在文件头部的信息,比如导入表数据,导出表数据,资源表数据等。 1.与PE有关的基本概念 地址 PE中涉及的地址有四类,他们分别是: * 虚拟内存地址(VA)

The New Old Things 8783

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怎样修改PE文件头大小

转载请注明版权:http://a1pass.blog.163.com/    作者:A1Pass 黑客反病毒论坛 http://bbs.hackav.com     不知道通过上一节的学习与大家自己的努力,许多以前曾困惑不解的问题现在是否已经有了满意的答案。如果自己认为理解的还不够,就多实践一下,多思考一会,多搜索一次,相信你会因此而变得不再平凡。    这一节就让我带领大家走进文件系统的底层——PE文件结构的学习与探究。    其实PE文件就是指Windows里的DLL与EXE文件,PE的意思就是 Por

Jeromexin的专栏 6014

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

学习PE文件头

PE文件(portable executable)大致结构1.DOS文件头 64byte                     其中最重要的是: e_magic 表示MS-DOS文件头的签名                                              e_lfanew 指出 image_nt_header在映像中的位置2.DOS stub程序 128byte    ...

peterchilly的博客 547

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

遍历PE文件头。

遍历PE文件头,枚举PE文件节表。以下是基本方法。#include /*typedef struct SEH {  DWORD PrevLink ;  // the address of the previous seh structure  DWORD CurrentHandler ; // the address of the new exception handler  DWORD Safe

淡薄以明志,宁静以致远 811

结构类型: PE文件头

结构类型: PE文件头 【免费下载链接】ImHex ???? A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. ...

gitblog_00477的博客 688

UPack的PE文件头分析与OEP查找

UPack(Ultimate PE压缩器),是一种PE文件的运行时压缩器,特点是使用独特的方法对PE头进行变形。UPack会使许多的PE分析程序无法正常运行,因此很多恶意代码都是通过UPack进行压缩。   UPack PE文件头分析 使用UPack压缩notepad.exe: UPack会直接压缩源文件而不会进行备份。压缩后的notepad文件更名为notepad_upack。 使...

Mi1k7ea 1836

【Windows】 PE文件头学习

学习PE文件头之前要先了解几个结构体:1.【IMAGE_DOS_HEADER】 DOS头部结构体。 2.【IMAGE_NT_HEADERS】 PE头部结构体。 3.【IMAGE_FILE_HEADER】文件头部结构体。 4.【IMAGE_OPTIONAL_HEADER】可选头结构体。 5.【IMAGE_SECTION_HEADER】节表结构体。IMAGE_DOS_HEADERDOS头部结构体

铭天的专栏 2707

PE文件-文件头

文件头格式 文件头是NT头的第二个成员-格式为 typedef struct _IMAGE_FILE_HEADER { WORD Machine; //1.文件运行平台 WORD NumberOfSections; //2.节表的数量 DWORD TimeDateStamp; //3.文件创建时间 DWORD PointerToSymbolTable; //4.符号表偏移 DWORD NumberOfSymbols; //5.

weixin_45012273的博客 256

C++打印PE文件头信息Demo

PE文件格式被组织为一个线性的数据流,它由一个MS-DOS头部开始,接着是一个是模式的程序残余以及一个PE文件标志,这之后紧接着PE文件头和可选头部。这些之后是所有的段头部,段头部之后跟随着所有的段实体。文件的结束处是一些其它的区域,其中是一些混杂的信息,包括重分配信息、符号表信息、行号信息以及字串表数据。 PE文件主要信息按顺序 IMAGE_DOS_HEADER MS-DOS M

OYJJ的专栏 4152

PE文件结构的基础概念,用32位汇编写一个程序读取PE文件头

PE文件由文件头部分,节表部分,还有节区部分组成。其中文件头包括PE文件头还有DOS文件头,节表主要是用来说明每个节的RVA地址(RVA地址就是文件被装载到内存后数据相对于文件起始位置的偏移量)还有节的尺寸的,当然还有一些其他的信息。而节区就是将属性相同的文件数据放在了一起,比如可执行的放一起,只读的放一起等等。 这是PE文件头的大概样子: DOS文件头 DOS头部分由MZ格式...

weixin_43575859的博客 1137
上一篇: MS-DOS头部
下一篇: 判断是不是PE文件
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值