Droid ASC:把 Android 反编译速度提升几个数量级的极速工具
Droid ASC:把 Android 反编译速度提升几个数量级的极速工具
功能与原则
Droid ASC 是一款超高速 Android APK 反编译前端,专为 AI Agent 和移动安全研究者设计。它彻底抛弃了传统反编译器”先建全局索引再查询”的沉重套路,转而把 APK 当成只读数据库直接查询——按需提取、毫秒级响应、无预处理延迟。其工程哲学是:编译器产物本身就是高度结构化的数据,与其花时间重建结构,不如直接利用既有结构。
认可度
GitHub Star 数 1,325(截至 2026-09-16),今日新增 +129,持续稳定在 GitHub Trending 榜单。在 Black Hat Europe Arsenal 2026 上有正式展示,被视作移动安全工具链的重大突破。
链接
GitHub:https://github.com/MG1937/ASC
原作者
GitHub 用户 @MG1937,专注于移动安全与逆向工程领域。
介绍
传统 Android 反编译工具(Jadx、JADX-GUI 等)在面对大型 APK 时,需要先将 DEX 文件全部解压、构建全局交叉引用索引、加载到内存——这个过程吃内存、耗时长,动辄数 GB RAM 和数十分钟等待,而最终目的不过是为了”之后的搜索能快一点”。Droid ASC 的核心洞察是:这个预处理完全是在绕弯路。编译产物(R8/D8 优化后的 DEX)本身就是高度结构化的数据,其内部的字符串池、方法引用表、常量池都有精确的物理布局。ASC 直接探测 Deflate bitstream、构建 Huffman 查表,以常量时间复杂度定位任意方法、字段、字符串引用,全程无需 inflate 全局索引。对 352MB 商业 APK 的实测:全局跨引用搜索 1.79 秒,目标类反编译 177 毫秒,内存占用仅 141MB。
特点
- 零预处理:把 APK 当只读数据库,无需全量解压和索引构建
- O(1) 方法定位:通过 R8 编译器常量重定位和指令去重特性,实现常数级方法解析
- 极低内存占用:仅需 141MB 即可完成大型 APK 分析(Jadx 动辄需要 4-8GB)
- 极速响应:177ms 完成单类反编译,1.79s 完成全 APK 跨引用搜索
- 专为 Agent 设计:CLI 输出结构化,便于 AI 自动化调用和工作流集成
使用方法
安装:
pip install droidasc
基础调用:
# GUI 界面
droidasc app.apk --gui
# 获取指定类(支持 ; 分隔和 . 分隔两种格式)
droidasc getclass app.apk Lcom/poc/Main; -o Main.java
droidasc getclass app.apk com.poc.Main --threads 16
# 提取 AndroidManifest.xml
droidasc getmanifest app.apk -o AndroidManifest.xml
# 全局字符串引用搜索
droidasc findrefs app.apk string token -o string_refs.txt
# 方法引用搜索(支持模糊类匹配)
droidasc findrefs app.apk method onCreate --class com.poc.Main
使用场景与人群
适用场景: 大型商业 APK 逆向分析、恶意软件快速定位关键类、持续集成中的自动化 APK 检测、移动安全 CTF 竞赛。
目标用户: 移动安全研究者、Android 逆向工程师、安全审计人员,以及需要大规模自动化分析 APK 的 AI Agent 工作流。
输入与输出案例
案例一:快速定位支付 SDK 关键类
droidasc getclass app.apk com.alipay.sdk
输出:直接在内存中重建并反编译目标类,生成 Java 源码,耗时 <200ms。
案例二:全局搜索包含敏感 API 调用的方法
droidasc findrefs app.apk method getInstance --class WXAPI
输出:列出所有调用 getInstance 的方法和所在的 DEX 文件路径,供进一步逆向分析。
GitHub: https://github.com/MG1937/ASC
评论区
登录后可评论。