Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apklab/apklab
Android Reverse-Engineering Workbench for VS Code
https://github.com/apklab/apklab
android apk-decompiler apk-editor apk-studio apksigner apktool app-analyzer bytecode dalvik https-inspection jadx malware-analysis malware-detection mitm reverse-engineering smali smalidea uber-apk-signer
Last synced: about 1 month ago
JSON representation
Android Reverse-Engineering Workbench for VS Code
- Host: GitHub
- URL: https://github.com/apklab/apklab
- Owner: APKLab
- License: agpl-3.0
- Created: 2020-05-09T17:18:38.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-07T19:49:45.000Z (6 months ago)
- Last Synced: 2024-05-14T19:47:22.722Z (6 months ago)
- Topics: android, apk-decompiler, apk-editor, apk-studio, apksigner, apktool, app-analyzer, bytecode, dalvik, https-inspection, jadx, malware-analysis, malware-detection, mitm, reverse-engineering, smali, smalidea, uber-apk-signer
- Language: TypeScript
- Homepage: https://apklab.surendrajat.xyz
- Size: 7.3 MB
- Stars: 2,409
- Watchers: 44
- Forks: 232
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
APKLab
The ultimate Android RE experience right inside your VS Code.
APKLab seamlessly integrates the best open-source tools: Quark-Engine, Apktool, Jadx, uber-apk-signer, apk-mitm and more to the excellent VS Code so you can focus on app analysis and get it done without leaving the IDE.
## Features
- Decode all the resources from an APK
- Disassemble the APK to Dalvik bytecode aka Smali
- Decompile the APK to Java source
- Interactive Malware Analysis Report
- Initialize Project dir as Git repo
- Excellent Smali language support with [**Smalise**](https://github.com/LoyieKing/Smalise)
- Analyze & Hack effectively with feature-rich VS Code
- Apply MITM patch for HTTPS inspection
- Build an APK from Smali and resources
- Rebuild an APK in Debug mode for dynamic analysis
- Sign the APK seamlessly during the build
- Install the APK directly from VS Code
- Support for Apktool-style projects (`apktool.yml`)
- Support for most Apktool CLI arguments
- Android resource frameworks management (Coming soon!)
- Support for user-provided keystore for APK signing
- Download and configure missing dependencies
- Supports Linux, Windows, and Mac## Requirements
- **JDK 8+**
> Run **`java -version`** in your Shell, if not found, download from [here](https://adoptopenjdk.net/).
- **quark-engine >=21.01.6** (for malware analysis)
> Run **`quark`** in your Shell, if not found, check [official docs](https://github.com/quark-engine/quark-engine).
- **adb**
> Run **`adb devices`** in your Shell, if not found, check [this guide](https://www.xda-developers.com/install-adb-windows-macos-linux/).## Getting Started
#### Open APK or Apktool project
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Open an APK
![decode.gif](https://github.com/APKLab/APKLab/raw/master/assets/decode.gif)
- Or Just open an existing Apktool project folder
#### Apply MITM patch
- Right-Click on or inside `apktool.yml` file ➜ APKLab: Prepare for HTTPS inspection
![mitm.gif](https://github.com/APKLab/APKLab/raw/master/assets/mitm.gif)
#### ReBuild and Sign APK
- Right-Click on or inside `apktool.yml` file ➜ APKLab: Rebuild the APK
![rebuild.gif](https://github.com/APKLab/APKLab/raw/master/assets/rebuild.gif)
#### Install APK to device
- Right-Click on `.apk` file (in `dist` directory) ➜ APKLab: Install the APK
![install.gif](https://github.com/APKLab/APKLab/raw/master/assets/install.gif)
#### Clean ApkTool frameworks dir
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Empty ApkTool Framework Dir
## Extension Settings
Dependency Paths
- **`apklab.apktoolPath`**: Full Path of `apktool.jar`. If you want to use a different version of it, change it like:
`"apklab.apktoolPath": "/home/oozer/downloads/apktool_2.4.1.jar"`
- **`apklab.apkSignerPath`**: Full Path of `uber-apk-signer.jar`. If you want to use a different version of it, change it like:
`"apklab.apkSignerPath": "/home/oozer/downloads/uber-apk-signer-1.1.0.jar"`
- **`apklab.jadxDirPath`**: Full Path of `jadx-x.y.z` dir. If you want to use a different version of it, change it like:
`"apklab.jadxDirPath": "/home/oozer/downloads/jadx-1.1.0"`
Keystore configuration
- **`apklab.keystorePath`**: Put the absolute path of your **Java keystore**(`.jks` or `.keystore`) file here.
`"apklab.keystorePath": "/home/oozer/downloads/debug.keystore"`
- **`apklab.keystorePassword`**: Put the **password** of your keystore here.
- **`apklab.keyAlias`**: Put the **alias** of the used key in the keystore here.
- **`apklab.keyPassword`**: Put the **password** of the used key in the keystore here.
Additional configuration
- **`apklab.initProjectDirAsGit`**: Initialize project output directory as **Git** repository.
- **`apklab.updateTools`**: Whether APKLab should check for tools (for apklab, jadx...) update and show a notification.## Known Issues
Please check our [Bug tracker](https://github.com/APKLab/APKLab/issues) for known issues.
## Contribution Guide
For bug reports, feature requests or simply discussing an idea, please open an issue [here](https://github.com/APKLab/APKLab/issues). PRs are always welcome.
## [Changelog](https://github.com/APKLab/APKLab/blob/master/CHANGELOG.md)
## Credits
- [Feimaomii](https://github.com/Feimaomii) for the awesome logo
- [Aman Sharma](https://github.com/amsharma44) for active contribution
- [Niklas Higi](https://github.com/shroudedcode) for apk-mitm
- [Shaun Dang](https://github.com/pulorsok), [JunWei Song](https://github.com/krnick) & [KunYu Chen](https://github.com/18z) for Quark-Engine
- [iBotPeaches](https://github.com/iBotPeaches), [brutall](https://github.com/brutall) and [JesusFreke](https://github.com/JesusFreke) for Apktool & Smali
- [patrickfav](https://github.com/patrickfav) for uber-apk-signer
- [skylot](https://github.com/skylot) for Jadx
- [Loyie King](https://github.com/LoyieKing) for Smalise