亮点与主要变更
本版本由维护者 @javaht 与社区贡献者 @happycooltony 共同完成,带来 Windows Cowork 原生签名修复(彻底解决 Issue #146 RPC pipe closed)、Claude 4.23118 新增前端词条补齐与 dynamic 官方漏译修复,以及 CI 跨平台兼容性优化。
1. 原生集成 CoworkVMService 签名校验修复,解决 Cowork RPC 报错(维护者 @javaht 提交,彻底解决 #146)
问题背景:
Windows 端汉化需改写 app.asar / ion-dist.asar 并同步 Claude.exe 内嵌的 ASAR 完整性哈希,导致 Claude.exe 的官方 Authenticode 数字签名失效。后台服务 cowork-svc.exe 在客户端连接具名管道时会严格校验客户端与自身的签名及包身份,失败则拒绝连接,导致 Cowork 工作区常驻报错 RPC pipe closed。
技术实现与安全考量:
- 双架构 Go 符号表解析:原生解析
cowork-svc.exe的 Go pclntab 符号表(Find-GoPclntabOffset/Resolve-GoFuncEntry),同时支持 ARM64 与 x64 两种架构; - 修正偏移语义:修正
functab的entryoff语义(相对textStart偏移,改为与.text的VirtualSize比较,消除了前 0x1000 字节函数无法匹配并被静默跳过的问题); - 前置严格语义校验:定位
main.isWindowsService调用点,验证紧随其后确实有(*Server).InitSignatureVerification调用才执行改写(反汇编证实isWindowsService的返回值正是该调用的第 2 个参数,即“是否启用客户端签名校验”的开关),杜绝盲目改写误伤二进制; - 极小改动量与幂等性:
- ARM64:定位 callSite,写入
00 00 80 52(mov w0, #0),仅改动 4 字节; - x64:定位 callSite,写入
31 C0 90 90 90(xor eax, eax+nop*3),仅改动 5 字节; - 二进制改写逻辑具备幂等性,重复运行不重复改写;
- ARM64:定位 callSite,写入
- 进程与服务生命周期管理:新增
Stop-CoworkVMService与跨平台安全探测Test-ServiceControlAvailable,在修改与卸载前安全停止服务与强杀进程,彻底避免文件占用; - 零侵入自动还原:纳入已有的
Backup-ModifiedFile备份机制,在卸载时自动还原官方未修改的原版cowork-svc.exe,数字签名完全恢复; - 测试覆盖:新增
tests/Test-CoworkPatch.ps1,构造 ARM64 / x64 合成 Go PE 二进制,完整覆盖符号表解析、指令改写、幂等性与备份验证,已接入 Windows 与 Linux CI 工作流。
2. 补齐 Claude 4.23118 新增词条 16 条,并修复 dynamic 词表漏译(合入 #235 by @happycooltony)
- 新增 16 条前端词条:针对 4.23118「配置第三方推理」页面补齐用户实际可见的 16 条新增英文:
- 服务端自动模式检查(Server-side Auto mode checks)及其说明;
- 出站主机说明(Hosts reachable from Chat, Cowork and Code's sandbox…);
- 部署模式(Deployment mode)及其说明与三个选项(让用户自行选择 / 仅第三方 / 仅 Claude.ai);
- 禁用本地代码会话说明;
- 启用导入 / 启用导出说明;
- 诊断分析说明(崩溃与性能报告、产品使用情况分析、非必要服务);
- 状态栏按操作系统设置程序的说明;
- 修复 2 处官方 dynamic 词表漏译:解决官方
dynamic/en-US.json存在但zh-CN缺失导致的界面回退英文:XPiJIxyAVt(“Recommended”)→ 推荐(模型选择器中“高”旁边的徽标);gRa9I5BFc2→ Opus 比其他模型更快消耗用量额度;
- 多语言术语规范:全角双引号统一为
“”,港台繁体(zh-HK/zh-TW)正确保持区域词汇差异(如“用户/使用者”、“数据/資料”、“设置/設定”、“文件夹/資料夾”、“程序/程式”)。
3. CI 与跨平台兼容性改进(维护者 @javaht 提交)
- 解决 Linux runner(PowerShell 7)缺少 Windows 服务控制命令抛出
CommandNotFoundException导致 CI 失败的问题; - 修复
Test-DesktopShell.ps1缺失 UTF-8 BOM 导致 PowerShell 5.1 按 ANSI 解码出现中文断言字面量语法错误的问题。
贡献者 (Contributors)
特别感谢为本版本做出贡献的开发者:
- @javaht(维护者):Windows Cowork 原生签名校验修复(彻底解决 #146)、服务控制与 CI 跨平台兼容性改进;
- @happycooltony:补齐 Claude 4.23118 前端词条 16 条与修复 dynamic 官方漏译 2 条(#235)。
验证与测试
- Python 单元回归测试 26 项全部 PASS;
- 包含
Test-CoworkPatch.ps1在内的全部 PowerShell 回归测试在 Windows PowerShell 5.1 与 Linux PowerShell 7 均通过; git diff --check格式检查无异常;- 4.23118 新增词条经官方
ion-dist.asar逐条对齐核验无误。