用于从 Windows ntoskrnl.exe 二进制文件中提取关键内核元数据的 IDA Python 脚本。该工具可自动提取开发针对 CVE-2026-40369 及其他内核漏洞的利用所需的函数 RVA 和 _EPROCESS 结构偏移量。
该工具通过自动提取版本特定的内核元数据(这些元数据必须硬编码到利用载荷中),帮助构建针对 CVE-2026-40369 的成功利用。提取的值可确保在不同 Windows 构建版本和补丁级别下正确进行函数挂钩和结构成员访问。
自动函数 RVA 提取:检索关键内核函数的 RVA:
ExpGetProcessInformationExpQuerySystemInformationCmpLayerVersionCountCmpLayerVersionsPsInitialSystemProcess_EPROCESS 结构偏移量:提取以下成员的偏移量:
UniqueProcessIdActiveProcessLinksTokenImageFileName即用型输出:生成可直接粘贴到 CVE-2026-40369 利用代码中的格式化输出
在 IDA Pro 中打开 ntoskrnl.exe
加载匹配的 Windows PDB 符号:
运行脚本:
extract_metadata.py脚本将输出:
=== 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 已正确加载;尝试 文件 → 加载文件 → PDB 文件 |
| 脚本运行但没有输出 | 检查 IDA Python 控制台是否已打开(窗口 → 输出窗口 → Python) |
此脚本适用于任何可获得 PDB 符号的 Windows ntoskrnl.exe 版本。已在 Windows 10 和 Windows 11 上测试。
此工具按原样提供,仅用于安全研究和授权分析目的。