PE笔记之NT头PE扩展头
typedef
struct
_IMAGE_OPTIONAL_HEADER {
//
// Standard fields.
//
WORD Magic;
//010B-IMAGE_NT_OPTIONAL_HDR32_MAGIC
BYTE MajorLinkerVersion;
//0A-连接器主版本号
BYTE MinorLinkerVersion;
//00-连接器小版本号
DWORD SizeOfCode;
//0000008A(138)-代码节大小
DWORD SizeOfInitializedData;
//0000004C(76)-已初始化数据大小
DWORD SizeOfUninitializedData;
//00000000(0)-为初始化数据大小
DWORD AddressOfEntryPoint;
//000110AA程序入口地址
DWORD BaseOfCode;
//00001000程序段基地址
DWORD BaseOfData;
//00001000数据段基地址
//
// NT additional fields.
//
DWORD ImageBase;
//镜像加载基地址00400000
DWORD SectionAlignment;
//节对其0001000(4096)
DWORD FileAlignment;
//文件对齐0000200(512)
WORD MajorOperatingSystemVersion;
//操作系统主版本号0005
WORD MinorOperatingSystemVersion;
//操作系统小版本号0001
WORD MajorImageVersion;
//镜像主版本号0000
WORD MinorImageVersion;
//镜像小版本号0000
WORD MajorSubsystemVersion;
//子系统主版本号0005
WORD MinorSubsystemVersion;
//子系统小版本号0001
DWORD Win32VersionValue;
//0
DWORD SizeOfImage;
//镜像大小00022000
DWORD SizeOfHeaders;
//头大小0400
DWORD CheckSum;
//0
WORD Subsystem;
//03-IMAGE_SUBSYSTEM_WINDOWS_CUI
WORD DllCharacteristics;
//8140IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
DWORD SizeOfStackReserve;
//栈初始化大小010000
DWORD SizeOfStackCommit;
//栈提交大小01000
DWORD SizeOfHeapReserve;
//堆初始化大小010000
DWORD SizeOfHeapCommit;
//堆提交大小01000
DWORD LoaderFlags;
//0
DWORD NumberOfRvaAndSizes;
//10(16)
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
//数据目录表
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
AddressOfEntryPoint字段
ImageBase字段
SectionAlignment 字段和FileAlignment字段
Subsystem字段
取 值
|
Windows.inc中的预定义值
|
含 义
|
0
|
IMAGE_SUBSYSTEM_UNKNOWN
|
未知的子系统
|
1
|
IMAGE_SUBSYSTEM_NATIVE
|
不需要子系统(如驱动程序)
|
2
|
IMAGE_SUBSYSTEM_WINDOWS_GUI
|
Windows图形界面
|
3
|
IMAGE_SUBSYSTEM_WINDOWS_CUI
|
Windows控制台界面
|
5
|
IMAGE_SUBSYSTEM_OS2_CUI
|
OS2控制台界面
|
7
|
IMAGE_SUBSYSTEM_POSIX_CUI
|
POSIX控制台界面
|
8
|
IMAGE_SUBSYSTEM_NATIVE_WINDOWS
|
不需要子系统
|
9
|
IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
|
Windows CE图形界面
|
DataDirectory字段
索 引
|
索引值在Windows.inc中的预定义值
|
对应的数据块
|
0
|
IMAGE_DIRECTORY_ENTRY_EXPORT
|
导出表
|
1
|
IMAGE_DIRECTORY_ENTRY_IMPORT
|
导入表
|
2
|
IMAGE_DIRECTORY_ENTRY_RESOURCE
|
资源
|
3
|
IMAGE_DIRECTORY_ENTRY_EXCEPTION
|
异常(具体资料不详)
|
4
|
IMAGE_DIRECTORY_ENTRY_SECURITY
|
安全(具体资料不详)
|
5
|
IMAGE_DIRECTORY_ENTRY_BASERELOC
|
重定位表
|
6
|
IMAGE_DIRECTORY_ENTRY_DEBUG
|
调试信息
|
7
|
IMAGE_DIRECTORY_ENTRY_ARCHITECTURE
|
版权信息
|
8
|
IMAGE_DIRECTORY_ENTRY_GLOBALPTR
|
具体资料不详
|
9
|
IMAGE_DIRECTORY_ENTRY_TLS
|
Thread Local Storage
|
10
|
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG
|
具体资料不详
|
11
|
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
|
具体资料不详
|
12
|
IMAGE_DIRECTORY_ENTRY_IAT
|
导入函数地址表
|
13
|
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
|
具体资料不详
|
14
|
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
|
具体资料不详
|
15
|
未使用
|
PE笔记之NT头PE扩展头的更多相关文章
- PE笔记之NT头PE签名
typedef struct _IMAGE_NT_HEADERS { DWORD Signature; //PE头签名PE\0\0 IM ...
- PE笔记之NT头PE文件头
typedef struct _IMAGE_FILE_HEADER { WORD Machine; //014C-IMAGE_FILE ...
- PE文件学习系列三-PE头详解
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 最近比较忙 ...
- PE文件格式详解,第一讲,DOS头文件格式
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...
- PE文件格式详解,第三讲,可选头文件格式,以及节表
PE文件格式详解,第三讲,可选头文件格式,以及节表 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 一丶可选头结构以及作 ...
- PE笔记之PE基本结构图(PE笔记索引)
PE(Portable Execute) 文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任 何扩展名.那 ...
- UNIX标准化及实现之POSIX标准扩展头文件
POSIX标准定义的XSI(X/Open System Interface)扩展头文件 头文件 说明 <cpio.h> cpio归档值 <dlfcn.h> 动态链接 <f ...
- Android系列之网络(二)----HTTP请求头与响应头
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- (二)----HTTP请求头与响应头
一.HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度.通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消 息.客户端向服务器发送一个请求,请求头 ...
随机推荐
- 在生产环境下实现每天自动备份mysql数据库
1.描述 我相信很多朋友在工作都都会有这种需求,老板或领导让你每天都要备份mysql数据库,你该如何实现呢,是每天到一定的时间在服务器上敲一遍mysql的备份命令,还是想写个脚本,定时定点的自动备份呢 ...
- node.js express环境下中文需要注意的地方
问题一: 最近在nuxt项目中开始着手把一些跨域的请求转移到express里,其实跟其他语言差不多,http对象发请求,接收请求都写得很顺畅.之前用的请求部分大多数是get请求,所以除了注意编码问题之 ...
- php 多维数组指定某个值作为键
$temp_key = array_column($mobile_arr,'cidf'); //键值 $mobile_arr = array_combine($temp_key,$mobile_arr ...
- 关于request.getServletContext()方法报错的问题
可以通过修改pom文件来添加一个javax.servlet-api-3.1.0.jar的jar包,找到你的pom.xml文件添加代码如下: <dependency> <groupId ...
- pandas知识点(处理缺失数据)
pandas使用浮点值NaN表示浮点和非浮点数组中的缺失数据: In [14]: string_data = Series(['aardvark','artichoke',np.nan,'avocad ...
- 【python学习】新手基础程序练习(二)
Ι 继续上一节得内容,这里主要是对各种知识的理解以及如何运用. 一.执行 Python 脚本的两种方式 1.把python执行文件加到计算机的环境变量中,然后新建文件把程序写在新文件里,再通过cmd命 ...
- Flask学习笔记:数据库ORM操作MySQL+pymysql/mysql-python+SQLAlchemy/Flask-SQLAlchemy
Python中使用sqlalchemy插件可以实现ORM(Object Relationship Mapping,模型关系映射)框架,而Flask中的flask-sqlalchemy其实就是在sqla ...
- leetcode 【 Sort List 】 python 实现
题目: Sort a linked list in O(n log n) time using constant space complexity. 代码:oj 测试通过 Runtime: 372 m ...
- Python 3.6 性能测试框架Locust安装及使用
背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“setting” 点 ...
- Python-S9-Day101 Vue-cli
01 昨天内容回顾 02 音乐播放器计算属性方法和组件创建 03 Vue-cli项目生成 04 模板中组件的使用 01 昨天内容回顾 1.1 {{xxx}}模板语法,插值,简单的运算: 1.2 指令系 ...