This manual covers the installation of all tools required for the course. It is recommended to complete the installation before class to avoid taking up teaching time. The manual details the setup of the base environment (JDK 17, Android SDK Platform Tools, Python 3), static analysis tools (apktool 2.9.3, jadx 1.5.0, uber-apk-signer), dynamic analysis tools (Frida with version consistency requirements), traffic analysis tools (Reqable 2.8.0+), the Android emulator (MuMu 12 with specific configurations), mini-program analysis tools (unveilr), and optional tools (Ghidra, BlackDex). A self-check list is provided, with a recommendation to use the specified versions for consistency.
This guide covers all tool installation steps required for the course. It is recommended to complete the installations before class to avoid taking up lecture time.
1. Base Environment
1.1 JDK (Java Development Kit)
Purpose: apktool, jadx, uber-apk-signer, and other tools depend on the Java runtime.
Version Pinning Advice: It is recommended to use the exact versions of Frida, apktool, and jadx specified in this guide. Cross-version differences may cause discrepancies between the instructor's demo and student operations.
1. Base Environment
1.1 JDK (Java Development Kit)
Purpose: apktool, jadx, uber-apk-signer, and other tools depend on the Java runtime.
Installation Steps:
Verification:
1.2 Android SDK Platform Tools (ADB)
Purpose: Provides adb, fastboot, and other command-line tools for communication between a PC and an Android device/emulator.
Installation Steps:
Verification:
1.3 Python 3
Purpose: Frida's Python bindings (frida-tools), blackboxprotobuf, and others depend on Python.
Installation Steps:
Install required libraries:
2. Static Analysis Tools
2.1 apktool
Purpose: An APK decompilation/recompilation tool that decodes APK files into Smali code and resource files.
Version: 2.9.3 (the version used in this course; staying consistent is recommended)
Installation Steps:
Verification:
2.2 jadx
Purpose: Decompiles DEX bytecode into Java source code, supporting both command-line and GUI modes.
Version: 1.5.0 (the version used in this course)
Installation Steps:
Verification:
2.3 uber-apk-signer
Purpose: An APK signing tool. After modifying Smali code and recompiling, the APK must be re-signed before installation.
Installation Steps:
Usage:
3. Dynamic Analysis Tools
3.1 Frida
Purpose: A cross-platform dynamic instrumentation framework used for runtime hooking of Java methods and native functions.
Version Requirement: The PC-side frida-tools version and the Android-side frida-server version must be exactly identical.
3.1.1 PC Side (frida-tools)
3.1.2 Android Side (frida-server)
Steps:
Launch:
Verification:
Common Troubleshooting:
Symptom
Possible Cause
Solution
Failed to enumerate processes
frida-server not started
Re-run the launch command
Same as above
Version mismatch
Check frida --version against the frida-server version number
Same as above
Architecture mismatch
MuMu requires x86_64, not arm64
connection closed
frida-server process abnormal
adb shell su -c "killall frida-server" and retry
4. Traffic Analysis Tools
4.1 Reqable
Purpose: An HTTP/HTTPS/HTTP2/HTTP3(QUIC) packet capture and debugging tool. Supports breakpoints, replay, rule rewriting, and script extensions.
Version: 2.8.0 or later
Installation Steps:
Initial Configuration:
Emulator-Side Certificate Installation (Android 7.0+ requires installation into the system certificate store):
Configure the proxy on the emulator:
5. Android Emulator
5.1 MuMu Emulator
Purpose: An Android runtime environment that provides root access and ADB debugging support.
Version: MuMu Emulator 12 (Android 12, x86_64 architecture)
Installation Steps:
Connect ADB:
Required System Configuration:
6. Mini Program Analysis Tools
6.1 unveilr
Purpose: A WeChat Mini Program .wxapkg file unpacking tool that restores readable JavaScript/HTML source code.
Installation Steps:
Usage:
Notes:
7. Optional Tools
7.1 Ghidra
Purpose: An NSA open-source reverse engineering tool for analyzing native code in .so (ELF) files. Supports disassembly and decompilation (pseudo-C code).
Installation Steps:
7.2 BlackDex
Purpose: An APK unpacking tool that runs on the Android device, suitable for quickly unpacking first-generation packers.
Installation Steps:
8. Environment Self-Check Checklist
Before the course begins, please verify each item: