吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 958|回复: 4
上一主题 下一主题
收起左侧

[IDA Plugin] 一键汉化 macOS 上所有 IDA Professional 9.x 版本(基于 Qt 6.x)

[复制链接]
跳转到指定楼层
楼主
JustinChan 发表于 2026-7-11 22:53 回帖奖励
本帖最后由 JustinChan 于 2026-7-11 22:57 编辑

[macOS] IDA Pro 9.x 通用汉化工具 —— 多版本自动检测,一键安装卸载,支持 macOS 15+




一、由来

事情的起点是 @RedFree 的首发帖,他花了很大功夫研究 IDA macOS 版的 Qt 界面汉化:最初尝试重编译 Qt 6.8.2 + QTranslator,走不通之后转而写了一个 Hook Qt 控件 setter 的 dylib,用 insert_dylib 注入到 IDA 二进制里。方案非常巧妙,翻译表也很完整。后来他又适配了 9.3 版本:全平台补丁帖。

之后 @m ra cry 把流程打包成了一个双击即用的 .app,省去了敲命令的麻烦。

但两个问题一直没解决:

  • m ra cry 的 App 硬编码了 IDA 9.2 路径,9.3/9.4 直接报错用不了
  • insert_dylib 方案在 macOS 15 上会触发代码签名检查 —— 系统直接 SIGKILL(CODESIGNING Invalid Page),无法启动


于是我把整个方案做了一次通用化改造,解决了这两个问题,同时保持开源。

GitHub 仓库:https://github.com/yizhengchan/ida-zh-mac




二、和之前版本的区别

对比项RedFree 原版m ra cry 版本版
注入方式insert_dylib 修改二进制insert_dylib(自动化)DYLD_INSERT_LIBRARIES(不修改二进制)
macOS 15× SIGKILL× SIGKILL 正常
版本检测需手动指定仅 9.2自动扫描 /Applications 下所有 9.x
多版本共存手动不支持支持(可同时汉化 9.2、9.4 等)
安装方式命令行 3 步双击 .app双击 .app / 命令行均可
卸载手动恢复一键一键,完全恢复原始状态
开源是(MIT)





三、功能特点

  • 自动检测多版本:扫描 /Applications 下的 IDA Professional*.app,列出所有版本及安装状态,支持多个版本同时汉化
  • DYLD_INSERT_LIBRARIES 注入:创建 bash wrapper 设置环境变量后调用原始二进制,不修改 Mach-O。卸载即恢复,零残留
  • macOS 15 签名兼容:绕过 insert_dylib 导致的代码签名失效问题,亲测 macOS 15.5 通过
  • 双击 App + 命令行双模式:小白双击 .app 选版本即可,脚本党用 Python CLI
  • 翻译表可扩充:3059+ 条 JSON 格式,欢迎 PR 补充 9.4 新增 UI 字符串
  • Qt 版本自动校验:安装前通过 otool -L 检测 Qt 主版本号,Qt 5.x 直接拦截避免装坏





四、使用方法

方法一:双击 App

  • 从 GitHub Releases 下载 IDA汉化工具_v1.0.0.dmg
  • 双击打开,自动显示已安装的 IDA 列表及当前状态
  • 选择版本,点击"安装汉化"或"卸载汉化"
  • 等待完成


方法二:命令行
# 扫描所有已安装的 IDA
python3 ida_zh_installer.py --list

# 交互式安装(终端选择版本)
python3 ida_zh_installer.py --install

# 指定路径安装/卸载
python3 ida_zh_installer.py --install --path "/Applications/IDA Professional 9.4.app"
python3 ida_zh_installer.py --uninstall --path "/Applications/IDA Professional 9.4.app"
注意事项:
  • 安装后首次启动 IDA 会稍慢几秒(系统验证 ad-hoc 签名),正常现象,之后恢复正常速度
  • 如果双击 App 提示"已损坏",终端执行:
    sudo xattr -rd com.apple.quarantine /path/to/IDA汉化工具.app
  • 建议安装前关闭 IDA





五、技术原理简介

为什么不用 insert_dylib?

insert_dylib 通过修改 Mach-O 的 Load Commands,插入一条 LC_LOAD_DYLIB 让 dyld 加载我们的 dylib。这在 macOS 14 及以下没问题,但 macOS 15 强化了代码签名检查 —— 修改后的二进制页面签名校验失败,内核直接发 SIGKILL(日志里能看到 CODESIGNING Invalid Page),无法绕过。

DYLD_INSERT_LIBRARIES 怎么做的?

