百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

shim

> 编程语言
开源

UEFI 扩展加载程序

1.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

UEFI 扩展加载程序

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

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

当安装此协议时,即使嵌套内核未签名,也可以加载签名的 UKI,因为在加载和验证 UKI 之后,Shim 会构建包含在 UKI 中的所有部分的内部允许列表。当从这些部分中加载图像时,它会根据拒绝列表(在本文撰写时为 DBX/MOKX/SBAT)进行验证,但不会根据允许列表(DB/MOK 哈希/签名)进行检查,因为外部图像已经进行了验证,因此内部图像被这些签名或哈希所覆盖。此外,内部图像不会在 TPM 中进行测量,以避免重复测量。

在具有启用 TPM 晶片且由系统固件支持的系统中,shim 会将各种 PCR 扩展为加载目标的摘要。完整列表请参阅文件 README.tpm。

Unified Kernel Images

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言