Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dexfinder — クロスプラットフォームのAPK/DEXメソッドファインダー:コールチェーントレーシング、ProGuard難読化解除、および隠しAPI検出機能 | Kitploit
ツール/GitHubGitHub/junelegency/dexfinder
Androidセキュリティ静的分析脆弱性分析コード分析リバースエンジニアリング情報収集DevSecOpsモバイルセキュリティバイナリ解析
GitHubjunelegency/dexfinder

dexfinder

クロスプラットフォームのAPK/DEXメソッドファインダー:コールチェーントレーシング、ProGuard難読化解除、および隠しAPI検出機能

9210215ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

dexfinder

English | 中文 | ウェブサイト dexfinder デモ


ウェブサイト: junelegency.github.io/dexfinder

クロスプラットフォームのAPK/DEXメソッド・フィールド参照ファインダーで、コールチェーントレース、ProGuard/R8の難読化解除、Android隠しAPI検出を備えています。

Androidのveridexツールに触発され、Goで再実装され、拡張機能(より高速なリフレクション検出、コールチェーントレース(veridexは1レベルのみ表示)、柔軟な出力形式)を備えています。

機能

  • APK/DEX/JARのスキャン — DEXバイトコードを解析し、すべてのメソッド/フィールド/文字列参照を抽出
  • マルチフォーマットクエリ — Java名、DEX/JNIシグネチャ、または単純なキーワードで検索
  • コールチェーントレース — 呼び出し元をNレベルまでトレース、マージツリーまたはフラットリスト、サイクル検出付き
  • ProGuard/R8の難読化解除 — mapping.txtを読み込み、難読化された名前と共に元の名前を表示
  • 隠しAPI検出 — hiddenapi-flags.csvを読み込み、ブロック/非サポートのAPIを検出
  • リフレクション検出 — クラス×文字列のクロスマッチによりリフレクションベースの隠しAPI使用を検出
  • 柔軟な出力 — text / json / model / html / sarif、ツリー/リストレイアウト、java / dex名前スタイル — すべて直交
  • カラーターミナル出力 — タグ、ツリーコネクタ、APIレベルに対して自動検出されたANSIカラー
  • APK差分 — 2つのAPK/DEXバージョンを比較し、追加/削除/変更されたAPI参照を検出
  • HTMLレポート — 折りたたみ可能なツリー、検索、ダークテーマを備えた自己完結型のインタラクティブHTML
  • SARIF出力 — GitHubコードスキャン、VS Code、CIパイプライン向けのSARIF 2.1.0
  • CI統合 — --fail-on blocked 制限付きAPIが見つかると非ゼロで終了
  • 設定ファイル — プロジェクトのデフォルト設定用 .dexfinder.yaml、CLIフラグで上書き
  • 外部依存関係ゼロ — Pure Go、自己完結型DEXパーサー
  • クロスプラットフォーム — macOS (Intel / Apple Silicon), Linux (amd64 / arm64), Windows

インストール

Homebrew (macOS / Linux):```bash brew install junelegency/tap/dexfinder

**スクリプト** (OS/アーキテクチャを自動検出):```bash
curl -sSL https://raw.githubusercontent.com/JuneLeGency/dexfinder/main/install.sh | bash

Go install:```bash go install github.com/JuneLeGency/dexfinder/cmd/dexfinder@latest

**バイナリ**: [Releases](https://github.com/JuneLeGency/dexfinder/releases)からダウンロード

## クイックスタート```bash
# Show APK overview
dexfinder --dex-file app.apk --stats

# Find all calls to getDeviceId (IMEI)
dexfinder --dex-file app.apk --query "getDeviceId"

# Trace call chains as merged tree
dexfinder --dex-file app.apk --query "getDeviceId" --trace

# Trace as flat call stacks (Java crash style)
dexfinder --dex-file app.apk --query "getDeviceId" --trace --layout list

# Exact JNI signature query
dexfinder --dex-file app.apk \
  --query "Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;" \
  --trace --depth 8

# Hidden API detection
dexfinder --dex-file app.apk --api-flags hiddenapi-flags.csv

クエリ形式

--queryフラグは複数の入力スタイルを受け付けます。dexfinderはそれらを自動検出して変換します。

