工具

Droid ASC Android 反编译器

用 Python 编写的 Android 反编译器,直接对 APK 执行查询,而不必先解包并建立索引。它在压缩的 DEX 条目中就地探测数据,利用 R8 编译器的常量重定位和指令去重所留下的布局,跨 DEX 文件搜索字符串、类型、方法和字段引用;对指定的类,则在内存中重建一个最小且自洽的 DEX,再由内置的 Androguard 反编译器副本转换为 Java 代码。droidasc 命令行和 Tk 图形界面可列出类、反编译单个类、解码 AndroidManifest.xml,并查找子类或接口实现;README 将其定位为供智能体批量分析 APK 的轻量后端。

使用条件与局限

  • 审阅时最新版本为 dev-0.1.2-post2,发布于 2026-10-14,未附二进制文件,与 PyPI 上的 droidasc 0.1.2.post2 一致;所审阅的 main 提交只多了两条 README 说明。项目始于 2026 年 6 月。README 现称它已按 1:1 方式用 Rust 重写为独立的 rust_ASC 仓库,后者增加了整 APK 反编译,今后两者将同步更新;本次未审阅 rust_ASC 以及所链接的 Black Hat Europe Arsenal 页面。
  • 可通过 pip install droidasc 或从源码安装。pyproject.toml 要求 Python 3.10+,依赖 axml 和 mutf8;CI 在 Ubuntu 上以 Python 3.11 和 3.12 运行单元、集成和图形界面测试,并拦截性能回退。APK 和 DEX 输入由使用者提供;README 基准测试所用的 APK 不在仓库中,测试夹具中的 DEX 只包含 AndroidX、Kotlin 和 Material Components 库的类。
  • 速度和内存数据均为作者自报:README 称在 Telegram X、WhatsApp、Grab 和 Lark 四个 59–352 MB 的 APK 上以 10 个线程运行时,字符串引用搜索比 JADX 快 62–302 倍,单类反编译快 38–304 倍,内存占用为 36–141 MB,并称 JADX 在最大的目标上内存不足。Java 输出由内置的 Androguard 反编译器生成,每次处理一个类。README 面向智能体工作流,但未介绍 MCP 服务器;智能体需调用命令行或 Python 包。
  • 采用 Apache-2.0 许可;内置的 dadguard 包含 Androguard 代码,后者同样采用 Apache-2.0。反编译得到的代码仍归应用权利人所有。本次未安装或运行任何组件,也未分析任何 APK。

关于此条目

类型
工具
类别
Android 工具
关联
基础工具
目标
应用

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · MG1937/ASC · 修订 60033d1
  2. README.md#L1-L13 GitHub · MG1937/ASC · 修订 60033d1
  3. README.md#L15-L66 GitHub · MG1937/ASC · 修订 60033d1
  4. pyproject.toml GitHub · MG1937/ASC · 修订 60033d1
  5. tests/TESTING.md GitHub · MG1937/ASC · 修订 60033d1
  6. .github/workflows/tests.yml GitHub · MG1937/ASC · 修订 60033d1
  7. dadguard/__init__.py GitHub · MG1937/ASC · 修订 60033d1
  8. LICENSE GitHub · MG1937/ASC · 修订 60033d1
  9. https://github.com/MG1937/ASC/releases/tag/dev-0.1.2-post2
  10. https://pypi.org/project/droidasc/0.1.2.post2/