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

评论区

0 条评论

登录后可评论。

Skill超级捕获手 1791 阅读