neocanable/garlic
GitHub: neocanable/garlic
一款用 C 语言编写的超高速开源 APK/Java 反编译器,支持多线程并发,能从 APK、DEX、JAR、CLASS 等文件快速生成 Java 源代码。
Stars: 504 | Forks: 51
# Garlic 反编译器
[](http://www.apache.org/licenses/LICENSE-2.0.html)
English | [中文](https://github.com/neocanable/garlic/blob/main/README.CN.md)
世界上最快的 apk (android)/java 开源反编译器
使用 C 语言编写的 Android/Java 反编译器
用于从 class/jar/dex/apk 文件生成 java 源代码的工具
### 功能
* 反编译 apk 文件
* 反编译 dex 文件
* 反编译 class 文件
* 反编译 jar 文件
* 反编译 war 文件
### 安装
* macos/linux
```
brew install neocanable/decompiler/garlic
```
### 构建
##### 1. 在 linux/macOS 上构建
**要求**: cmake >= **3.26**
```
git clone https://github.com/neocanable/garlic.git
cd garlic
cmake -B build
cmake --build build
./build/garlic
```
##### 2. 在 Windows 上构建
请查看 [Windows 构建文档](https://github.com/neocanable/garlic/blob/main/docs/build-garlic-on-windows.md)
### 使用方法
* 反编译 apk
garlic /path/to/android.apk
garlic /path/to/android.apk -o /path/to/save # -o 选项是源代码输出路径
garlic /path/to/android.apk -t 5 # -t 选项是线程数,默认为 4
* 反编译 .dex 文件
garlic /path/to/classes.dex
garlic /path/to/classes.dex -o /path/to/save # -o 选项是源代码输出路径
garlic /path/to/classes.dex -t 5 # -t 选项是线程数,默认为 4
* 反编译 .class 文件
反编译 .class 文件,默认输出到 **stdout**
garlic /path/to/jvm.class
* 反编译 jar 文件
garlic /path/to/file.jar
garlic /path/to/file.jar -o /path/to/save # -o 选项是源代码输出路径
garlic /path/to/file.jar -t 5 # -t 选项是线程数,默认为 4
默认输出目录为与该文件同级的目录
* javap
类似于 javap,速度更快,禁用了 LineNumber 和 StackMapTable 属性
garlic /path/to/jvm.class -p
* dexdump
garlic /path/to/dalvik.dex -p
* 搜索字符串
garlic ~/demo/demo.apk -f "windowInfo" # 在 demo.apk 中搜索 "windowInfo"
garlic ~/demo/demo.jar -f "[W|w]indow" # 在 demo.jar 中搜索正则表达式 [W|w]indow
garlic ~/demo/demo.dex -f "info" # 在 demo.dex 中搜索包含字符串 "info" 的内容
### 调试
在 **src/jvm.c** 中,将 main 函数修改为:
```
int main(int argc, char **argv)
{
jar_file_analyse(path_of_jar, out_of_jar, 1);
return 0;
}
```
如果线程数小于 2,将禁用多线程。
### 速度
反编译最新版 (2025-06-16) 的 wechat.apk,其大小为 200M+,包含 19w+ 个类,仅需 12 秒
```
garlic ~/wechat/wechat.apk
[Garlic] APK file analysis
File : ~/wechat/wechat.apk
Save to : ~/wechat/wechat_apk
Thread : 4
Progress : 192538 (192538)
[Done]
```

### 定制化
**Email:** neocanable#gmail.com (将 # 替换为 @)
**wechat:** neocanable

*基于 Apache 2.0 许可证授权*
标签:APK反编译, Bash脚本, CLASS反编译, Dalvik反编译, DEX反编译, JAR反编译, Java反编译, TLS抓取, WAR反编译, 云资产清单, 代码生成, 安卓安全, 安卓逆向, 客户端加密, 开源反编译器, 文件解析, 渗透测试工具, 源码恢复, 目录枚举, 移动安全, 软件安全, 逆向工程