工具
uefi_retool UEFI 固件逆向工具
用于 UEFI 固件逆向工程的 Python 命令行工具及 IDA Pro 插件。uefi_retool.py 用 uefi-firmware-parser 解包固件镜像,收集其中的可执行模块,并以批处理模式逐一交给 IDA 分析,把各模块的引导服务调用和协议 GUID 写入 JSON;另一条命令则把 GUID 不在其 EDK2、AMI 及厂商 GUID 表中的协议列为专有协议。在 IDA 中,插件会应用 EFI 系统表的类型和名称,在浏览窗口中列出协议,并根据该 JSON 展示固件各模块之间的依赖浏览器和依赖图。
- 目标
- 固件
- 类别
- 固件工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 该仓库已归档。最后一次提交(2024-12-28)只更新了 README,最后的代码改动在 2021-08-03,唯一的标签 1.2.0 发布于 2020-05-07,比当前提交早八个提交;没有 GitHub 发行版。所审阅的代码树只包含 IDA 插件,没有 Ghidra 组件。
- 需要已授权的 IDA Pro,并具备 IDAPython 和 PyQt5:将 uefi_analyser.py 和 uefi_analyser 包复制到 IDA 的插件目录,再在 config.json 中设置 IDA 与 IDA64 可执行文件路径以及模块、转储和日志目录;示例配置指向 Windows 上的 IDA Pro 7.6。脚本需要 Python 及 Click、colorama、terminaltables、tqdm,以及按 requirements.txt 中的压缩包地址安装的 uefi-firmware-parser 1.8。
- 输入是使用者自行提供的 UEFI 固件镜像;README 示例提到的 ThinkPad X1 Carbon 第五代镜像并不在仓库中,仓库也未提交任何固件镜像。分析器识别 x86 和 x86-64 指令模式,并根据每个镜像的机器类型选择 IDA 或 IDA64。随附的 GUID 表来自 EDK2 和 EDK、ida-efiutils 中的 AMI 列表,以及 Dell、Lenovo 和 ASRock 的列表,tools/update_edk2_guids.py 可刷新 EDK2 表。
- 采用 MIT 许可证(2018–2021,yeggor)。仓库没有测试或 CI,本次审阅未运行脚本或插件。标签和依赖图来自 GUID 匹配和指令模式,需由分析人员核对。所审来源未确立 REA 或 AI 的使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · yeggor/uefi_retool · 修订 be13abf
- ida_plugin/README.md GitHub · yeggor/uefi_retool · 修订 be13abf
- uefi_retool.py GitHub · yeggor/uefi_retool · 修订 be13abf
- config.json GitHub · yeggor/uefi_retool · 修订 be13abf
- requirements.txt GitHub · yeggor/uefi_retool · 修订 be13abf
- ida_plugin/uefi_analyser/analyser.py GitHub · yeggor/uefi_retool · 修订 be13abf
- ida_plugin/uefi_analyser/log_pp_guids.py GitHub · yeggor/uefi_retool · 修订 be13abf
- tools/get_efi_images.py GitHub · yeggor/uefi_retool · 修订 be13abf
- ida_plugin/uefi_analyser/guids GitHub · yeggor/uefi_retool · 修订 be13abf
- LICENSE GitHub · yeggor/uefi_retool · 修订 be13abf