APKnife is an advanced tool for APK analysis, modification, and security auditing. Whether you're a security researcher, penetration tester, or Android developer, APKnife provides powerful features for reverse engineering, decompiling, modifying, and analyzing APK files.
Project description
APKnife: The Cyber Blade of APK Domination ๐ช๐งธ
APKnife โ The Double-Edged Blade of APK Analysis ๐ช
Fear the Blade, Trust the Power!
APKnife is an advanced tool for APK analysis, modification, and security auditing. Whether you're a security researcher, penetration tester, or Android developer, APKnife provides powerful features for reverse engineering, decompiling, modifying, and analyzing APK files.
๐ Features & Capabilities
- โ Extract & decompile APKs into readable formats
- โ Modify & repackage APKs effortlessly
- โ Analyze APKs for security vulnerabilities
- โ Edit AndroidManifest.xml & Smali code
- โ Extract Java source code from an APK
- โ Detect Remote Access Trojans (RATs) & malware
- โ Decode binary XML files & scan for API calls
- โ Change APK metadata (icon, name, package name)
- โ Identify security risks like excessive permissions
- โ Sign APKs for smooth installation
๐ง Installation
๐ Prerequisites
Ensure you have the following installed on your system:
- Python 3.12
- Java (JDK 8 or later)
- apktool
- zipalign
- keytool
๐ Setting Up a Python Virtual Environment
Before installing APKnife, it's recommended to set up a Python virtual environment to avoid package conflicts.
1๏ธโฃ Create a Python Virtual Environment:
python3 -m venv venv
source venv/bin/activate # On Linux/macOS
venv\Scripts\activate # On Windows
2๏ธโฃ Install Required Packages
Once the virtual environment is activated, install APKnife:
pip install apknife
๐ฅ Installing Rust (Required for APKnife)
APKnife requires Rust for building. Follow the installation steps based on your OS:
๐ง On Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then follow the on-screen instructions.
๐ On macOS (Using Homebrew):
brew install rust
๐ฅ๏ธ On Windows:
- Visit rustup.rs and install Rust.
- Verify installation:
rustc --version
โ ๏ธ Troubleshooting Common Issues
โ Issue Installing Rust on Termux
Ensure Termux is up to date:
pkg update && pkg upgrade
Install required build tools:
pkg install clang make python rust
โ Issues Installing APKnife
- Rust not installed properly? Ensure it's correctly installed via rustup or your package manager.
- Python conflicts? If there are issues with virtual environments, reset it:
rm -rf venv
python3 -m venv venv
source venv/bin/activate
โ Verifying Installed Versions
python --version
rustc --version
๐ Setting Up Rust Environment Variables
๐ง On Linux/macOS
nano ~/.bashrc # For bash
nano ~/.zshrc # For zsh
Add this line at the end:
export PATH="$HOME/.cargo/bin:$PATH"
Apply changes:
source ~/.bashrc # For bash
source ~/.zshrc # For zsh
๐ฅ๏ธ On Windows
- Open "Environment Variables" from the Start menu.
- Edit Path under System Variables and add:
C:\Users\<YourUsername>\.cargo\bin
- Click OK and restart your terminal.
Verify the setup:
cargo --version
rustc --version
๐ฅ Installing APKnife
pip install apknife
๐ Usage
๐ฅ๏ธ Interactive Mode
To enter interactive mode, run:
python3 apknife.py interactive
This will launch a command-line interface for executing APKnife commands.
๐ ๏ธ Available Commands
๐ข Extract APK Contents
python3 apknife.py extract -i target.apk -o extracted/
๐ข Modify & Rebuild APK
python3 apknife.py build -i extracted/ -o modified.apk
๐ข Sign APK
apknife sign -i modified.apk
๐ข Analyze APK for Vulnerabilities
apknife scan_vulnerabilities -i target.apk
๐ข Detect Remote Access Trojans (RATs)
apknife catch_rat -i malicious.apk
๐ข Extract Java Source Code
apknife extract-java -i target.apk -o src_folder
๐ข Change APK Name
apknife modify-apk --name -i app.apk
๐ข Change APK Icon
apknife modify-apk --icon new_icon.png -i app.apk
๐ข Modify Package Name
apknife modify-apk --package com.example.example -i app.apk
๐ข Modify Multiple APK Attributes
apknife modify-apk --name new_name --package new.package.name --icon anysize.any -o modified_apk.apk
๐ข Scan APK Permissions
apknife scan_permissions -i target.apk
๐ Help Menu
๐ข Extract APK Contents
Extract the contents of an APK file.
python3 apknife.py extract -i target.apk -o extracted/
-i: Path to the input APK file.-o: Directory to save the extracted files.
๐ข Build APK
Rebuild an APK from extracted files.
python3 apknife.py build -i extracted/ -o modified.apk
-i: Directory containing the extracted files.-o: Path to save the rebuilt APK.
๐ข Sign APK
Sign an APK file.
apknife sign -i modified.apk
-i: Path to the APK file to sign.
๐ข Analyze APK
Analyze an APK for security vulnerabilities.
apknife analyze -i target.apk
-i: Path to the APK file to analyze.
๐ข Edit Manifest
Edit the AndroidManifest.xml of an APK.
apknife edit-manifest -i target.apk
-i: Path to the APK file.
๐ข Decompile to Smali
Decompile an APK to Smali code.
apknife smali -i target.apk -o smali_output/
-i: Path to the APK file.-o: Directory to save the decompiled Smali code.
๐ข Decode Manifest
Decode the AndroidManifest.xml of an APK.
apknife decode_manifest -i target.apk -o output_dir/
-i: Path to the APK file.-o: Directory to save the decoded manifest.
๐ข Find onCreate Methods
Find onCreate methods in an APK.
apknife find-oncreate -i target.apk
-i: Path to the APK file.
๐ข Find API Calls
Find API calls in an APK.
apknife find-api -i target.apk
-i: Path to the APK file.
๐ข Scan for Vulnerabilities
Scan an APK for vulnerabilities.
apknife scan-vulnerabilities -i target.apk
-i: Path to the APK file.
๐ข Scan Permissions
Scan and list permissions used by an APK.
apknife scan-permissions -i target.apk
-i: Path to the APK file.
๐ข Catch RAT
Analyze an APK for Remote Access Trojan (RAT) indicators.
apknife catch_rat -i malicious.apk
-i: Path to the APK file.
๐ข Extract Java Source Code
Extract Java source code from an APK.
apknife extract-java -i target.apk -o src_folder/
-i: Path to the APK file.-o: Directory to save the extracted Java source code.
๐ข Extract Sensitive Data
Extract sensitive data from an APK.
apknife extract-sensitive -i target.apk -o sensitive_data.json
-i: Path to the APK file.-o: Path to save the extracted sensitive data (JSON format).
๐ข Modify APK Metadata
Modify an APK's metadata (name, icon, package name).
apknife modify-apk -i target.apk --name "New App Name" --icon new_icon.png --package com.new.package
-i: Path to the APK file.--name: New app name.--icon: Path to the new icon (any size/format).--package: New package name.
๐ข Extract DEX Files
Extract DEX files from an APK.
apknife extract-dex -i target.apk -o dex_output/
-i: Path to the APK file.-o: Directory to save the extracted DEX files.
๐ข Scan for Protection Mechanisms
Scan an APK for protection mechanisms (e.g., Firewall, ProGuard).
apknife waf -i target.apk
-i: Path to the APK file.
๐ข Interactive Mode
Launch APKnife in interactive mode.
python3 apknife.py interactive
๐ข Help Menu
Display the help menu with all available commands.
apknife -h
๐ข Update Commands
Reload the commands from the external file.
apknife update-commands
๐ข List Commands
Display the current list of available commands.
apknife list-commands
๐ข Exit Interactive Mode
Exit the interactive shell.
exit
โ ๏ธ Legal Disclaimer
This tool is designed for educational and security research purposes only. Unauthorized use of APKnife on third-party applications without permission is illegal. The developers are not responsible for any misuse.
๐ License
APKnife is released under the MIT License โ You are free to modify and distribute it for legal use.
๐ก Contributions & Support
๐ Contributions are welcome! Fork the repo, submit pull requests, and report issues. Let's make APKnife even better!
APKnife โ The Double-Edged Blade of APK Analysis ๐ช๐งธ
All rights reserved to MR_nightmare.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apknife-1.1.13.tar.gz.
File metadata
- Download URL: apknife-1.1.13.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc610aeb1d3a14eba5458d85706f90ee6ef5a05191edd8cabed33884a608e411
|
|
| MD5 |
6329ea3beab579b9bc3886ba343747bb
|
|
| BLAKE2b-256 |
1f130ecc01fb10739c2185e2da0216417faaade2f7fa04dd1faeb80b1778b0c6
|
File details
Details for the file apknife-1.1.13-py3-none-any.whl.
File metadata
- Download URL: apknife-1.1.13-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaa6f66e97f00b63779d512b8d4974e5433f4dff815c2e78f9a581ee02aecd23
|
|
| MD5 |
64f471ab9449d55bac80744631f94141
|
|
| BLAKE2b-256 |
3466eaa107fe277d1d73e5a53d89e9ff1260bd5df27c2d96df9674456037e442
|