本手册覆盖课程所需的全部工具安装步骤。建议课前统一完成安装,避免占用授课时间。1. 基础环境1.1 JDK(Java Development Kit)用途:apktool、jadx、uber-apk-signer 等工具依赖 Java 运行时。安装步骤:访问 Oracle JDK 17 或 OpenJDK 17选择 Windows x64 Installer,下载并运行安装程序配置环境变量:新增系统变量 JAVA_HOME,值为 JDK 安装路径(例如 C:\Program Files\Java\jdk-17)在 Path 变量中追加 %JAVA_HOME%\bin验证:java -version# openjdk version "17.0.x" ...javac -version# javac 17.0.x1.2 Android SDK Platform Tools(ADB)用途:提供 adb、fastboot 等命令行工具,用于 PC 与 Android 设备/模拟器通信。安装步骤:访问 Android SDK Platform Tools下载 Windows 版本(ZIP 压缩包)解压到固定目录(例如 C:\platform-tools)将 C:\platform-tools 追加到系统 Path 环境变量验证:adb version# Android Debug Bridge version 1.0.41# Version 35.0.x ...1.3 Python 3用途:Frida 的 Python 绑定(frida-tools)、blackboxprotobuf 等依赖 Python。安装步骤:访问 python.org下载 Python 3.10 或更高版本(Windows Installer)安装时勾选 "Add Python to PATH"验证:python --version安装必要库:pip install frida-tools blackboxprotobuf2. 静态分析工具2.1 apktool用途:APK 反编译/回编译工具,将 APK 解码为 Smali 代码和资源文件。版本:2.9.3(课程使用版本,建议保持一致)安装步骤:访问 apktool 官方站点 或 GitHub Releases下载 apktool_2.9.3.jar下载 Windows 包装脚本(右键另存为 apktool.bat)将 apktool.bat 和 apktool_2.9.3.jar 置于同一目录将该目录加入系统 Path验证:apktool --version# 2.9.32.2 jadx用途:将 DEX 字节码反编译为 Java 源代码,支持命令行和 GUI 两种模式。版本:1.5.0(课程使用版本)安装步骤:访问 jadx GitHub Releases下载 jadx-gui-1.5.0-with-jre-win.zip(自带 JRE,无需单独配置 Java)解压到固定目录(例如 C:\jadx)双击 jadx-gui.bat 启动图形界面验证:GUI 模式:双击 jadx-gui.bat → 应显示 jadx 窗口CLI 模式:jadx --version → 应输出版本号2.3 uber-apk-signer用途:APK 签名工具。修改 Smali 后回编译的 APK 需重新签名方可安装。安装步骤:访问 uber-apk-signer GitHub Releases下载最新版 JAR(例如 uber-apk-signer-1.3.0.jar)放置于方便调用的目录使用:java -jar uber-apk-signer-1.3.0.jar --apks target.apk3. 动态分析工具3.1 Frida用途:跨平台动态插桩框架,用于运行时 Hook Java 方法和 Native 函数。版本要求:PC 端 frida-tools 版本与 Android 端 frida-server 版本必须完全一致。3.1.1 PC 端(frida-tools)pip install frida-toolsfrida --version# 记录版本号,例如 16.5.93.1.2 Android 端(frida-server)步骤:访问 Frida GitHub Releases选择与 PC 端版本完全一致的 release(例如 16.5.9)根据模拟器 CPU 架构选择对应文件:MuMu 模拟器使用 x86_64 版本:frida-server-16.5.9-android-x86_64.xz真机(ARM64):frida-server-16.5.9-android-arm64.xz下载后解压(使用 7-Zip 或 xz -d):7z x frida-server-16.5.9-android-x86_64.xz推送至模拟器并配置:adb push frida-server-16.5.9-android-x86_64 /data/local/tmp/frida-serveradb shell chmod 755 /data/local/tmp/frida-server启动:# 需要 root 权限adb shell su -c "/data/local/tmp/frida-server &"验证:frida-ps -U# 应显示模拟器上运行的进程列表常见故障排除:故障现象可能原因解决方案Failed to enumerate processesfrida-server 未启动重新执行启动命令同上版本不一致检查 frida --version 与 frida-server 版本号同上架构错误MuMu 需用 x86_64,非 arm64connection closedfrida-server 进程异常adb shell su -c "killall frida-server" 后重试4. 流量分析工具4.1 Reqable用途:HTTP/HTTPS/HTTP2/HTTP3(QUIC) 抓包调试工具。支持断点、重放、规则重写、脚本扩展。版本:2.8.0 或更高安装步骤:访问 Reqable 官网下载 Windows 版本安装程序运行安装程序,按默认配置完成安装启动 Reqable初始配置:设置 → 开启 HTTPS 解密记录代理端口(默认 9000)导出根证书(PEM 格式,用于安装到模拟器系统目录)模拟器端证书安装(Android 7.0+ 需安装到系统证书目录):# 1. 计算证书的 Android 命名哈希值openssl x509 -inform PEM -subject_hash_old -in reqable-ca.pem | head -1# 输出示例:2a5b6c7d# 2. 生成 Android 格式证书文件openssl x509 -inform PEM -text -in reqable-ca.pem > 2a5b6c7d.0# 3. 推送至系统证书目录adb rootadb remountadb push 2a5b6c7d.0 /system/etc/security/cacerts/adb shell chmod 644 /system/etc/security/cacerts/2a5b6c7d.0adb reboot为模拟器配置代理:# 方式一:全局代理(推荐)adb shell settings put global http_proxy <PC的IP地址>:9000# 验证adb shell settings get global http_proxy# 输出:192.168.x.x:9000# 取消代理adb shell settings put global http_proxy :05. Android 模拟器5.1 MuMu 模拟器用途:Android 运行环境,提供 root 权限和 ADB 调试支持。版本:MuMu 模拟器 12(Android 12,x86_64 架构)安装步骤:访问 MuMu 模拟器官网下载 Windows 版本安装程序安装后首次启动,等待 Android 系统初始化必做配置:设置 → 其他设置 → 开启 ROOT 权限 → 重启模拟器设置 → 其他设置 → 磁盘共享 → 选择"可写"连接 ADB:adb connect 127.0.0.1:7555adb devices# 127.0.0.1:7555 device必做系统配置:# 开启未知来源安装adb shell settings put secure install_non_market_apps 1# 关闭 Google Play 保护adb shell settings put global package_verifier_enable 0# SELinux 设为 Permissive(Day 1 讲解原因)adb shell su -c "setenforce 0"adb shell getenforce# 应输出:Permissive6. 小程序分析工具6.1 unveilr用途:微信小程序 .wxapkg 文件解包工具,还原为可读的 JavaScript/HTML 源码。安装步骤:访问 unveilr GitHub Releases下载 Windows x64 版本(.exe 文件)放置于方便调用的目录,或加入系统 Path使用:unveilr ./target.wxapkg -o ./output/注意事项:较新版本的微信(8.0+)可能对 wxapkg 进行了加密,此时 unveilr 会报错 Unsupported .wxapkg format解决方案:使用 PC 微信客户端提取未加密的小程序包,或使用专用的解密脚本7. 可选工具7.1 Ghidra用途:NSA 开源的逆向工程工具,用于分析 .so(ELF)文件中的 Native 代码。支持反汇编和反编译(伪 C 代码)。安装步骤:访问 Ghidra 官网下载最新版本(需 JDK 17+)解压到固定目录运行 ghidraRun.bat 启动7.2 BlackDex用途:运行在 Android 设备上的 APK 脱壳工具,适合一代壳的快速脱壳。安装步骤:访问 BlackDex 项目页面下载 APKadb install blackdex.apk在模拟器中打开 BlackDex → 选择目标 App → 自动脱壳8. 环境自检清单课程开始前,请逐项确认:基础环境□ java -version → 17.x□ adb version → 1.0.41+□ python --version → 3.10+静态分析□ apktool --version → 2.9.3□ jadx-gui.bat 可正常启动□ uber-apk-signer JAR 已下载动态分析□ frida --version → 与 frida-server 一致□ frida-ps -U → 显示进程列表(frida-server 已启动)流量分析□ Reqable 已安装,HTTPS 解密已开启□ Reqable 根证书已安装到模拟器系统证书目录□ adb shell settings get global http_proxy → 指向 Reqable 端口模拟器□ MuMu 模拟器已启动□ adb devices → 127.0.0.1:7555 device□ adb shell su -c "id" → uid=0(root)□ adb shell getenforce → Permissive小程序□ unveilr --version → 正常输出可选□ Ghidra 已安装(用于 Day 4-5 Native 分析)版本锁定建议:课程涉及的 Frida、apktool、jadx 建议统一使用手册指定的版本。跨版本差异可能导致课堂演示与学生操作不一致。
1. 基础环境
1.1 JDK(Java Development Kit)
用途:apktool、jadx、uber-apk-signer 等工具依赖 Java 运行时。
安装步骤:
验证:
1.2 Android SDK Platform Tools(ADB)
用途:提供 adb、fastboot 等命令行工具,用于 PC 与 Android 设备/模拟器通信。
安装步骤:
验证:
1.3 Python 3
用途:Frida 的 Python 绑定(frida-tools)、blackboxprotobuf 等依赖 Python。
安装步骤:
安装必要库:
2. 静态分析工具
2.1 apktool
用途:APK 反编译/回编译工具,将 APK 解码为 Smali 代码和资源文件。
版本:2.9.3(课程使用版本,建议保持一致)
安装步骤:
验证:
2.2 jadx
用途:将 DEX 字节码反编译为 Java 源代码,支持命令行和 GUI 两种模式。
版本:1.5.0(课程使用版本)
安装步骤:
验证:
2.3 uber-apk-signer
用途:APK 签名工具。修改 Smali 后回编译的 APK 需重新签名方可安装。
安装步骤:
使用:
3. 动态分析工具
3.1 Frida
用途:跨平台动态插桩框架,用于运行时 Hook Java 方法和 Native 函数。
版本要求:PC 端 frida-tools 版本与 Android 端 frida-server 版本必须完全一致。
3.1.1 PC 端(frida-tools)
3.1.2 Android 端(frida-server)
步骤:
启动:
验证:
常见故障排除:
故障现象
可能原因
解决方案
Failed to enumerate processes
frida-server 未启动
重新执行启动命令
同上
版本不一致
检查 frida --version 与 frida-server 版本号
同上
架构错误
MuMu 需用 x86_64,非 arm64
connection closed
frida-server 进程异常
adb shell su -c "killall frida-server" 后重试
4. 流量分析工具
4.1 Reqable
用途:HTTP/HTTPS/HTTP2/HTTP3(QUIC) 抓包调试工具。支持断点、重放、规则重写、脚本扩展。
版本:2.8.0 或更高
安装步骤:
初始配置:
模拟器端证书安装(Android 7.0+ 需安装到系统证书目录):
为模拟器配置代理:
5. Android 模拟器
5.1 MuMu 模拟器
用途:Android 运行环境,提供 root 权限和 ADB 调试支持。
版本:MuMu 模拟器 12(Android 12,x86_64 架构)
安装步骤:
连接 ADB:
必做系统配置:
6. 小程序分析工具
6.1 unveilr
用途:微信小程序 .wxapkg 文件解包工具,还原为可读的 JavaScript/HTML 源码。
安装步骤:
使用:
注意事项:
7. 可选工具
7.1 Ghidra
用途:NSA 开源的逆向工程工具,用于分析 .so(ELF)文件中的 Native 代码。支持反汇编和反编译(伪 C 代码)。
安装步骤:
7.2 BlackDex
用途:运行在 Android 设备上的 APK 脱壳工具,适合一代壳的快速脱壳。
安装步骤:
8. 环境自检清单
课程开始前,请逐项确认: