第3章 Windows运行机理-3.4 线程的机制(5)
e_lfanew是相对实际PE头标的相对偏移量或RVA。要得到内存中一个指向PE头标的指针只需将该域的值与映像的基相加//Ignoring typecasts and pointer conversion issues for clarity…pNTHeader dosHeader dosHeader-e_lfanew;其他字段的意义是和DOS头有关的字节这里没有什么大的作用就不做介绍了。2. IMAGE_NT_HEADERS主PE头标是一个IMAGE_NT_HEADERS类型的结构该类型在WINNT.H中定义。在内存中Windows中把IMAGE_NT_HEADERS结构作为它内存中的模块数据库。在Windows中每个被装入的EXE或DLL都用一个IMAGE_NT_HEADERS结构来说明。其结构如下typedef struct _IMAGE_NT_HEADERS {DWORD Signature;IMAGE_FILE_HEADER FileHeader;IMAGE_OPTIONAL_HEADER32 OptionalHeader;} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;Signature表示此文件所表示的类型其意义定义如下#define IMAGE_DOS_SIGNATURE 0x4D5A // MZ#define IMAGE_OS2_SIGNATURE 0x4E45 // NE#define IMAGE_OS2_SIGNATURE_LE 0x4C45 // LE#define IMAGE_NT_SIGNATURE 0x50450000 // PE00如果是PE格式则Signature为PE\0\0PE后跟两个0。3. IMAGE_FILE_HEADERPE头标中紧随PE的WORD记号的是一个IMAGE_FILE_HEADER类型的结构如下所示typedef struct _IMAGE_FILE_HEADER {WORD Machine;WORD NumberOfSections;DWORD TimeDateStamp;DWORD PointerToSymbolTable;DWORD NumberOfSymbols;WORD SizeOfOptionalHeader;WORD Characteristics;} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;这个结构的域只包含了关于文件的最基本的信息。Machine表示该文件运行所要求的CPU有如下的CPU ID定义#define IMAGE_FILE_MACHINE_UNKNOWN 0#define IMAGE_FILE_MACHINE_I386 0x014c// Intel 386.#define IMAGE_FILE_MACHINE_R3000 0x0162// MIPS little-endian, 0x160 big-endian#define IMAGE_FILE_MACHINE_R4000 0x0166// MIPS little-endian#define IMAGE_FILE_MACHINE_R10000 0x0168// MIPS little-endian#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169// MIPS little-endian WCE v2#define IMAGE_FILE_MACHINE_ALPHA 0x0184// Alpha_AXP#define IMAGE_FILE_MACHINE_POWERPC 0x01F0// IBM PowerPC Little-Endian#define IMAGE_FILE_MACHINE_SH3 0x01a2// SH3 little-endian#define IMAGE_FILE_MACHINE_SH3E 0x01a4// SH3E little-endian#define IMAGE_FILE_MACHINE_SH4 0x01a6// SH4 little-endian#define IMAGE_FILE_MACHINE_ARM 0x01c0// ARM Little-Endian#define IMAGE_FILE_MACHINE_THUMB 0x01c2#define IMAGE_FILE_MACHINE_IA64 0x0200// Intel 64#define IMAGE_FILE_MACHINE_MIPS16 0x0266// MIPS#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366// MIPS#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466// MIPS#define IMAGE_FILE_MACHINE_ALPHA64 0x0284// ALPHA64#define IMAGE_FILE_MACHINE_AXP64//IMAGE_FILE_MACHINE_ALPHA64NumberOfSection表示在EXE或OBJ中的节数。这个很重要因为它直接表示节表数组的大小。TimeDateStamp表示连接器生成该文件的时间。该值是指从1969年12月31日下午4点整开始至文件生成时之间的秒数。PointerToSymbolTable表示文件的COFF符号表的偏移量。该域只用在OBJ文件和带有COFF调试信息的PE文件中此信息只在调试文件中有用。NumberOfSymbols表示在COFF符号表中的符号数目参见前一个域此信息只在调试文件中有用。SizeOfOptionalHeader表示紧跟该结构之后的一个可选头标的大小。在可执行文件中它是紧随该结构的image_file_header结构的大小。这个值必须有效。Characteristics表示文件的信息化标记。一些重要的域描述如下// Relocation info stripped from file.#define IMAGE_FILE_RELOCS_STRIPPED 0x0001// File is executable (i.e. no unresolved external references).#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002// Line nunbers stripped from file.#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004// Local symbols stripped from file.#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008// Agressively trim working set#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010// App can handle 2gb addresses#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020// Bytes of machine word are reversed.#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080// 32 bit word machine.#define IMAGE_FILE_32BIT_MACHINE 0x0100// Debugging info stripped from file in .DBG file#define IMAGE_FILE_DEBUG_STRIPPED 0x0200// If Image is on removable media, copy and run from the swap file.#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400// If Image is on Net, copy and run from the swap file.#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800// System File.#define IMAGE_FILE_SYSTEM 0x1000// File is a DLL.#define IMAGE_FILE_DLL 0x2000// File should only be run on a UP machine#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000// Bytes of machine word are reversed.#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000我们常见的意义如下。 0x0001该文件中没有重定位。 0x0002文件是一个可执行的映像即不是一个OBJ或LIB。 0x2000文件是一个动态连接库不是一个程序。

