imnotsureyi-sys/patchsmith

GitHub: imnotsureyi-sys/patchsmith

Patchsmith 是一款将老旧视觉小说的二进制本地化修补转化为可复现、可审计 pipeline 的工具,通过精确寻址和哈希锁定实现安全的翻译文本替换。

Stars: 0 | Forks: 0

# Patchsmith **适用于老旧视觉小说的可审计二进制本地化工具。** ![Patchsmith 技术工作台](https://static.pigsec.cn/wp-content/uploads/repos/cas/3e/3e30e7536ba6ace61f09effc9abc53725c12157dde9551cded4e50d339b4c903.png) Patchsmith 将脆弱的、特定于格式的修补工作转化为可复现的 pipeline: 1. 在不修改未知资源的情况下进行探测; 2. 提取可寻址的文本记录; 3. 仅将更改应用到明确授权的字段或字节范围; 4. 验证翻译结构和控制码;以及 5. 发布受 hash 锁定的字节补丁,而非受版权保护的游戏数据。 本代码库不包含任何商业游戏文件、对话转储、截图、字体、音乐或专有密钥。所有内置的 fixture 均由合成数据生成。 ## 一行命令演示 环境要求:Python 3.10 或更高版本。无需任何第三方包。 ``` python -m patchsmith demo --output demo-output ``` 该演示会生成合成的 FPD、EGPACK 和 RIO/CRsa 文件,然后执行一次完整的审计运行: - 在不尝试提取的情况下识别 FPD 头部; - 解析多语言 EGPACK 表; - 修补一个精确的 `id / slot / expected_text` 目标; - 证明非目标语言槽位未发生改变; - 解密并重新加密合成的 CRsa payload; - 在稳定偏移量处修补一个固定容量的 UTF-16LE 槽位; - 创建并重新应用受 SHA-256 锁定的字节补丁;以及 - 运行翻译控制和稳定 ID 的 QA。 运行测试套件: ``` python -m unittest discover -s tests -v python -m compileall -q patchsmith tests ``` ## 三大技术支柱 ### 1. FPD 和 EGPACK FPD 被视为外部容器并以只读方式进行探测。Patchsmith 会报告 magic、版本、文件数和数据偏移量,而不嵌入特定于作品的密钥。 EGPACK 实现通过 CRC32 字段标识来解析经过验证的 11 字段布局。只有当以下所有条件均匹配时,更改才会被接受: ``` relative_path + text_id + language_slot + expected_text ``` 重建后,文件将被重新解析。陈旧的源文本、重复的目标、未知槽位、格式错误的 UTF-8、不支持的布局以及手动换行符插入均会触发安全失败。 ### 2. RIO 和 CRsa Patchsmith 会定位可验证的 `CRsa` 加密块,验证其成对的大小字段和逐块 checksum,并暴露稳定的坐标: ``` filename + block_offset + payload_offset ``` UTF-16LE 替换是固定容量且受偏移量锁定的。加密块必须能够往返还原至预期大小,并且最终的可分发文件可以缩减为带有基础和输出 SHA-256 hash 的已更改字节范围。 ### 3. 翻译溯源和 QA 二进制正确性只是本地化正确性的一半。CSV 审计器将源文本、目标文本、稳定 ID 和控制序列视为独立的证据。它可以检测: - 缺失或重复的稳定 ID; - 空的源文本或目标文本; - 发生改变的控制码序列;以及 - 应该交由引擎处理的换行 token。 这支持分阶段的工作流:术语基线、翻译、独立审查、技术 QA,只有在这些完成后才进行二进制回写。 ## CLI ``` patchsmith probe FILE [FILE ...] patchsmith demo [--output DIR] patchsmith audit translation_rows.csv patchsmith patch-create BASE OUTPUT PATCH.json patchsmith patch-apply BASE PATCH.json OUTPUT ``` 示例审计输入可在 `examples/translation_rows.csv` 中找到。 ## 安全模型 - 对于未知格式,默认采用只读探测。 - 原始文件绝不会被演示或库 API 覆盖。 - 每次写入都需要确切的地址和预期的源值。 - 字节补丁会拒绝基础 SHA-256 或文件大小不匹配的情况。 - 不使用任何模糊匹配或回退语言槽位。 - 运行测试或评估该项目不需要任何商业资源。 ## OpenAI Build Week Patchsmith 是一个更长久的本地化工程项目的净室开发、可评审开发者工具版本。先前存在的项目确立了格式研究和真实世界的失败案例。在 Build Week 提交期间,该项目通过新的作品 pipeline、自动化资产测试、分离的翻译/审查/技术标准以及这个独立的合成演示得到了有意义的扩展。 ### Codex 和 GPT-5.6 的使用方式 运行 GPT-5.6 的 Codex 会话检查了多工作树源项目,将可重用的格式原语与特定于作品的数据分离开来,设计了公共/私有边界,并实现了这个独立的 CLI。GPT-5.6 还帮助构建了合成的二进制 fixture,推导加密块的往返过程和 fail-closed 回写规则,添加了成功和失败测试,并准备了可复现的评审工作流。先前存在的格式研究在下文中单独标出;不作为 Build Week 的工作声索。 有关带日期的边界请参阅 [Build Week 溯源](docs/BUILD_WEEK_PROVENANCE.md),有关两分钟的评估路径请参阅 [评审指南](docs/JUDGE_GUIDE.md)。 系统设计记录在[架构](docs/ARCHITECTURE.md)中。 ## 范围和限制 - 本公开版本中的 FPD 支持特意设为仅限头部的安全探测;加密索引提取需要独立授权的特定于作品的材料。 - RIO/CRsa 布局因引擎和平台版本而异。只有在解密、大小和 checksum 全部成功时,检测到的 `CRsa` 标记才会被报告为已验证。 - Patchsmith 是保存和互操作性工具。它不会绕过所有权检查,也不分发源资产。 ## 许可证 本代码库中的原始源代码和文档采用 MIT 许可证授权。第三方游戏和格式仍归其各自所有者所有。
标签:Python, 二进制修补, 文档结构分析, 无后门, 本地化工具, 游戏模组, 视觉小说, 逆向工具