这一部分继续展开 PE 数据目录:资源目录保存图标、对话框、版本信息等;异常目录支持 x64 异常展开;安全证书用于签名校验。这些内容不是主代码,但对分析软件身份、界面资源和异常处理很重要。

1、内容范围

小节 内容 复盘点
12.2 - 14.4 资源与图标 资源目录层级、GUI SDK、图标组、ICO 提取
14.5 - 16.5 异常机制 SEH、VEH、x64 UNWIND、Runtime Function
16.6 - 16.8 安全证书 证书目录、特殊地址和模块证书解析

2、资源目录层级

资源目录通常是三层:

1
类型 -> 名称/ID -> 语言 -> 数据

常见资源类型:

类型 内容
ICON 图标数据
GROUP_ICON 图标组
VERSION 版本信息
DIALOG 对话框
STRING 字符串表

3、图标资源提取

应用程序图标往往由图标组和多个图标图像组成。复盘时要区分:

说明
图标组 描述有哪些尺寸/颜色深度
图标数据 真正的图像数据
ICO 文件 文件头 + 图标目录 + 图像数据

4、异常机制

x86 常见 SEH 链,x64 更依赖异常目录和 UNWIND 信息。异常目录能帮助系统在异常发生时正确展开栈、调用处理器和清理资源。

机制 复盘重点
SEH 结构化异常处理
VEH 向量化异常处理
Runtime Function x64 函数范围和展开信息
UNWIND_INFO 记录栈帧如何恢复

5、x64 异常展开

x64 下不再主要依赖栈上的 SEH 链,而是通过 .pdata / .xdata 等信息描述函数和展开规则。

数据 作用
BeginAddress 函数起始 RVA
EndAddress 函数结束 RVA
UnwindInfoAddress 展开信息 RVA

6、安全证书目录

安全证书目录比较特殊,它的地址通常是文件偏移而不是 RVA。解析时不能直接按普通数据目录换算。

注意点 说明
位置特殊 证书表不映射进内存
用途 数字签名、完整性和发布者信息
修改影响 修改文件内容可能破坏签名

7、防护复盘

方向 观察点
资源异常 图标/版本信息与真实文件不一致
证书异常 签名缺失、无效或发布者不匹配
异常目录异常 异常表损坏或不合理
图标伪装 图标像正常软件,但路径/签名异常

8、学习检查清单

检查项 状态
能说明资源目录三层结构 待复盘
能区分图标组和图标数据 待复盘
能说明 x86 SEH 和 x64 UNWIND 的区别 待复盘
能解释证书目录为什么不能按普通 RVA 处理 待复盘
能把资源、证书和文件身份复盘结合起来 待复盘