一、强制签名
正式版客户端启用插件强制签名校验。第三方开发者没有也不需要签名私钥——官方私钥只保存在服务端。
- 未经工坊签名的 DLL 在导入 / 扫描时一律被拒绝(
SignatureInvalid); - 这是强制安全策略,不是 Bug。
二、开发调试
在本机按编译规范编译出 YourPlugin.dll 后:
- 本地未签名 DLL 直接放入
plugins/会被拒载; - 联调请经插件工坊测试通道签名后下发;
- 或将提供「开发者模式」开关(
plugins/signature_enforced),在受控开发机上允许加载未签名插件——在该开关发布前,不要假设「把 DLL 丢进 plugins 目录就能加载」。
三、正式分发
- 将插件打包为 ZIP,包内恰好一个
.dll; - 提交到 7AA7 官方插件工坊;
- 服务端解压校验、计算 SHA256、用官方私钥做 RSA-PSS 签名并登记入库;
- 用户从工坊下载时,客户端走官方可信链路验签加载(无需插件内置签名)。
四、打包要求
- 插件对外仅分发 DLL:不要附带
Qt6*.dll、MinGW 运行库(libgcc_s_seh-1/libstdc++-6/libwinpthread-1)或任何第三方 DLL; - 仅支持 x64 客户端;商店 ARM64 客户端不加载任何第三方插件;
- 可选附带
README.md说明用途、最低 7AA7 版本与使用方法。