piffd0s/ntoskrnl-metadata
GitHub: piffd0s/ntoskrnl-metadata
一个 IDA Python 脚本,从 Windows ntoskrnl.exe 中自动提取针对 CVE-2026-40369 的函数 RVA 和 _EPROCESS 结构偏移,辅助内核漏洞利用的版本适配。
Stars: 1 | Forks: 0
# ntoskrnl-元数据
一个用于从 Windows ntoskrnl.exe 二进制文件中提取关键内核元数据的 IDA Python 脚本。该工具可自动提取针对 **CVE-2026-40369** 及其他内核漏洞开发利用所需的功能 RVA 和 `_EPROCESS` 结构偏移。
## 目的
本工具通过自动提取必须硬编码到 exploit payload 中的特定版本内核元数据,帮助编译针对 **CVE-2026-40369** 的成功利用。提取的值可确保在不同 Windows 构建版本和补丁级别下正确地进行函数 hook 和结构体成员访问。
## 功能
- **自动函数 RVA 提取**:检索关键内核函数的 RVA:
- `ExpGetProcessInformation`
- `ExpQuerySystemInformation`
- `CmpLayerVersionCount`
- `CmpLayerVersions`
- `PsInitialSystemProcess`
- **_EPROCESS 结构偏移**:提取以下成员的偏移:
- `UniqueProcessId`
- `ActiveProcessLinks`
- `Token`
- `ImageFileName`
- **即用输出**:生成可直接粘贴到 CVE-2026-40369 exploit 代码中的格式化输出
## 前置条件
- **IDA Pro**(支持 Python)
- **已加载 ntoskrnl.exe 的 Windows PDB 符号**
- **ida_typeinf 模块**(IDA Pro 自带)
## 使用方法
1. 在 IDA Pro 中打开 ntoskrnl.exe
2. 加载匹配的 Windows PDB 符号:
- File → Load File → PDB File
- 选择对应 Windows 版本的 ntoskrnl.pdb
3. 运行脚本:
- File → Script File → 选择 `extract_metadata.py`
- 或:File → Python → Run script
4. 脚本将输出:
- 所有函数 RVA 及其内存地址
- _EPROCESS 结构体成员偏移
- 可直接粘贴到 exploit 代码中的格式化行
## 输出示例
```
=== RVAs (image base = 0x140000000) ===
ExpGetProcessInformation: ea=0x1400a1234 rva=0xa1234
ExpQuerySystemInformation: ea=0x1400a5678 rva=0xa5678
...
=== _EPROCESS member offsets ===
_EPROCESS.UniqueProcessId: 0x440
_EPROCESS.ActiveProcessLinks: 0x448
_EPROCESS.Token: 0x4d8
_EPROCESS.ImageFileName: 0x5e8
=== g_builds[] row (paste at poc.c:146) ===
{ 26200, 8037, 0xA1234, 0xA5678, 0x440, 0x448, 0x4D8, 0x5E8 },
```
## 故障排除
| 错误 | 解决方案 |
|------|----------|
| "NOT FOUND (PDB not loaded?)" | 加载与 ntoskrnl.exe 版本匹配的正确 Windows PDB 文件 |
| "_EPROCESS not in Local Types" | 确保已正确加载 PDB;请尝试 File → Load File → PDB File |
| 脚本运行但无输出 | 检查 IDA Python 控制台是否已打开(Windows → Output windows → Python) |
## 支持的版本
本脚本适用于任何支持 PDB 符号的 Windows ntoskrnl.exe 版本。已在 Windows 10 和 Windows 11 上测试通过。
## 注意事项
- RVA 是相对于输出中显示的镜像基址计算的
- 所有偏移均以字节为单位(从 IDA 的位偏移转换而来)
- 生成的输出格式与 CVE-2026-40369 exploit 框架兼容
- 请确保拥有与 ntoskrnl.exe 匹配的正确 PDB 版本
## 许可证
本工具按原样提供,仅供安全研究和授权分析使用。
标签:CVE-2026-40369, EPROCESS结构, Exploit开发工具, IDA Pro, ntoskrnl, PDB符号, Windows内核, Windows逆向, 云资产清单, 内核元数据提取, 内核漏洞, 函数RVA, 漏洞利用开发, 白帽子, 结构偏移量, 逆向工具, 逆向工程