news 2026/4/16 12:08:49

PE之代码解析异常表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PE之代码解析异常表

PE之代码解析异常表
1)异常表
异常表(ExceptionTable,注意你拼写的Exection是笔误,正确为Exception)是PE(PortableExecutable)文件格式中用于存储结构化异常处理(SEH)和基于帧的异常处理(EH)相关信息的数据结构,是Windows系统处理程序运行时异常(如内存访问错误,除零错误等)的核心依据。


咱们来看下逆向破解中的典型场景:​
识别程序中的异常处理逻辑边界(比如壳通过异常表实现反调试,代码混淆);
定位恶意代码中隐藏的执行流(异常处理常被用作执行流跳转的后门);
修复脱壳后PE文件的异常表(避免程序运行时崩溃)。


2)解析异常表
解析异常表的核心目标是定位异常表在PE文件中的物理位置,解析表内每一条异常处理记录的结构,提取关键地址信息,最终还原程序的异常处理逻辑;异常表的核心定位逻辑为PE文件的异常表信息首先存储在可选头(OptionalHeader)的DataDirectory数组中,索引为IMAGE_DIRECTORY_ENTRY_EXCEPTION(数值为0x04),该位置会记录异常表的虚拟地址(VirtualAddress,VA,即异常表在内存中的起始地址)和大小(Size,即异常表的总字节数),解析时需先通过该索引找到异常表的VA和Size,再将VA转换为文件中的物理偏移(RawOffset),最终读取并解析表内数据。


3)程序开发流程
前期基本流程和导入表基本大差不差哦
1.文件读取:首先把要分析的EXE或DLL文件以二进制方式打开,将文件里所有内容读到内存里的一个临时区域(咱们叫它buf)。
2.定位DOS头:接着把这个buf转换成能识别PE文件开头DOS头的格式(PIMAGE_DOS_HEADER),校验DOS头的e_magic字段是否为IMAGE_DOS_SIGNATURE(0x5A4D,即"MZ"),确认是有效PE文件。
3.定位NT头:找到DOS头里的e_lfanew这个关键值,用它加上buf的起始位置定位到PE文件的核心NT头(PIMAGE_NT_HEADERS32/PIMAGE_NT_HEADERS64),校验NT头的Signature字段是否为IMAGE_NT_SIGNATURE(0x00004550,即"PE")。
4.区分PE位数:通过NT头中OptionalHeader.Magic字段判断PE文件是32位(IMAGE_NT_OPTIONAL_HDR32_MAGIC)还是64位(IMAGE_NT_OPTIONAL_HDR64_MAGIC)。
5.获取异常目录(ExceptionDirectory)
从NT头的OptionalHeader.DataDirectory数组中,根据IMAGE_DIRECTORY_ENTRY_EXCEPTION索引定位到异常目录结构体(PIMAGE_DATA_DIRECTORY):
64位PE文件使用pNt64->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION]
32位PE文件使用pNt32->Optiona

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:23:16

学霸同款MBA必看!8个AI论文平台TOP8测评

学霸同款MBA必看!8个AI论文平台TOP8测评 2026年MBA学术写作工具测评:为何需要一份权威榜单? 在MBA学习与研究过程中,论文撰写是不可或缺的一环。然而,面对繁重的课程任务和高强度的实践项目,如何高效完成高…

作者头像 李华
网站建设 2026/4/15 16:54:01

Java毕设项目:基于SpringBoot的水族馆商品销售与经营管理系统(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 10:53:43

Java毕设选题推荐:基于SpringBoot的水族馆宠物鱼销售与经营管理系统基于SpringBoot的水族馆商品销售与经营管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 9:19:07

最近在搞流固耦合仿真时踩了不少坑,今天拿两个经典案例跟大伙唠唠。咱们直接从圆管里被冲走的滑块说起,这玩意儿看着简单,实际耦合起来能把人逼疯

comsol流体仿真 ,流固耦合,圆管内流体驱动物块的移动和 流体驱动扇叶的转动先看圆管内流体驱动物块这个场景。COMSOL里最骚的操作就是给流体域和固体域画个"鸳鸯谱"——在物理场接口勾选流固耦合(Fluid-Structure Interaction)。不过别急着点计…

作者头像 李华
网站建设 2026/4/3 1:32:06

孩子近视常会伴有这些小动作,你都知道吗?

作为家长,你是不是经常发现孩子看书、看电视时会有一些奇怪的小动作?很多人会把这些行为当成孩子的“坏习惯”来纠正,却不知道,这些看似不起眼的动作,很可能是近视找上门的信号。如果能及时捕捉这些信号并干预&#xf…

作者头像 李华