
New releaseSep 10, 2026
jadx-magic-strings v1.0.3-dev
DEXファイルと逆コンパイルされたAndroidコード内の文字列定数からメソッド名、クラス参照、ソースファイルパスを抽出するJADXプラグイン。
JADX Magic Strings Plugin
文字列定数から情報を抽出する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ラッパーを使用可:
./gradlew)
使用方法
JADX GUIでの使用
-
プラグインをインストール(上記のインストールセクションを参照)
-
JADX GUIを実行:
jadx-gui -
JADX GUIでAPK/DEXファイルを開く
-
逆コンパイルの完了を待つ(プラグインは逆コンパイル後に自動的に実行されます)
-
プラグインにアクセス:
- メニューバーのプラグインメニューに移動します
- **「Magic Strings: Show Results」**をクリックします
- 複数のタブを含むダイアログウィンドウが開きます:
- ソースファイル:検出されたソースファイルのパスとその参照を表示するツリービュー
- 上位候補 + ソースファイル:ソースファイルごとにグループ化された、最もスコアの高いメソッド候補の結合ビュー
- メソッド候補(フィルタリング済み):フィルタリングされたメソッド名候補を表示するテーブル
- すべての文字列:抽出されたすべての文字列定数を表示するテーブル

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
- Repository: jadx-magic-strings
- Email: [email protected]
ライセンス
このプラグインはApache License 2.0の下でライセンスされています。詳細についてはLICENSEファイルを参照してください。