这是一个 macOS 原生支持的环境变量,dyld 在加载程序时会先加载该变量指定的 dylib。关键是 —— 它不修改目标二进制本身,所以代码签名完好无损。

具体做法:把原始 ida 重命名为 ida_orig,在原位置放一个 bash wrapper:
#!/bin/bash
APP_DIR="$$$$(cd "$$$$(dirname "$$$$0")" && pwd)"
export DYLD_INSERT_LIBRARIES="$$$$APP_DIR/libIdaTranslateLib.dylib"
exec "$$$$APP_DIR/ida_orig" "$$$$@"
dylib 加载后 Hook Qt 控件的 setter 方法(QLabel::setText、QAction::setText 等共 12 种),对照 JSON 翻译表替换文本。卸载时把 ida_orig 改回来,删掉 dylib 和 JSON 即可。

为什么 9.2 ~ 9.4+ 通用?

用 otool -L 对比发现,目前为止所有 IDA 9.x 版本都链接 Qt 6.8.2,ABI 完全一致。只要 Hex-Rays 不升级 Qt 大版本,这个 dylib 就能一直用。
# 查看你的 IDA 用的 Qt 版本
otool -L "/Applications/IDA Professional 9.4.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore" | grep "current version"
# 输出: current version 6.8.2



六、兼容性

IDA Pro 9.x(9.2 / 9.3 / 9.4)
IDA Pro 8.x 及更早(Qt 5.x)×
Apple Silicon (arm64)
macOS 11 ~ 15
Windows / Linux×





七、致谢

本项目的核心 dylib 和翻译表来自两位坛友的工作,我做的只是通用化适配和 macOS 15 兼容:

贡献者工作
@RedFree原创整套 Qt Hook 方案:dylib 编写 + insert_dylib 注入 + 3059 条翻译表,从零到一打通 Mac 版 IDA 汉化
@m ra cry首次将命令行流程封装为双击 .app,证明了一键安装是可行的
Justin Chan(本贴)通用化改造:去硬编码改为自动扫描多版本、insert_dylib → DYLD_INSERT_LIBRARIES 以适配 macOS 15、重写 Python 安装器 + AppleScript 界面、开源发布





八、补充翻译表

当前翻译表基于 9.2,9.4 新增的部分 UI 字符串可能仍为英文。如果你发现了未翻译的文本,欢迎补充 assets/ida_translations.json 并提交 PR,或者直接在本帖回复贴出"英文原文 → 中文翻译"的对应关系,我会在下一版合并进去。

格式:
{
  "原英文文本": "对应中文翻译",
  "File": "文件",
  ...
}



九、下载

  • 方式一(推荐):直接下载本贴附件 IDA汉化工具_v1.0.0.dmg,双击使用
  • 方式二:GitHub Releases 页面 https://github.com/yizhengchan/ida-zh-mac/releases/latest





十、免责声明

  • 本工具仅供学习和研究用途,不得用于任何非法行为。不得用做商业用途。商业使用请购买官方正版。
  • 使用本工具时,使用者应自行承担风险,开发者不对因使用者使用本工具而造成的任何损失负责。
  • 若侵犯他人权益或违反相关法律法规,请停止使用并立即删除本工具,责任由使用者自行承担,开发者不承担任何责任。请在合法合规的前提下使用本工具。
  • 本工具完全免费,从未也不应通过任何渠道进行收费分发。





第一次在 52 发帖,如有格式或表述上的问题请多包涵。欢迎反馈 bug 和未翻译的字符串!

IDA汉化工具.app.zip

127.51 KB, 下载次数: 11, 下载积分: 吾爱币 -1 CB

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
GuSheng1996 发表于 2026-7-13 11:32
上次用的汉化, 打开ida时候窗口会被重置,不知道这个会不会有这个问题。
3#
 楼主| JustinChan 发表于 2026-7-15 20:30 |楼主
GuSheng1996 发表于 2026-7-13 11:32
上次用的汉化, 打开ida时候窗口会被重置,不知道这个会不会有这个问题。

什么意思?
4#
 楼主| JustinChan 发表于 2026-7-15 21:30 |楼主
GuSheng1996 发表于 2026-7-13 11:32
上次用的汉化, 打开ida时候窗口会被重置,不知道这个会不会有这个问题。

我自己用的这个app汉化ida pro 9.4是没有问题的,9.3,9.2之类的也都是一样的框架所以也是可以的
5#
tonc 发表于 2026-8-27 08:08
感谢分享,之前用IDA看逆向的英文界面确实头疼,这就去试试,不过Qt6的汉化兼容性会不会有bug啊?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-28 11:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表