AMD IOMMU/VT-d 研究项目(开源说明)
代码可能有语法错误或缺失,请自行修补
本仓库包含与 AMD IOMMU/VT-d、ACPI 表(如 IVRS/XSDT)解析与相关行为验证的研究性代码与工具,仅面向安全研究、教学与合规测试用途。请勿用于任何违法或破坏性场景。
- 依赖的本地库(DLL):
FTD3XX.dll
、leechcore.dll
适用场景
- 硬件安全研究与教育
- ACPI/IVRS/XSDT 表项解析与验证
不提供、也不支持任何绕过、攻击或破坏性用途的指导与技术支持。
环境与要求
- 作系统:Windows 10
- Python:建议 3.9/3.10/3.11
- 依赖:见 (个别功能可能需要特定硬件/驱动/固件环境)
requirements.txt
- DLL请自行获取
本项目不提供执行可改变系统安全边界的操作指引。请严格遵守法律法规与所在单位政策。
安全与合规声明
-
本项目仅用于安全研究、教学与合规测试;不得将其用于破坏计算机信息系统安全、侵犯他人合法权益或其他任何违法用途。
-
使用者应自行确保所有研究活动在合法授权与隔离环境中进行,并对由此产生的风险与后果承担全部责任。
-
仓库中如涉及第三方组件/资料,请务必遵守其相应授权条款。
-
已提交腾讯游戏安全中心,请勿用于实际游戏
-
- 研究目的:在合规实验环境中解析/验证 ACPI XSDT/IVRS/DMAR 等表的布局与关联,观察 IOMMU/VT-d 相关行为。
-
总体思路:
- 基于物理内存接口读取内存片段,自动定位 ACPI XSDT;
- 解析 XSDT 头与条目,推导出与现有表项至少 4KB 间隔且 4KB 对齐的未用物理区间;
- 在该区间构造一份结构、长度与校验合理的 DMAR 表镜像;
- 为 DMAR 内 DRHD 的寄存器基址择优选择 >4GB 的空闲 PCIe MMIO 页,回避已映射窗口;
- 以只读优先与最小化写入的方式,置入研究所需结构与指针关系,用于观察系统解析反应。
-
关键组件与步骤:
- 物理内存通道初始化(含重试)以稳定读/写;
- 内存分段转储并进行基于参考特征的 XSDT 相似度搜索;
- XSDT 解析、条目收集与可用空洞(4KB 对齐)选择;
- DMAR 表构造与自检(签名、长度、校验和);
- DRHD 基址在 >4GB MMIO 空间内的启发式候选收集与选择。
-
校验与边界:
- 头部/长度/条目计数与校验和检查,异常时回退或中止;
- 地址冲突规避(与已用表项保持至少 4KB 距离、MMIO 回避策略);
- 仅提供只读验证路径与最小化写入,避免对现有结构覆盖。
-
局限性:平台差异(主板/BIOS/固件/内核)会影响匹配与可用空洞选择;启发式策略并非在所有平台生效
-
↓↓↓↓↓↓↓↓VTD-Bypass.py↓↓↓↓↓↓↓↓
免责声明
本项目按“现状”提供,不附带任何明示或暗示的保证。在任何情况下,作者与贡献者不对因使用本项目而产生的任何直接或间接损害承担责任。请务必在符合法律法规、授权合规且隔离的环境下使用、研究与测试本项目。
本站代码程序仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
© 版权声明
THE END
暂无评论内容