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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ddc — DEX → Rust製Javaデコンパイラ — 高速、段階的解析、バイリンガルCLI | Kitploit
ツール/GitHubGitHub/ejfkdev/ddc
Androidセキュリティ静的分析コード分析動的コード分析 (DAST)モバイルアプリペンテストリバースエンジニアリングモバイルセキュリティユーティリティとフレームワークバイナリ解析
GitHubejfkdev/ddc

ddc

DEX → Rust製Javaデコンパイラ — 高速、段階的解析、バイリンガルCLI

32554331日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

ddc — Rust による DEX → Java デコンパイラ

English | 简体中文

CI License: MIT

ddc は Android DEX バイトコードを読みやすい Java にデコンパイルします — 実アプリ規模で、データベースのようにクエリ可能で、javac で検証済み: 7 つの実アプリ APK にわたって出力される 909,689 ファイルすべてが クリーンにパースされます。

ハイライト

  • 高速 — 226 MB / 20-dex の APK (weibo、98k クラス) を完全に デコンパイルするのに 5.0 秒、398 MB のバンドル (Lark) は 5.5 秒; 病的なクラスは実行をハングさせる代わりに、期限付きの監視スレッド上で 実行されます。
  • コンパイル可能 — 7 つのベンチマーク APK すべての完全な出力 (reqable、Telegram、WhatsApp、weibo、weixin、qq、lark — 0.91M ファイル) が javac を 構文エラーゼロ で通過します; 大文字小文字 違いの名前ペア (X/Cua と X/cua) の各クラスは、最後のものが黙って 上書きするのではなく、それぞれ独自のファイルとして保持されます。
  • 段階的デコンパイル — 20 以上のクエリサブコマンド (strings、 クロスリファレンス、階層、manifest、リソース、メソッド単位の デコンパイル) がミリ秒で応答します: まずメタデータをクエリし、 オンデマンドでデコンパイルし、完全な実行を丸ごとスキップできます。
  • DEX 035–041、完全対応 — マルチ dex APK、XAPK/APKS/APKM コンテナ、invoke-custom; ラムダと文字列連結は実際の Java に 折り畳まれます ((a) -> …、Cls::name、a + b)。
  • 読みやすい出力 — v12 の代わりに jadx スタイルのローカル名 (str、getName() → name、Kotlin Intrinsics パラメータ文字列); IntDef リテラルはそのまま定数としてレンダリングされます (setVisibility(8) → View.GONE; 組み込みの android-37 ドメイン テーブル、--symbols で上書き可能); Kotlin の null チェックノイズは 省略され、合成 access$NNN ブリッジは呼び出し箇所にインライン化 されます。
  • 再現可能な出力 — タイムスタンプなし; 2 回の実行がクリーンに 差分比較できます。
  • バイリンガル CLI — メッセージは自動的にローカライズされます (DDC_LANG=zh|en で強制; 英語フォールバック)。
  • jdc-core 上に構築されており、 jcdc と共有される マシン中立コアです。

インストール

macOS (Homebrew):

brew install ejfkdev/tap/ddc

