APKLab/APKLab
GitHub: APKLab/APKLab
这是一个集成在 VS Code 中的 Android 逆向工程工作台,整合了 Apktool、Jadx 等工具,提供从 APK 解码、Smali 编辑、反编译到重签名安装的一站式体验。
Stars: 3786 | Forks: 319
APKLab
在您的 VS Code 中获得终极的 Android RE 体验。
APKLab 将最佳的开源工具(如 Apktool、smali-lsp、Jadx、uber-apk-signer、apk-mitm 等)无缝集成到优秀的 VS Code 中,让您专注于应用分析,无需离开 IDE 即可完成工作。
## 功能 - 解码/编辑/重建应用资源文件 - 反汇编/修改/重建 APK 到/从 Smali - 将 APK 反编译为 Java 源代码 - 通过 [**smali-lsp**](https://github.com/Surendrajat/smali-lsp) 提供卓越的 Smali 语言支持 —— 转到定义、查找引用、悬停提示、调用/类型层次结构、Code Lens、自动补全、诊断 - 利用完整的 IDE 功能在 VS Code 中高效分析与修改 - 重建后签名并安装 APK - 为任意 smali 方法生成 Frida hooks - 将 Frida gadget 注入 APK,并自动修补 main activity - 在项目目录中初始化 `git` 仓库以跟踪更改 - 应用 MITM 补丁以进行 HTTPS 检查 - 交互式恶意软件分析报告 - 支持 Apktool 风格的项目 (`apktool.yml`) - 支持 Apktool 3.0+ CLI 参数 - Android 资源框架管理 - 支持用户提供的密钥库用于 APK 签名 - 检查更新并自动安装所需工具 - 支持 Linux、Mac 和 WSL2 ## 系统要求 - **JDK 17+** - **quark-engine >=21.01.6**(可选 - 用于恶意软件分析) - **adb**(可选) ## 快速开始 #### 打开 APK 或 Apktool 项目 - 打开命令面板 (Ctrl+Shift+P) ➜ APKLab: Open an APK  - 或者直接打开现有的 Apktool 项目文件夹 #### 应用 MITM 补丁 - 在 `apktool.yml` 文件上或内部右键单击 ➜ APKLab: Prepare for HTTPS inspection  #### 重建并签名 APK - 在 `apktool.yml` 文件上或内部右键单击 ➜ APKLab: Rebuild the APK  #### 将 APK 安装到设备 - 在 `.apk` 文件上(位于 `dist` 目录中)右键单击 ➜ APKLab: Install the APK  #### 生成 Frida Hook - 在 `.smali` 文件中的 `.method` 内部右键单击 ➜ APKLab: Generate Frida Hook - Hook 将附加到项目根目录下的 `frida_hooks.ts` #### 注入 Frida Gadget - 在 `apktool.yml` 文件上或内部右键单击 ➜ APKLab: Inject Frida Gadget - 选择 gadget `.so` 文件和目标架构,main activity 将自动修补 #### 清理 ApkTool 框架目录 - 打开命令面板 (Ctrl+Shift+P) ➜ APKLab: Empty ApkTool Framework Dir ## 扩展设置依赖路径
- **`apklab.apktoolPath`**: `apktool.jar` 的完整路径。如果您想使用不同版本,请按如下方式修改: `"apklab.apktoolPath": "/home/oozer/downloads/apktool_2.4.1.jar"` - **`apklab.apkSignerPath`**: `uber-apk-signer.jar` 的完整路径。如果您想使用不同版本,请按如下方式修改: `"apklab.apkSignerPath": "/home/oozer/downloads/uber-apk-signer-1.1.0.jar"` - **`apklab.jadxDirPath`**: `jadx-x.y.z` 目录的完整路径。如果您想使用不同版本,请按如下方式修改: `"apklab.jadxDirPath": "/home/oozer/downloads/jadx-1.1.0"` - **`apklab.smaliLspPath`**: `smali-lsp.jar` 的完整路径。如果您想使用不同版本,请按如下方式修改: `"apklab.smaliLspPath": "/home/oozer/downloads/smali-lsp.jar"` - **`apklab.javaPath`**: Java 可执行文件的路径(默认:`java`)。如果 Java 不在您的 PATH 中,请更改它: `"apklab.javaPath": "/usr/lib/jvm/java-17/bin/java"`密钥库配置
- **`apklab.keystorePath`**: 在此处输入您的 **Java keystore**(`.jks` 或 `.keystore`)文件的绝对路径。 `"apklab.keystorePath": "/home/oozer/downloads/debug.keystore"` - **`apklab.keystorePassword`**: 在此处输入您的 keystore **密码**。 - **`apklab.keyAlias`**: 在此处输入 keystore 中所用密钥的 **别名**。 - **`apklab.keyPassword`**: 在此处输入 keystore 中所用密钥的 **密码**。其他配置
- **`apklab.initProjectDirAsGit`**: 将项目输出目录初始化为 **Git** 仓库。 - **`apklab.updateTools`**: APKLab 是否应检查工具(如 apklab、jadx 等)的更新并显示通知。 - **`smaliLsp.trace.server`**: 追踪 VS Code 与 Smali Language Server 之间的通信(`off`、`messages`、`verbose`)。
- [Feimaomii](https://github.com/Feimaomii) 设计了精美的 Logo
- [Aman Sharma](https://github.com/amsharma44) 的积极贡献
- [Niklas Higi](https://github.com/shroudedcode) 开发了 apk-mitm
- [Shaun Dang](https://github.com/pulorsok)、[JunWei Song](https://github.com/krnick) 和 [KunYu Chen](https://github.com/18z) 开发了 Quark-Engine
- [iBotPeaches](https://github.com/iBotPeaches)、[brutall](https://github.com/brutall) 和 [JesusFreke](https://github.com/JesusFreke) 开发了 Apktool 和 Smali
- [patrickfav](https://github.com/patrickfav) 开发了 uber-apk-signer
- [skylot](https://github.com/skylot) 开发了 Jadx
标签:Android逆向, APKLab, Apktool, APK反编译, APK签名, Jadx, JS文件枚举, MITM, MITM代理, Smali, SOC Prime, 云资产清单, 代码分析, 凭证管理, 应用分析, 开发工具, 目录枚举, 移动安全, 自动化攻击, 逆向工程, 集成开发环境