一、Android 工具链的"开发 + 逆向"双面
2016 年的 Android 工具链呈"两极分化"——开发向 走 Android Studio / Gradle,逆向向走 Smali / APK 反编译 / Hook;自动化向走 Auto.js / UIAutomator;调试向走模拟器 / 真机 + Fiddler 抓包。本文整理 4 款逆向 / 自动化专用工具。
阅读建议:本文面向Android 安全研究员 / 移动测试工程师 / 自动化玩家。仅讨论开源 / 免费 / 公开技术,不涉及任何非法破解。
二、Jadx:APK 反编译利器
2.1 定位
Jadx 2014 年开源,把 APK 里的 .dex 反编译成 .java。优势:
- GUI + CLI
- 反编译质量高(比 d2j-dex2jar + jd-gui 强)
- 支持资源和 AndroidManifest.xml
- 免费开源(Apache 2.0)
2.2 安装
- GitHub:
https://github.com/skylot/jadx/releases - 平台:Windows / macOS / Linux
- 解压即用(无安装)
2.3 GUI 使用
| |
File → Open→ 选 APK- 左侧树:包名 / 类名 / 资源
- 中间:
Decompiled code视图 - 顶部:搜索类 / 方法 / 字段
实战:找登录逻辑
| |
2.4 命令行
| |
2.5 高级选项
| |
2.6 替代品
| 工具 | 优势 |
|---|---|
| Jadx | 开源 / 高质量 |
| JEB | 最强反混淆(商业付费) |
| Bytecode Viewer | 多引擎(Krakatau / Procyon) |
| APKTool | 资源 + Smali 反编译 |
| d2j-dex2jar + jd-gui | 老牌组合(质量差) |
三、JD-GUI:Java class 查看器
3.1 定位
JD-GUI 2008 年发布,用 Java 写的小工具,专门看 .class 文件的反编译源码。比 Jadx 简单(只支持 JAR/class,不支持 APK)。
3.2 安装
http://java-decompiler.github.io/:
- 跨平台 JAR 包
- 启动:
java -jar jd-gui.jar
3.3 实战
反编译 .class:
File → Open→ 选 JAR / class- 左侧:包结构
- 中间:反编译代码
- 可以搜索类 / 方法
实战:看 Spring AOP 生成的 class:
| |
3.4 替代品
| 工具 | 优势 |
|---|---|
| JD-GUI | 经典 / Java 写 |
| CFR | 命令行 / 高质量 |
| Procyon | 现代 Java 8+ |
| JD-Eclipse | Eclipse 插件 |
| IntelliJ IDEA 内置 | 内置(已足够用) |
3.5 CFR 命令行
| |
四、Auto.js:Android 自动化脚本
4.1 定位
Auto.js 是 hyb1996 个人开发的 Android 自动化工具,用 JavaScript 写脚本。2017 年停更(作者被抓),但代码开源:hyb1996/Auto.js。有 6.0+ 商业继承者(AutoX / AutoJs6 / Hamibot)。
4.2 优势
- 用 JS 写(门槛低)
- 完整 Android API(UI / 网络 / 文件 / 数据库)
- 无障碍服务(模拟点击)
- OCR / 截图 / 录屏
4.3 安装与开发环境
- GitHub:
https://github.com/hyb1996/Auto.js(v4 / 早期版本) - Android 7+:装 APK
- Pro 版(hyb1996 大神):有 VSCode 插件
4.4 第一个脚本:自动点赞
| |
4.5 进阶:UI 自动化
| |
4.6 OCR + 点击
| |
4.7 实战:自动签到
| |
4.8 Auto.js 6(开源继承者)
https://github.com/aiselp/AutoX:
- 兼容 Auto.js v4 API
- 持续维护
- 装好后直接跑老脚本
五、Nox 夜神模拟器:Android 模拟器
5.1 定位
Nox 夜神模拟器 2015 年发布,国产最强 Android 模拟器。比 BlueStacks / Andy 强:
- 国产 / 中文
- 支持 Android 5/7/9/12 多版本
- 多开( 1 台 PC 开 5+ 模拟器**)**
- Root 权限( 默认开启**)**
- 游戏优化( 键位映射**)**
5.2 安装
https://www.yeshen.com/:
- 装好首次启动自动装虚拟设备
- 需要开启 VT-x(BIOS)
5.3 关键设置
设置 → 高级:
| 配置 | 推荐 |
|---|---|
| 性能 | 4 核 / 4 GB(看 CPU) |
| 分辨率 | 1920×1080(默认) |
| 帧数 | 60 FPS(游戏) |
| Root | 开启(测试) |
| ADB | 远程连接(默认 62001 端口) |
5.4 ADB 连接
| |
5.5 多开
- 多开管理器 →
新建模拟器 - 5 开:i5 + 16 GB 内存基本够用
- i7 + 32 GB:10 开
5.6 键位映射(游戏)
- 右侧
键盘操控 - 拖动按键到屏幕
- 配
WASD等键 - FPS 游戏必备
5.7 替代品对比
| 工具 | 优势 |
|---|---|
| Nox | 国产 / 中文 / 多开 |
| BlueStacks | 老牌 / 国际版 |
| LDPlayer | 轻量 / 雷电 |
| MuMu 模拟器 | 网易系 / 游戏优化 |
| Android Studio AVD | 官方 / 慢 |
| Genymotion | 商业 / 性能强 |
| WSA | Win 11 / Android 子系统 |
六、Fiddler + Nox 抓包
6.1 准备
- Nox 启动 + 装目标 App
- Fiddler 启动 + 设代理
6.2 Fiddler 配置
Tools → Options → Connections:
- Fiddler listens on port:
8888 Allow remote computers to connect:勾选Tools → Options → HTTPS:Capture HTTPS CONNECTs:勾选Decrypt HTTPS traffic:勾选... from all processes:勾选
6.3 Nox 代理配置
方法 1:Nox 设置 → Wi-Fi
- 长按已连接 Wi-Fi → 修改网络
- 代理:
127.0.0.1:8888
方法 2:Root + adb 命令
| |
方法 3:透明代理( App 不开代理**)**
用 postern / Drony 等 VPN 类工具。
6.4 抓包实战
- Nox 启动 App
- Fiddler 看 HTTP/HTTPS 请求
- 关注:URL、Header、Body、Response
典型抓包场景:
- 登录流程 → 看 token / cookie
- 支付流程 → 看签名算法
- 资源加载 → 找 CDN 域名
6.5 替代品
| 工具 | 优势 |
|---|---|
| Fiddler | 老牌 / 强大 / 需 root |
| Charles | 跨平台 / 简单 |
| mitmproxy | 命令行 / 脚本化 |
| Wireshark | 抓 TCP/UDP(无需代理) |
| HttpCanary | Android 直接抓(无需 PC) |
七、组合实战
7.1 Android 应用安全审计
| |
7.2 自动化测试
| |
7.3 移动爬虫
| |
八、常见问题
8.1 Jadx 反编译失败
- APK 加固(360 / 腾讯乐固 / 梆梆)→ 用 FDex2 / dumpDex 先脱壳
- 混淆严重 → 用 JEB / GDA 替代
--show-bad-code强制显示
8.2 Nox 卡顿
- CPU 没开 VT:BIOS 开启
- 显卡驱动升级
- 关闭杀毒软件(Hyper-V 冲突)
- 改用 Android 5 版本(比 7 快)
8.3 Fiddler 抓不到 HTTPS
- 证书没装到系统证书:用上述方法 2
- App 用了 SSL Pinning:需 JustTrustMe / SSLUnpinning Xposed 模块
- App 用了双向认证:需要 App 客户端证书
8.4 Auto.js 脚本不执行
- 无障碍服务没开
- Android 版本不兼容(v4 最高 9)
- 后台被杀 → 改用 ForegroundService
8.5 模拟器被检测
- 物理 MAC 改写(Nox 支持)
- IMEI 修改(需 root + Xposed)
- 定位模拟(Nox 自带)
- GPU 信息(Nox 已优化)
九、下一步
- 想看抓包工具:[2016-11-15 数据库客户端实战:MySQL / Redis / ES / MQTT]
- 想看 Fiddler 完整实战:[2018-09-15 Fiddler + Charles 抓包]
- 想看 APK 自动化:App 自动化测试 章节
本文写于 2016 年,回看当时:Jadx 2014 开源,已取代老牌 d2j-dex2jar;Auto.js 作者 2017 被抓后社区分裂为多个 fork;Nox 至今仍是国产模拟器老大;这 4 款工具 10 年后仍是最常用的 Android 逆向 / 自动化组合。