Windows (Scoop) — バケットを一度追加し、名前でインストールします (scoop は裸の user/repo/app 形式を解決しません — issue #3):

scoop bucket add ejfkdev https://github.com/ejfkdev/scoop-bucket
scoop install ddc

# or install straight from the manifest URL, no bucket needed:
scoop install https://raw.githubusercontent.com/ejfkdev/scoop-bucket/main/bucket/ddc.json

cargo-binstall (任意のプラットフォーム — コンパイルせずに ビルド済みリリースバイナリを取得):

cargo binstall ddc-cli

バイナリ: すべての リリース は linux-amd64、linux-arm64、windows-amd64、windows-arm64、 macos-amd64、macos-arm64 用の生バイナリ (アーカイブなし) を 同梱しています — 非 macOS ビルドは UPX 圧縮されています。

ソースから (Rust stable):

git clone https://github.com/ejfkdev/ddc && cd ddc
cargo build --release

使い方

ddc app.apk                          # full decompile → app-out/
ddc app.apk -c com.example.Foo       # one class to stdout
ddc app.apk -o - | less              # everything to stdout

ddc info app.apk                      # app context (label via arsc, package,
                                      # version, md5) + per-dex counts
ddc mainactivity app.apk             # entry point: package + launcher
ddc findrefs app.apk string token    # every const-string "token" site
ddc getmethod app.apk Foo.toString   # one method, all overloads
ddc pkg app.apk --app -o own/        # the app's own code only

完全なオプションと例: ddc --help (ワークフロー別にグループ化された サブコマンドメニュー)。完全なリファレンス — すべてのオプションの セマンティクス、すべてのサブコマンドの出力形式と動作 — は docs/cli.md (中文) にあります。

パフォーマンス

7 つの実アプリ APK、リリースビルド、3 回実行の平均 (Apple Silicon、6P+12E)。39-APK 検証コーパス (4.08M デコンパイル ファイル、APK ごとの実時間 / ピーク RSS / javac パースゲート) は docs/validation.md (中文) にあります。

完全デコンパイル — 7 つの実アプリ APK
APKサイズ完全デコンパイルピーク RSS
reqable34 MB0.25s139 MB
Telegram62 MB5.64s1479 MB
WhatsApp139 MB5.87s (99,277 ファイル — 大文字小文字違いのクラスペアをすべて保持)1116 MB
weibo226 MB5.03s1172 MB
weixin268 MB11.61s1339 MB
lark398 MB5.52s1831 MB
qq374 MB15.92s2459 MB

同じ APK に対するクエリサブコマンド (セル: 時間 / ピーク RSS; strings -f <package> --with-locations、パッケージ文字列とメソッド onCreate に対する findrefs、各アプリのランチャークラスに対する hierarchy/disasm/getclass):

クエリサブコマンド — 13 コマンド × 7 APK
CommandreqableTelegramWhatsAppweiboweixinlarkqq
info0.12s / 40MB0.21s / 88MB0.42s / 305MB0.65s / 610MB0.79s / 550MB1.10s / 907MB1.08s / 1240MB
listclasses0.04s / 21MB0.06s / 84MB0.08s / 93MB0.13s / 396MB0.21s / 417MB0.20s / 299MB0.27s / 391MB
manifest0.03s / 7MB0.03s / 14MB0.02s / 20MB0.03s / 43MB0.04s / 31MB0.03s / 28MB0.03s / 47MB
mainactivity0.04s / 24MB0.06s / 86MB0.08s / 224MB0.10s / 358MB0.13s / 371MB0.14s / 421MB0.21s / 554MB
res0.02s / 7MB0.03s / 15MB0.03s / 22MB0.05s / 60MB0.04s / 32MB0.04s / 31MB0.05s / 53MB
largest0.05s / 29MB0.08s / 78MB0.15s / 236MB0.31s / 500MB0.32s / 500MB0.46s / 676MB0.66s / 810MB
strings0.05s / 24MB0.10s / 85MB0.21s / 222MB0.39s / 354MB0.45s / 395MB0.52s / 431MB0.81s / 551MB
findrefs-string0.04s / 26MB0.05s / 70MB0.06s / 214MB0.10s / 403MB0.12s / 446MB0.07s / 335MB0.14s / 871MB
findrefs-method0.05s / 26MB0.07s / 70MB0.07s / 219MB0.09s / 410MB0.10s / 458MB0.10s / 620MB0.15s / 896MB
members0.07s / 23MB0.21s / 86MB0.62s / 222MB1.32s / 366MB1.17s / 381MB1.64s / 443MB2.66s / 572MB
hierarchy0.04s / 24MB0.05s / 86MB0.09s / 212MB0.12s / 396MB0.14s / 386MB0.17s / 429MB0.22s / 548MB
disasm0.04s / 23MB0.07s / 88MB0.09s / 214MB0.12s / 371MB0.13s / 392MB0.16s / 422MB0.20s / 533MB
getclass0.05s / 34MB0.28s / 182MB0.14s / 357MB0.33s / 740MB0.37s / 942MB0.50s / 1235MB0.76s / 1651MB

ドキュメント

アーキテクチャクレート、lift/structure/emit パイプライン、DEX バージョン、invoke-custom (中文)
CLI リファレンスすべてのオプションとサブコマンドの詳細 (中文)
サブコマンド段階的解析リファレンス (中文)
ベンチマークタイミング、メモリ、方法論、ASC 比較 (中文)
パフォーマンスエンジニアリング5分 → 6秒: 6 ラウンド、計測された行き止まり (中文)
コーパス検証39 の実 APK、4.08M ファイル、javac パースクリーン、発見・修正されたバグ (中文)

既知の制限

消去された型 (DEX には Signature がない); d8 で desugar された -$$Lambda$ クラスは別ファイルのまま; いくつかの R8 モンスター メソッドはタイムアウトにより劣化します (また、期限で切り詰められた 少数のものは実行間で変動する可能性があります); pattern-switch は desugar されたディスパッチチェーンとしてレンダリングされます。 上記の javac ゲートは構文ゲートです — 意味論的な診断 (Android クラスパスの欠如、およびまれにレジスタを多用するモンスターメソッド における型が混同されたローカル) は出力に残ります。詳細: architecture。

テスト

cargo test    # 56 tests

ライセンス

MIT © ejfkdev

简体中文 · 友情链接 https://linux.do
ツールをダウンロード