__.
_ __/_ /| |
| ) | ) | |
| \ | \ | |
/ / _ / ||
/ /
_________ . ____ . . _____
/ / _ || ______ ______ | |/ _| ____ ||/ _
_ \ / / / |/ // / | < / | \ / __
/ \ /| |_ \ _ \ | | | | \ || | \ /
/ / /_/ |/ > > |____| _| /||| _ >
/ / / / / /
EFI 瑞士军刀 一款用于改进 (U)EFI 逆向工程的 IDA 插件
版权所有 (C) 2016, 2017 Pedro Vilaça (fG!) - [email protected] - https://reverse.put.as
这是一款用于辅助 (U)EFI 二进制逆向工程的 IDA 插件。 它基于 Snare 的原始作品 - https://github.com/snare/ida-efiutils 由于我讨厌 Python,所以我用 C 语言重新编写,并加入了一些我想要的额外功能。
已在 IDA 6.9/6.95 Mac OS X 版本上测试通过。
要在 OS X 上编译,请使用 Makefile 或 XCode 工程。
你需要编辑 XCode 工程并设置 SDK 的路径。 (默认为 /Applications/IDA Pro 6.95/idasdk695)
你应该编辑 config.h 并修改日志和数据库路径。
将 EFISwissKnife.pmc64 复制到 /Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/plugins/
默认情况下,它只将插件编译为 IDA 的 64 位版本。如果你希望插件用于 32 位版本, 你需要编辑 Xcode 工程并将 EA64=1 改为 0。
要从 IDA 中调用它,请使用 Shift+F2,然后
该插件支持批处理模式,以便你批量分析 EFI 二进制文件并收集有关服务使用情况的一些统计数据。
你可能想要更新 efi_guids.h 中可用的 GUID。
此代码针对 Mac OS X EFI 二进制文件。它应该可以毫无问题地用于其他平台的 UEFI 二进制文件,或者只需少量 修改和更新即可。
仅支持 PE 二进制文件,尚不支持 TE 二进制文件。
就这样!尽情享受吧 :-)
fG!
v1.0 - 初始版本
IDA 缺陷: 另一个缺陷与 PLUGIN_UNL 标志有关。它用于“在调用‘run’后立即卸载插件”。 如果设置了此选项,会导致 Windows 版本崩溃。Mac 版本似乎可以正常处理。