PE总结2---PE文件结构

原创 2015年11月24日 15:59:12

一、概念

PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)


二、PE文件结构

PE文件总的来说是由DOS文件头,DOS加载块,PE文件头,区段表与区段5部分构成。

(该图来自网络)

为了便于后面理解PE结构,我自己也画了一张。




DOS头部分由两部分构成:

        1)DOS 文件头,确定是PE文件和还有指明NT头在文件中的位置。

        2)DOS块是用来兼容MS-DOS操作系统的,目的是当这个文件在MS-DOS上运行时提示一段文字,大部分情况下是:This program cannot be run in DOS mode。

NT文件头包含windows PE文件的主要信息,包括一个‘PE00’字样的签名,PE文件头(IMAGE_FILE_HEADER)和PE可选头(IMAGE_OPTIONAL_HEADER32)。

节表:是PE文件后续节的描述,windows根据节表的描述加载每个节。

节数据:每个节实际上是一个容器,可以包含代码、数据等等,每个节可以有独立的内存权限,比如代码节默认有读/执行权限,节的名字和数量可以自己定义,未必是上图中的四个。

知道了PE文件结构后,我们就能够知道PE文件的写的内容是什么了。

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

相关文章推荐

PE总结4---PE文件结构NT头

IMAGE_NT_HEADERS的结构如下: IMAGE_NT_HEADERS STRUCT { DWORD //PE标志 0x00 IMAGE_FILE_H...

Windows多线程总结(2)-- 多线程的使用

我们在实际应用中使用多线程的情况比较多,我们这里使用多线程模拟卖票的例子:         我们定义一个全局的变量 int tickets = 200; 代表一共有200张票可以卖,通过两个窗口来卖...

PE总结7---PE文件结构NT头之数据目录表 IMAGE_DATA_DIRECTORY

IMAGE_DATA_DIRCTORY结构如下: typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; //相对虚拟地址 DW...

PE总结5---PE文件结构NT头之文件头--IMAGE_FILE_HEADER

我们在上一篇中已经介绍了NT头相关的结构,接下来分别具体的介绍里面的数据。 首先介绍IMAGE_FILE_HEADER 的结构,如下: typedef struct _IMAGE_FILE...

PE总结12---PE文件结构之资源表 (IMAGE_RESOURCE_DIRECTORY)

资源在PE中是以目录的形式存在的,一般有3层:资源类型,目标资源ID与资源代码页 都是以IMAGE_RESOURCE_DIRECTORY结构为头部的,并且后面跟着一个IMAGE_RESOURCE_DI...

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

PE文件结构DOS文件头,会使用到IMAGE_DOS_HEADER结构体,如下图          结构体 IMAGE_DOS_HEADER          第一个参数 e_magic 其值 恒为...

PE总结8---PE文件结构之导出表 (IMAGE_EXPORT_DIRECTORY)

导出表由3个部分构成:  名称表,   函数表,   序号表。   名称表和序号表就是索引,引导调用者找到真正的函数表。   函数表中保存着被导出函数的地址信息    导出表在内存中的顺序是...

PE总结6---PE文件结构NT头之扩展头--IMAGE_OPTIONAL_HEADER

IMAGE_OPTIONAL_HEADER结构,如下: typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. /...

PE总结13 --PE文件结构之 解析资源表

// 资源表2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include DWORD RVA2Offset...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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