形式例動作
単純な名前getDeviceIdすべてのAPIにおけるあいまい部分文字列一致
Javaクラスandroid.telephony.TelephonyManagerそのクラスのすべてのメソッド/フィールド
Javaクラス#メソッドandroid.telephony.TelephonyManager#getDeviceIdそのメソッドのすべてのオーバーロード
Java完全シグネチャ...TelephonyManager#getDeviceId()完全一致 + オーバーロードフォールバック
DEX/JNIシグネチャLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;完全一致のみ

All equivalent — find requestLocationUpdates in LocationManager:

dexfinder --dex-file app.apk --query "requestLocationUpdates" dexfinder --dex-file app.apk --query "android.location.LocationManager#requestLocationUpdates" dexfinder --dex-file app.apk --query "Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V"

## 出力制御

3つの独立した軸、自由に組み合わせ可能:```
--format  (text / json / model / html / sarif)    what to output
--layout  (tree / list)                           how to arrange traces
--style   (java / dex)                            how to display names
--color   (auto / always / never)                 terminal colors

--format

値説明
text色付きタグ付きのプレーンテキスト出力 (デフォルト)
jsonJSON — スキャン結果またはトレースをツリー/リストレイアウトで出力
model完全なMethodInfo/FieldInfo型を含む構造化JSON (IDE/CI向け)
html折りたたみ可能なツリーと検索機能を備えた自己完結型HTMLレポート
sarifSARIF 2.1.0 静的解析形式 (GitHub / VS Code)

--layout (used with --trace)

値説明
treeマージツリー — 共有呼び出しパスを1つのツリーにまとめたもの (デフォルト)
listフラットリスト — 各ユニークな呼び出しチェーンを独立したスタックとして表示

--style

値例使用例
javacom.example.Foo.method(Foo.java)人間可読 (デフォルト)
dexFoo.method(Ljava/lang/String;)V正確なシグネチャ解析

--scope (search scope)

検索対象の参照の種類を制御します。結果を理解する上で重要です。

値検索対象答えられる質問出力タグ
all呼び出し先API + フィールド + コード文字列「このAPIを誰が呼び出しているか?」(デフォルト)[METHOD] [FIELD] [STRING]
calleeinvoke-* / get/put 命令内のターゲットAPIシグネチャのみ「この特定のメソッド/フィールドを誰が呼び出しているか?」[METHOD] [FIELD]
caller呼び出し元メソッドのシグネチャのみ「このメソッドは内部で何を呼び出しているか?」[CALLER→]
stringconst-string 命令内の文字列定数「この文字列はコード内のどこで使用されているか?」[STRING]
string-tableコード文字列 + DEX文字列テーブル全体「この文字列はDEXのどこかに存在するか?」(注釈、デッドコードを含む)[STRING] [STRING_TABLE]
everything上記すべての組み合わせ完全な全体像すべてのタグ

callee と caller の理解:``` scope=callee: "Who calls finish()?" onCreate ──calls──→ finish() ← these callers are shown onResume ──calls──→ finish()

scope=caller: "What does finish() call internally?" finish() ──calls──→ Log.i() ← these callees are shown finish() ──calls──→ super.finish()

`--scope=all` (デフォルト) = `callee` + `string`。`caller`方向はデフォルトから意図的に除外されています。これは根本的に異なる質問に答えるためです。必要なときは明示的に `--scope=caller` または `--scope=everything` を使用してください。

**出力タグの理解:**

| タグ | 意味 |
|---|---|
| `[METHOD]` | クエリに一致する**呼び出されている**メソッド(calleeマッチ)。インデント行は呼び出し元。 |
| `[FIELD]` | クエリに一致する**アクセスされている**フィールド。インデント行はアクセス元。 |
| `[CALLER→]` | クエリに一致する**呼び出し元メソッド**。インデント行は呼び出しているAPIを示します。 |
| `[STRING]` | コード内の文字列定数がクエリに一致。インデント行はその使用箇所。 |
| `[STRING_TABLE]` | 文字列はDEX文字列テーブルに存在するが、コード内に`const-string`参照がない(アノテーション内、R8による最適化などが原因)。 |

## 使用例
ツールをダウンロード