工具

Garlic APK/Java 反编译器

用 C 语言编写的 Java 与 Android 反编译器,可多线程地从 class、JAR、WAR、DEX 和 APK 文件还原 Java 源码;还能输出类似 javap 或 dexdump 的类信息,将 APK 和 DEX 转换为 smali,用正则表达式搜索其中的字符串,并为 DEX 和 APK 生成调用图。运行 garlic -m 会启动基于 stdio 的 MCP 服务器,提供七个工具,可反编译文件、输出类信息、构建调用图、将调用图导入 DuckDB 以便用 SQL 查询,以及读取提取出的 AndroidManifest.xml。README 称反编译一个超过 200 MB、约 19 万个类的 APK 只需 12 秒。

使用条件与局限

  • 审阅时 garlic 的最新版本为 v1.8-release,发布于 2026-08-17,提供适用于 Linux(x64、i686、aarch64)、macOS(x64、aarch64)和 Windows(win32、win64)的独立二进制;所审阅的 main 提交比该版本多 34 个提交。之后的 v1.8-release-thyme 标签提供的则是 Thyme 的安装包,这是仓库主页介绍的另一款付费逆向工程 IDE。
  • 从源码构建时,Linux 和 macOS 使用 CMake 3.26+,主机构建和交叉编译可使用 Zig 0.16.0+,Windows 使用 MinGW-w64,arm64-v8a 版本使用 Android NDK(r21 及以上,已在 r28 上验证)。MCP 服务器的 analyze、cg_import 和 cg_query 工具需要 PATH 中有 DuckDB 命令行工具。输入为使用者自己的 class、JAR、WAR、DEX 或 APK 文件。
  • -n 原生库分析功能(README 列出的内容为 AArch64 ELF 文件的控制流、IR、导入、导出、字符串和调用图)来自 librosemarylib:这是一个闭源库,以预编译的 librosemarylib.so、.dylib 和 .dll 文件形式按各桌面平台提交在 libs/ 下,并在构建时嵌入 garlic 二进制。缺少该库时以及在 Android 上,-n 功能被禁用。garlic 的 -l 选项用于为该库安装购买的许可证密钥,所审源码未说明哪些功能需要许可证。
  • 仓库的 LICENSE 为 Apache-2.0;librosemarylib 没有单独公布条款或源码。README 未报告对反编译结果正确性的评估,发布说明列出了针对特定应用的反编译错误和崩溃修复。未确立与 REA 的关联,本次审阅未构建或运行任何内容。

关于此条目

类型
工具
类别
Android 工具
关联
基础工具
目标
应用

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · neocanable/garlic · 修订 700a7f4
  2. MCP-SERVER.md GitHub · neocanable/garlic · 修订 700a7f4
  3. src/garlic.c#L133-L144 GitHub · neocanable/garlic · 修订 700a7f4
  4. src/garlic.c#L320-L343 GitHub · neocanable/garlic · 修订 700a7f4
  5. CMakeLists.txt#L135-L196 GitHub · neocanable/garlic · 修订 700a7f4
  6. libs GitHub · neocanable/garlic · 修订 700a7f4
  7. docs/garlic-on-windows.md GitHub · neocanable/garlic · 修订 700a7f4
  8. LICENSE GitHub · neocanable/garlic · 修订 700a7f4
  9. https://github.com/neocanable/garlic/releases/tag/v1.8-release
  10. https://github.com/neocanable/garlic/releases/tag/v1.8-release-thyme

同分区更多条目:应用

应用分区全部 103 项资源