UEFITool是一款专门用于读取、搜索、添加、删除和提取UEFI BIOS中的各种资源的强大工具。它的主要用途是用于BIOS修改和固件的调试。
它允许用户浏览BIOS的各个部分并查看其详细信息,包括驱动、应用、引导加载程序等,以获取深入的洞察。它能够识别和解析各种类型的体积、文件和部分,并允许用户导出和重新插入。为了方便查找,它还包含一个强大的搜索功能,用户可以用它来搜索字符串、GUIDs或乱码数据。
UEFITool界面简洁易用,是一个用于浏览UEFI固件的结构和内容的理想工具,其操作简单,易于理解。它支持针对UEFI固件的多种操作,包括提取、构建、查找、更新等。另外,它十分灵活,可以应用在各种标准或自定义UEFI BIOS上。
专业的 BIOS技术人员和高级用户可以使用UEFITool进行详细的固件分析和深度定制,帮助优化系统性能并提升用户体验。
UEFITool 非常简短的介绍
UEFITool 是一个用 C++/Qt 编写的跨平台开源应用程序,它将 UEFI 兼容的固件映像解析为树形结构,验证映像的完整性并提供 GUI 来操作映像的元素。
由于缺乏用于修补 UEFI 映像的跨平台开源实用程序,项目开发于 2013 年中期开始。
2015 年初,开始了一轮重大重构,以使程序与较新的 UEFI 功能兼容,包括 FFSv3 卷和固定图像元素。它目前正在开发中,但仍缺少以下功能:
- 编辑器部分,即图像重建例程
- 控制台用户界面
缺失的部分正在开发中,一旦图像重建再次工作,就会制作带有新引擎的版本。
衍生项目
还有一些其他项目使用 UEFITool 的引擎:
- UEFIExtract,它使用 ffsParser 将提供的固件映像解析为树结构,并将解析的结构递归地转储到 FS 上。 Jethro Beekman 的树实用程序可用于处理提取的树。
- UEFIFind,它使用 ffsParser 查找包含指定模式的图像元素。它是为UBU项目开发的。
备择方案
现在,您可能会发现 UEFITool 的一些替代品也很有用:
- TianoCore 的 FMMT。基于 Python 的开源工具集,用于修改基于 EDK2 的 UEFI 固件映像。不支持任何 IBV 自定义,但它是官方的,并且存在于 EDK2 存储库中。
- 谷歌和 Facebook 的 Fiano。基于 Go 的跨平台开源工具集,用于修改 UEFI 固件映像。
- AndyP 的 PhoenixTool。用 C# 编写的仅限 Windows 的免费 GUI 应用程序。主要用于SLIC相关的修改,但不限于此任务。需要 Microsoft .NET 3.5 才能正常工作。支持从各种供应商特定格式(例如加密的 HP 更新文件和 Dell 安装程序)解压固件映像。
- uefi 固件解析器,作者:Teddy Reed。用 Python 编写的跨平台开源控制台应用程序。由于使用 Python,因此非常适合修补者。可在脚本中使用以自动进行固件修补。
- 英特尔的芯片安全。用 Python 和 C 编写的跨平台部分开源控制台应用程序。可用于测试基于 Intel 的平台是否存在各种与安全相关的错误配置,而且还具有 NVRAM 解析器和其他旨在进行固件修改的组件。
安装
您可以使用适用于 Windows 和 macOS 的预构建二进制文件,也可以自行构建二进制文件。
- 要构建使用 Qt 库 (UEFITool) 的二进制文件,您需要 C++ 编译器和 Qt5 或 Qt6 库的实例。安装它们,获取源代码,使用 qmake (
qmake ./UEFITool/uefitool.pro
) 生成 makefile,并在生成的文件上使用系统的 make 命令(即nmake release
、make release
和很快)。基于 Qt6 的构建还可以使用 CMAKE 作为替代构建系统。 - 要构建不使用 Qt 的二进制文件(UEFIExtract、UEFIFind),您需要 C++ 编译器和 CMAKE 实用程序来为您的操作系统和构建环境生成 makefile。安装它们,获取源代码,使用 cmake (
cmake UEFIExtract
) 生成 makefile,并在生成的文件上使用系统的 make 命令(即nmake release
、make release
和很快)。非 Qt 构建也可以使用 Meson 作为替代构建系统。
已知的问题
- 目前只能使用过时且不受支持的 UEFITool 0.28(
old_engine
分支)和基于它的工具(UEFIReplace
、UEFIPatch
)进行图像编辑。这是最优先的问题#67,正在处理中,尽管进展缓慢(由于正确实现它需要大量的编码和测试)。 - 某些供应商特定的固件更新文件可能无法正确打开或根本无法打开。这包括加密的 HP 更新文件、Dell HDR 和 EXE 文件、一些 InsydeFlash FD 文件等。启用对此类文件的支持将需要大量的逆向工程,这几乎毫无意义,因为更新的映像可以从已经解密和解压的 BIOS 芯片中获取。
- 目前不支持英特尔固件接口表 (FIT) 编辑。 FIT 包含指向各种映像组件的指针,这些映像组件必须在执行 BIOS 芯片的第一条 CPU 指令之前加载。这些组件包括 CPU 微代码更新、BIOS Guard 和 Boot Guard 技术使用的二进制文件和设置以及其他一些内容。有关 FIT 的更多信息可在此处获取。
UEFIExtract
的 Windows 版本可能会在某些输入文件上遇到文件夹路径长度超过 260 字节 (MAX_PATH
) 的问题(请参阅问题 #363)。这是一个已知的 Windows 限制,可以通过通过 Windows 注册表启用长路径支持并向需要此类支持的可执行文件添加清单来修复。UEFIExtract
自版本A67
以来已添加了所需的清单,并且 Microsoft 在上面链接的页面上提供了所需的注册表文件,但此解决方法仅从 Windows 10 build 1067 开始可用。
驱虫剂
- Coverity Scan - C、C++、C#、JavaScript、Ruby 或 Python 代码的静态分析器。
- SonarCloud - 基于云的代码分析服务。
- PVS-Studio - C、C++、C# 和 Java 代码的静态分析器。
- CodeQL - 由 GitHub 开发的代码分析引擎,用于自动化安全检查。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)