
新发布Sep 10, 2026
jadx-magic-strings v1.0.3-dev
一款 JADX 插件,可从 DEX 文件和反编译的 Android 代码中的字符串常量里提取方法名、类引用和源文件路径。
JADX Magic Strings 插件
一个从字符串常量中提取信息的 JADX 插件。
功能
该插件从反编译代码中提取并分析字符串常量,以发现:
- 源文件引用:检测字符串常量中对 Java/Kotlin 源文件(
.java、.kt、.kts、.scala、.groovy)的引用 - 方法名候选:使用正则表达式模式从字符串中识别潜在的方法名
- 字符串分析:收集所有字符串常量及其关联的方法和类
安装
选项 1:从 GitHub 安装(推荐)
如果此插件已发布到 GitHub,你可以直接安装:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
选项 2:从源码构建并安装
-
克隆仓库:
git clone https://github.com/0rshemesh/jadx-magic-strings.git cd jadx-magic-strings -
构建插件:
./gradlew build -
安装插件:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar或者手动将 JAR 复制到 JADX 插件目录:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/ - Windows:
%APPDATA%\jadx\plugins\dropins\
- Linux/Mac:
构建插件
插件可以独立构建:
./gradlew build
插件 JAR 将生成于:
build/libs/jadx-magic-strings-1.0.1.jar
要求:
- Java 11 或更高版本
- Gradle(或使用随附的 Gradle wrapper:
./gradlew)
使用方法
在 JADX GUI 中
-
安装插件(参见上方「安装」部分)
-
运行 JADX GUI:
jadx-gui -
在 JADX GUI 中打开你的 APK/DEX 文件
-
等待反编译完成(插件会在反编译后自动运行)
-
访问插件:
- 在菜单栏中转到**「插件」(Plugins)**菜单
- 点击 "Magic Strings: Show Results"
- 将打开一个包含多个选项卡的对话框窗口:
- 源文件(Source Files):树状视图,显示检测到的源文件路径及其引用
- 顶级候选 + 源文件(Top Candidates + Source Files):按源文件分组的高分方法候选组合视图
- 方法候选(已过滤)(Method Candidates (Filtered)):表格,显示过滤后的方法名候选
- 全部字符串(All Strings):表格,显示所有提取的字符串常量

在 JADX CLI 中
插件会在反编译期间自动运行,但没有用于查看结果的 CLI 界面。请使用 GUI 查看提取的信息。
工作原理
- 反编译完成后,插件会扫描所有类中的所有方法
- 提取字符串常量:从指令节点(CONST_STR 指令)中提取
- 分析字符串,使用以下正则表达式模式:
- 源文件:匹配以
.java、.kt等结尾的文件路径 - 方法名:匹配类似方法名的驼峰式命名模式
- 源文件:匹配以
- 将结果存储到可通过 GUI 访问的数据结构中
示例用例
- 逆向工程:查找可能揭示项目结构的原始源文件名
- 反混淆:从调试字符串或错误消息中识别方法名
- 代码分析:理解字符串与方法之间的关系
- 恶意软件分析:提取可能指示功能的有趣字符串
局限性
- 插件仅在反编译完成后才会运行
- 字符串提取取决于被反编译的代码(某些混淆代码可能没有可访问的字符串)
- 方法名检测使用启发式规则,可能产生误报
- 源文件检测依赖于包含文件路径的字符串(并非始终存在)
故障排查
插件未出现在菜单中:
- 确保插件已正确安装
- 检查插件 JAR 是否在插件目录中
- 验证服务文件是否存在:
META-INF/services/jadx.api.plugins.JadxPlugin - 确保你使用的是兼容的 JADX 版本(1.5.2 及以上)
未显示结果:
- 代码可能不包含相关字符串
- 尝试反编译其他 APK/DEX 文件
- 某些混淆代码可能没有可提取的字符串
构建错误:
- 确保你使用的是 Java 11 或更高版本
- 运行
./gradlew clean build重新构建所有内容 - 检查
build.gradle.kts中的 JADX 版本是否与 Maven Central 上可用的版本匹配
作者
由 0rshemesh 创建并维护。
- GitHub:@0rshemesh
- 仓库:jadx-magic-strings
- 邮箱:[email protected]
许可证
本插件采用 Apache License 2.0 许可证。详情请参阅 LICENSE 文件。