
FufuLauncher信任体系完整指南代码签名、信任清单与三层CA证书如何验证Mod安全性【免费下载链接】FufuLauncherA third-party launcher for Genshin Impact that supports game injection, automatic check-in, and some useful small features.项目地址: https://gitcode.com/gh_mirrors/fu/FufuLauncherFufuLauncher 是一款功能丰富的原神第三方启动器支持插件注入、自动签到等实用功能。为了让用户在加载 Mod 插件 DLL 时更安心它内置了一套完整的 Mod 信任体系通过代码签名验证插件真伪、通过信任清单trust-manifest锁死证书指纹、再借助三层 CA 证书链完成签发溯源最终由 ModTrustGate 在注入前做出放行或拦截的裁决。本文将带你快速看懂这套信任机制的运作原理以及如何在设置中安装证书、切换严格模式。为什么 Mod 插件需要一套信任体系FufuLauncher 的核心玩法之一是把 Lua 插件编译成的 DLL 注入到游戏进程中。DLL 一旦进入游戏内存就拥有与游戏同等的权限——如果加载了被篡改或来源不明的文件风险不言而喻。为了解决这个 DLL 到底是谁签的、文件有没有被动过的问题FufuLauncher 没有把信任交给操作系统里可能被人篡改的证书仓库而是自己搭建了一个平台级代码签名体系项目内置一个自有的CA 证书体系根 CA → 签发 CA → 叶子签名证书只有平台签发的 DLL 才被视为可信用信任清单把所有证书的 SHA-256 指纹、吊销名单固化成一份带签名的 JSON防止中间人偷换证书在 DLL 注入前由 ModTrustGate.cs 执行最终裁决严格模式下直接拦截未通过验证的插件。相关模块集中在FufuLauncher/Services/CodeSigning/目录信任包资源则放在FufuLauncher/Assets/Trust/目录。三层CA证书一条从根到签名的信任链打开 trust-manifest.json 可以看到整套证书结构POLICY.txt 则以纯文本形式公示了每层证书的指纹与有效期层级文件角色有效期第一层ModsRootCA.cer根 CA自签名FufuLauncher Code Signing Root CA至 2051 年第二层ModsIntermediateCA.cer中间签发 CA由根 CA 签发至 2031 年第三层各签名者叶子证书真正用来给 Mod DLL 做 Authenticode 签名最长 1185 天约 3.25 年三层结构的意义在于职责分离与快速失效根 CA 长期稳定但绝不上线中间 CA 可以独立轮换叶子证书有效期短一旦某个签名者出问题吊销它一条记录即可而不用动摇整个信任体系。除了三层 CA信任包里还有一张专门的清单签名者证书ModsManifestSigner.cer它只负责给信任清单本身签名防止清单被替换后验证书的人先被掉包。信任清单给CA体系系上安全绳光有 CA 还不够——攻击者理论上可以伪造一套长得像的证书包。因此 FufuLauncher 引入了信任清单机制实现见 TrustPackage.cs指纹固化清单中写死了根 CA、中间 CA、清单签名者的 SHA-256 指纹。加载时逐一比对任何一张证书被换掉都会立刻失败根证书钉扎pinning应用安装目录里内置了一份金标准根证书 ModsRootCA.cerCodeSigningTrustService.cs 加载任何信任包包括从网络同步来的时都会要求其根证书指纹与内置副本完全一致不一致直接拒绝——这意味着网络端永远无法把自己的一套 CA 强推给你清单自身带签名trust-manifest.json.sig 是清单签名者用 RSA-SHA256 对清单文件签出的签名信封加载器会校验签名、签名者指纹、清单哈希三位一体缺一不可未签名的清单会被直接拒载吊销名单清单内置revokedSerialNumbers数组被吊销的叶子证书序列号会在验证阶段被点名拦截。一次DLL验证ModTrustGate 是怎么裁决的当你在 FufuLauncher 中点击启动、准备把插件 DLL 注入游戏时GameLauncherService.cs 会先调用信任闸门而真正的验证逻辑在 CodeSignatureVerifier.cs 中流程大致是读签名 → 验内容完整性 → 查白名单 → 建证书链 → 查吊销 → 查策略合规 → 裁决具体地读签名从 DLL 中读出发起的 Authenticode 签名证书读不到就判定为Unsigned未签名验完整性调用 Windows 的 WinVerifyTrust 比对签名与文件内容哈希不一致即Tampered被篡改——改过一个字节都过不了建链验证用自定义根信任模式CustomRootTrust把证书链锚定到平台根 CA而不是系统证书库。也就是说系统里装了谁不影响判定只看是不是平台 CA 签的查吊销序列号在清单吊销名单内 →Revoked策略合规由 CodeSigningPolicy.cs 逐条检查叶子证书——必须且只能带代码签名 EKU1.3.6.1.5.5.7.3.3、不得是 CA、必须有 digitalSignature 权限、有效期不得超过 1185 天。EV 证书、服务器认证证书等越权证书一律PolicyViolation最终裁决所有验证通过才得到TrustedPlatform平台信任。验证结果汇总为 8 种状态一目了然状态含义是否放行TrustedPlatform平台 CA 签发且合规✅TrustedAllowlisted命中清单附加白名单✅Unsigned未签名❌Tampered签名与内容不符疑似被篡改❌Revoked证书已被平台吊销❌PolicyViolation证书违反平台策略如越权 EKU❌Untrusted证书链无法到达平台根 CA❌PackageUnavailable信任包不可用取决于模式三种信任模式Off / Warn / EnforceModTrustGate.cs 把策略持久化为trust-policy.json文件提供三档强度Off默认不做限制正常加载Warn仅提示照常加载但非信任文件会弹出警告通知Enforce严格拦截只有TrustedPlatform/TrustedAllowlisted的 DLL 才允许注入被拦截时启动器会取消注入并恢复注册表快照同时推送 8 秒的告警通知。严格模式下若信任包本身不可用会采取宁缺毋滥策略——拒绝加载任何未验证文件。动手体验在设置中安装证书与同步信任包普通用户不需要碰证书文件设置页已经做好了一键操作界面逻辑见 SettingsPage.ModTrust.cs查看状态设置页会显示信任包是否验证通过、证书安装在哪个范围当前用户 / 本机、吊销数量等信息一键安装证书点击安装平台证书后TrustInstallFlow.cs 会先弹出核对对话框展示根证书与中间证书的颁发者、SHA-256 指纹、有效期确认无误才执行安装。装到系统证书库的作用是让 Windows 资源管理器等外部工具也能识别平台签名避免未知发布者弹窗自动提权安装到本机范围需要管理员权限应用会自动以提权进程--trust-cert参数重试你只需在 UAC 弹窗点是同步信任包点击同步按钮后应用会从官方证书同步端点拉取最新的信任清单与吊销名单逐文件做 SHA-256 校验并强制要求根证书与内置钉扎指纹一致全部通过才原子替换本地Trust目录。这套机制保证了吊销名单能安全地更新到你手上。小结FufuLauncher 的 Mod 信任体系用三条防线把加载插件这件高风险操作变得可控三层 CA 证书链——根 CA、签发 CA、叶子签名证书各司其职吊销影响面最小化签名信任清单 根证书钉扎——证书指纹固化、清单自带签名、网络同步无法强推假根防中间人偷天换日ModTrustGate 加载闸门——8 种状态精细裁决Enforce 模式下未经验证的 DLL 一个字节都进不了游戏。对插件作者而言想要让自己的 Mod 通过严格模式就需要向平台申请代码签名证书对普通用户而言只需在设置里点两次按钮就能获得一套出厂即验证的插件加载体验。【免费下载链接】FufuLauncherA third-party launcher for Genshin Impact that supports game injection, automatic check-in, and some useful small features.项目地址: https://gitcode.com/gh_mirrors/fu/FufuLauncher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考