Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
shim — UEFI shim loader | Kitploit
工具/GitHubGitHub/rhboot/shim
Defensive ToolsEmbedded Systems SecurityCryptographyHardware SecuritySupply Chain SecurityAuthentication
GitHubrhboot/shim

shim

UEFI shim loader

查看仓库
1.1k35024天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

shim,第一阶段的 UEFI 引导加载程序

shim 是一个简单的 EFI 应用程序,运行时它会尝试打开并执行另一个应用程序。它最初会尝试通过标准的 EFI LoadImage() 和 StartImage() 调用来完成此操作。如果这些调用失败(例如,因为启用了安全启动且二进制文件未使用相应的密钥签名),它将根据内置证书验证该二进制文件。如果验证成功并且该二进制文件或签名密钥未被禁止,shim 将重定位并执行该二进制文件。

协议

shim 锁定协议

shim 还会安装一个协议,允许第二阶段的引导加载程序执行类似的二进制验证。该协议具有 shim.h 头文件中描述的 GUID,并提供一个单一的入口点。在 64 位系统上,此入口点期望使用 SysV ABI 而非 MSABI 进行调用,因此不应包装对它的调用。

shim 加载器协议

自版本 16.1 起,shim 会覆盖系统表并安装其自身版本的 LoadImage()/StartImage()/UnloadImage()/Exit() 函数,以便第二阶段可以直接从系统表调用它们,并且无论 shim 是否为第一阶段都能正常工作,而无需在第二阶段中包含 shim 专用代码。

安装此协议后,即使嵌套内核未签名,也可以加载已签名的 UKI Unified Kernel Images。因为在 UKI 被加载并验证后,shim 会构建一个包含 UKI 中所有节的内部允许列表。当从这样的节加载映像时,将根据拒绝列表(在撰写本文时为 DBX/MOKX/SBAT)进行验证,但不会根据允许列表(DB/MOK 哈希/签名)进行检查,因为外部映像已经过验证,因此内部映像已受那些签名或哈希覆盖。此外,内部映像不会被 TPM 度量,以避免重复度量。

TPM

在启用了 TPM 芯片且系统固件支持该芯片的系统上,shim 将使用其正在加载的目标的摘要扩展各种 PCR。完整列表见文件 README.tpm。

构建与测试

要使用 shim,只需将 DER 编码的公钥证书放入诸如 pub.cer 之类的文件中,并使用 make VENDOR_CERT_FILE=pub.cer 进行构建。

有几个构建选项,以及几种自定义构建的方式,详见 BUILDING。

请参阅测试计划,如有任何失败,请提交工单!

联系方式

如果因安全事件或漏洞需要联系开发人员,请发送邮件至 [email protected]。

下载工具