工具

DexKit 混淆 DEX 代码检索库

以 C++ 实现的 DEX 解析库,提供 Kotlin 与 Java API,可加载 APK、DEX 字节数据或应用的类加载器,并按特征而非混淆后的名称查找类、方法和字段。匹配条件可组合包名范围、修饰符与原始访问标志、字段类型、参数类型和返回类型、注解、方法使用的字符串与数值常量以及其调用的方法;批量查询可依据字符串一次定位多个目标,查询结果还提供操作码、调用者、被调用方法和所用字段。其文档以让 Xposed Hook 点在混淆后的不同应用版本间保持可用为主要场景,同样的查询也可用来快速、可编程地检索应用字节码。

使用条件与局限

  • 审阅时最新版本为 2.3.0,发布于 2026-09-22,未附带文件;该版本新增读取数值字面量和匹配原始 DEX 访问标志的功能,并优化了缓存与字符串查询。所审阅的 master 提交(2026-10-10)比该标签多两个核心修复。软件包以 org.luckypray:dexkit 发布在 Maven Central;自 2.0 起构件 ID 由 DexKit 改为 dexkit。
  • Android 项目需要 JDK 11+、Kotlin 1.5+、AGP 4.2+ 和 minSdkVersion 21+,建议 23+,因为在较低设置下 libdexkit.so 可能因 APK 中的库被压缩而无法加载。自 1.1.0 起也可在 Windows、Linux 和 macOS 桌面上基于源码运行,需用 gcc 或 clang、CMake 以及 Ninja 或 Make 构建,Windows 上使用 MSYS2;CI 会在这三个平台上构建原生库。要查询的 APK、DEX 数据或类加载器由使用者提供;仓库中唯一的应用是项目自己的演示应用。
  • 文档将 DexKit 定位为面向 Xposed 模块开发者的工具,README 示例也运行在 Xposed Hook 中;本记录关注的是它对 DEX 代码的查询与检查功能。匹配结果取决于使用者编写的条件,因此只能找出候选的类和成员,而不能恢复原始名称。仓库包含使用 smali 测试样本的单元测试,但所审阅的工作流只构建原生库和软件包;本次审阅未构建或运行任何内容。
  • Core/ 以外的部分采用 Apache-2.0,Core/ 中的原生代码采用 LGPL-3.0,但 README 的许可证徽章只链接到 LGPL。README 列出 AOSP 的 slicer、ThreadPool 和 parallel-hashmap 作为第三方来源。用它分析的应用仍受各自条款约束,所审来源未确立与 REA 的关联。

关于此条目

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

来源复核于

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

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · LuckyPray/DexKit · 修订 f86a036
  2. doc-source/src/en/guide/home.md GitHub · LuckyPray/DexKit · 修订 f86a036
  3. doc-source/src/en/guide/quick-start.md GitHub · LuckyPray/DexKit · 修订 f86a036
  4. doc-source/src/en/guide/run-on-desktop.md GitHub · LuckyPray/DexKit · 修订 f86a036
  5. dexkit/src/main/java/org/luckypray/dexkit/DexKitBridge.kt GitHub · LuckyPray/DexKit · 修订 f86a036
  6. .github/workflows/build-native.yml GitHub · LuckyPray/DexKit · 修订 f86a036
  7. dexkit/src/test GitHub · LuckyPray/DexKit · 修订 f86a036
  8. LICENSE GitHub · LuckyPray/DexKit · 修订 f86a036
  9. Core/LICENSE GitHub · LuckyPray/DexKit · 修订 f86a036
  10. https://github.com/LuckyPray/DexKit/releases/tag/2.3.0

同分区更多条目:应用

应用分区全部 114 项资源