Skip to content

Latest commit

 

History

History
98 lines (68 loc) · 2.85 KB

File metadata and controls

98 lines (68 loc) · 2.85 KB

frida-luma-zh

对frida/luma官方仓库进行的翻译工作,目前仅支持简体中文

Luma 汉化补丁 v5.1

简介

为 Luma(Swift + GTK4 的 Frida 动态分析 GUI 工具)提供一键中文界面替换。

版本 条目 翻译率 状态
v2 191 - 废弃 -- 错误替换 .text 段, 程序打不开
v3 - - 未完成
v4 215 - 翻译太少, 大量菜单缺失
v5 282 240/240 可用 -- 短词前缀截断 bug, 部分 UI 遗漏
v5.1 288 当前最新 -- 修复前缀截断, 补全遗漏字符串

工作原理

安全性

脚本仅修改 PE 文件中的 .rdata / .data 段, 不碰 .text 段(代码段)。以下核心功能完全不受影响:

  • Frida 挂钩注入和脚本执行
  • 内存读写、反汇编
  • 进程附加/恢复/跟踪 (ITrace)
  • Hook 搜索和管理
  • CodeShare、Hookpack 导入导出
  • MCP 服务器配置
  • Agentic Mission 多步推理

修改的只是 GTK 控件渲染时读取的显示文本常量, 与程序逻辑完全隔离。

替换策略

SAFE (安全替换): 英文 >= 10 字节或足够独特的字符串。全量精确匹配, 不检查边界。

"Open Project..."     -> "打开项目..."
"Show Event Stream"   -> "显示事件流"
"Welcome to Luma"     -> "Luma 欢迎您"
...

GUARDED (受保护替换): 英文 < 10 字节或高频短词。需三重保护:

  1. PE 区段过滤 -- 仅在 .rdata / .data 范围内操作
  2. 边界检查 (前) -- 前面不能是字母/数字/下划线, 防止匹配 GtkNotebookMissionsView 等 Swift 类型名
  3. 边界检查 (后) -- 后面必须是 \0, 防止 Save 截断 Save changes to

字节约束

中文字符必须 <= 原始英文字符的 UTF-8 字节数, 不足部分用 \x00 填充。

"Save" (4B)   -> "存\0" (3B + 1 填充)
"Cancel" (6B) -> "取消" (6B)

使用方法

前置条件

  • Windows 系统
  • 已安装 Luma (默认路径 C:\Program Files\Luma)
  • 管理员权限 (写入 Program Files 需要)

运行补丁

以管理员身份打开 PowerShell, 执行:

python "C:\workbuddy\2026-08-05-16-11-35\patch_luma_v5.py"

输出

文件 说明
Luma.exe 原版, 不动
Luma.exe.original 首次运行时自动备份
Luma_zh.exe 汉化版主程序
桌面\Luma (汉化版).lnk 快捷方式

回滚

直接运行 Luma.exe (原版) 即可, 两个版本共存不冲突。

已知限制

  • 运行时动态拼接的字符串无法翻译 -- 例如 New ProjectOpen Recent 由 Swift 字符串插值生成, 二进制中无完整字面量
  • 字节过长截断 -- 约 19 条翻译因中文超过英文长度而改用更短措辞

文件清单

patch_luma_v5.py    # 补丁脚本
README.md           # 本文件