相关新闻

45232453

45232453

45345345

2026/7/6 12:38:29 阅读更多 →
干货来了:千笔·降AI率助手,遥遥领先的降AI率工具

干货来了:千笔·降AI率助手,遥遥领先的降AI率工具

在AI技术迅速发展的今天,越来越多的研究生开始借助AI工具辅助论文写作,以提升效率和内容质量。然而,随之而来的AI率超标问题却让许多学生陷入困境——随着查重系统对AI生成内容的识别能力不断提升,论文中若存在明显AI痕迹&#xf…

2026/7/7 0:14:19 阅读更多 →
实测才敢推!MBA专属降AI神器 —— 千笔·专业降AI率智能体

实测才敢推!MBA专属降AI神器 —— 千笔·专业降AI率智能体

在AI技术迅速渗透学术写作领域的今天,越来越多的MBA学生和研究人员开始依赖AI工具提升论文撰写效率。然而,随着各大查重系统对AI生成内容的识别能力不断提升,"AI率超标"问题逐渐成为论文通过率的隐形杀手。许多学生在使用各类降AI率…

2026/7/6 20:52:33 阅读更多 →

最新新闻

Playwright与MCP协议结合:用自然语言驱动浏览器自动化测试

Playwright与MCP协议结合:用自然语言驱动浏览器自动化测试

1. 项目概述:当Playwright遇上MCP,测试自动化迎来“对话式”革命 如果你是一名前端开发者、测试工程师,或者任何需要和浏览器打交道的技术人,最近一定被两个词刷屏了: Playwright 和 MCP 。前者是微软开源的现代浏…

2026/7/7 20:25:09 阅读更多 →
Switch游戏机畅享B站:wiliwili第三方客户端终极使用指南

Switch游戏机畅享B站:wiliwili第三方客户端终极使用指南

Switch游戏机畅享B站:wiliwili第三方客户端终极使用指南 【免费下载链接】wiliwili 第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili 你是否曾经想…

2026/7/7 20:23:08 阅读更多 →
从真实案例剖析SQL注入与XSS攻击:防御实战与靶场演练

从真实案例剖析SQL注入与XSS攻击:防御实战与靶场演练

1. 项目概述:从真实案例看Web安全的两大“顽疾”干了这么多年安全开发和渗透测试,我见过太多因为SQL注入和XSS(跨站脚本攻击)导致的数据泄露、网站被黑甚至公司倒闭的案例。很多开发者,尤其是刚入行的朋友,…

2026/7/7 20:21:08 阅读更多 →
构建高效自动化渗透测试体系:从架构设计到工程实践

构建高效自动化渗透测试体系:从架构设计到工程实践

1. 项目概述与核心理念在安全行业摸爬滚打八年,尤其是在一线攻防对抗和内部安全建设里泡了这么久,我越来越深刻地感受到一个趋势:单靠“人肉”堆砌的渗透测试,无论是效率、覆盖面还是持续性,都已经跟不上现代企业资产膨…

2026/7/7 20:19:07 阅读更多 →
如何快速掌握Java反编译神器:Luyten完整操作指南

如何快速掌握Java反编译神器:Luyten完整操作指南

如何快速掌握Java反编译神器:Luyten完整操作指南 【免费下载链接】Luyten An Open Source Java Decompiler Gui for Procyon 项目地址: https://gitcode.com/gh_mirrors/lu/Luyten 你是否曾经面对编译后的Java字节码文件感到无从下手?想要理解第三…

2026/7/7 20:19:07 阅读更多 →
XSS攻防实战:从靶场到IDE辅助的漏洞分析与防御

XSS攻防实战:从靶场到IDE辅助的漏洞分析与防御

1. 项目概述:从靶场到实战,一次完整的XSS攻防思维重塑最近在整理自己的Web安全学习笔记,翻到了几年前啃下来的xss-lab靶场记录。这个由PHP编写、包含20个经典关卡的XSS练习平台,可以说是无数安全从业者的“启蒙老师”。有意思的是…

2026/7/7 20:17:04 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