工具

dex-oracle Dalvik 反混淆工具

基于模式匹配的 Dalvik 反混淆工具,可处理 APK、DEX 文件或 Smali 目录:先用 baksmali 反汇编,再由各插件在 Smali 代码中查找混淆模式。为得知匹配到的调用会返回什么(例如解密后的字符串),它把一个小型驱动程序合并进应用的 DEX,推送到已连接的 Android 设备或模拟器,并通过反射在设备上调用对应的静态方法;返回值以常量替换原调用,之后再重新组装 APK 或 DEX。插件涵盖简单字符串加密、按索引查找字符串和类、部分 DexGuard 模式以及部分反射调用;作者称它启发了另一个反混淆工具 Simplify。

目标
应用
类别
Android 工具
关联
基础工具
来源复核于

使用条件与局限

  • 项目已不再活跃:RubyGems 与 GitHub 上的最新发布版均为 1.0.5,发布于 2016-07-26;所审阅的 master 提交日期为 2018-12-13,已标注尚未发布的 1.0.6。可作为 Ruby gem 安装,或用 Bundler 从源码安装;仓库固定 Ruby 2.5.3,还需要 Java、adb,以及位于 PATH 中的 smali 和 baksmali,README 的安装示例使用 smali 2.2.5。
  • 输入为使用者自己的 APK、DEX 或 Smali 目录;由于匹配到的方法会真正在设备上执行,必须有正在运行的模拟器或已连接的 Android 5.0 及以上设备。README 推荐使用模拟器,并提醒所执行的代码可能有害;其故障排查部分则建议在驱动崩溃时改用 Android 4.4.2(API 19,ARM)。只能执行静态方法;若某个模式误匹配到并非混淆的代码,可单独禁用相应插件。
  • res 目录附带预编译的 driver.dex,以及工具用于合并 DEX 的 Android SDK dx.jar 副本;重新构建驱动需要 Gradle 和 SDK 中的 dx 工具。README 列出三个插件,而插件目录实际有六个,另含按索引查找字符串和类的插件以及一种按位运算字符串解密模式。
  • RSpec 测试使用极小的 hello-world APK、DEX 样例和 Smali 模式片段,曾通过使用 Ruby 2.5.3 的 Travis CI 配置运行;仓库没有 GitHub Actions 工作流,本次审阅未运行任何内容。
  • 采用 MIT 许可(见 LICENSE.txt 与 gemspec);dx.jar 和 smali 工具保留各自条款。所审来源未确立与 REA 的关联。

关于此条目

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

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

一手来源

  1. README.md GitHub · CalebFenton/dex-oracle · 修订 d6be172
  2. lib/dex-oracle/driver.rb GitHub · CalebFenton/dex-oracle · 修订 d6be172
  3. lib/dex-oracle/plugins GitHub · CalebFenton/dex-oracle · 修订 d6be172
  4. res GitHub · CalebFenton/dex-oracle · 修订 d6be172
  5. dex-oracle.gemspec GitHub · CalebFenton/dex-oracle · 修订 d6be172
  6. lib/dex-oracle/version.rb GitHub · CalebFenton/dex-oracle · 修订 d6be172
  7. .travis.yml GitHub · CalebFenton/dex-oracle · 修订 d6be172
  8. LICENSE.txt GitHub · CalebFenton/dex-oracle · 修订 d6be172
  9. https://rubygems.org/gems/dex-oracle/versions/1.0.5

同分区更多条目:应用

应用分区全部 116 项资源