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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ASC — コンパイル済みDEXアーティファクトを直接クエリし、前処理なしでミリ秒単位でクラスと相互参照を抽出する、高速なAndroid APKデコンパイラフロントエンド。 | Kitploit
ツール/GitHubGitHub/mg1937/asc
Androidセキュリティ静的分析コード分析動的コード分析 (DAST)モバイルアプリペンテストリバースエンジニアリングモバイルセキュリティユーティリティとフレームワークバイナリ解析
GitHubmg1937/asc

ASC

コンパイル済みDEXアーティファクトを直接クエリし、前処理なしでミリ秒単位でクラスと相互参照を抽出する、高速なAndroid APKデコンパイラフロントエンド。

2.1k287173日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Droid ASC: DeCompilerプリミティブとしてのR8コンパイラ最適化

https://blackhat.com/europe/arsenal/schedule/index.html#droid-asc-r8-compiler-optimization-as-a-decompiler-primitive-54834

巨大なAndroid APKを逆コンパイルする際、標準的な手順は待つことです。ツールがギガバイト単位のRAMを消費し、アーティファクトを完全に展開し、重いグローバルインデックスと相互参照の構築に数十分を費やすのを待ちます... これらはすべて、後で高速なコード検索を保証するためだけのものですが、ここに矛盾があります。コンパイル済みアーティファクトはすでに高度に構造化されているのに、現代の逆コンパイラはこれを活用せず、すでに構造化されたデータに対して肥大化したコード関係データベースを再構築するために、膨大な時間とメモリを浪費しています。このエンジニアリングアプローチは常識に反しています。APKから任意のコード関係をミリ秒で直接抽出できるのに、この前処理にまだ価値があるのでしょうか?

逆コンパイラを重い前処理に強制する代わりに、私たちはコンパイル済みアーティファクトをデータベースとして直接クエリすることを選択します。私たちは、オンデマンドでコードをミリ秒単位で抽出・検索する、ステートレスでゼロオーバーヘッドのエンジンを構築しました。このブリーフィングでは、従来のボトルネックを回避するために必要な基盤となるエンジニアリングを探求します。Deflateビットストリーム内で直接プローブすることで完全な展開を放棄し、密なHuffmanルックアップテーブルを構築して無関係なデータブロックに触れることなくコアメタデータを抽出する方法を実演します。さらに、R8コンパイラの最適化の詳細、特に決定論的な定数再配置と命令の重複排除が高度に集中した物理レイアウトを残す仕組みを説明し、このコンパイラの動作を武器化して電光石火のクロスDEXコード検索を実行します。これらの生のバイトコードオフセットをメソッドにマッピングするために、私たちはO(1)命令位置特定プリミティブを設計し、重いマッピングテーブルを構築することなく定数時間でのメソッド解決を実現しました。最後に、ターゲットに到達すると、Droid ASCは特定のバイトコードとその依存関係のみを抽出し、最小限で自己整合的なDEXをメモリ内で動的に再構築して即座に逆コンパイルします。

私たちはこのアーキテクチャを352MBの商用APKに対してライブで実演します。Droid ASCはグローバル相互参照検索を1.79秒で実行し、ターゲットクラスを177ミリ秒で逆コンパイルし、わずか141MBのRAMしか使用しません。アーティファクトを読み取り専用データベースとして扱い、ゼロ前処理で動作することで、私たちは逆コンパイラをその核心的な本質に戻します。それはもはや肥大化したインデックスツールではなく、コンパイル済みコードの分析方法を根本的に再定義する、電光石火のオンデマンド逆コンパイルエンジンです。

ベンチマーク

Benchmark

https://github.com/user-attachments/assets/4c4a6813-8561-490c-a573-ef113da861b6

インストール

# from PyPI
pip install droidasc

# or from source
pip install .

インストール後、droidasc CLIコマンドがグローバルで利用可能になります:

usage: droidasc [-h] {getclass,listclass,getmanifest,findrefs} ...

ASC tooling entry.

positional arguments:
  {getclass,listclass,getmanifest,findrefs}
    getclass            Locate the target class in APK, extract one DEX in memory, then decompile.
    listclass           List classes defined across all DEX entries in APK.
    getmanifest         Decode AndroidManifest.xml from APK and print it as XML.
    findrefs            Find code references for string/type/method/field across all DEX entries in APK.

options:
  -h, --help            show this help message and exit

examples:
  droidasc app.apk --gui
  droidasc getclass app.apk Lcom/poc/Main; -o Main.java
  droidasc getclass app.apk com.poc.Main --threads 16
  droidasc listclass app.apk -o classes.txt
  droidasc listclass app.apk --prefix com.poc
  droidasc getmanifest app.apk -o AndroidManifest.xml
  droidasc findrefs app.apk string token -o string_refs.txt
  droidasc findrefs app.apk type com.poc.Main
  droidasc findrefs app.apk method onCreate --class com.poc.Main
  droidasc findrefs app.apk method notify --class MainActivity --fuzzy-class -o method_refs.txt
  droidasc findrefs app.apk field apiKey -o field_refs.txt

listclassはAPK/DEXの定義順にDalvikクラス記述子を1行に1つずつ出力します。-oを指定すると、出力はstdoutではなく選択したファイルに書き込まれます。--prefix com.pocはLcom/pocでフィルタリングします。Lcom/pocのようにすでに正規化されたプレフィックスはそのまま保持されます。

以前と同様にpython main.pyも使用できます — 同じエントリポイントに委譲されます。

スポンサー

スポンサー金額
HTTChina5000¥
c01ns11.9¥
gguowang AND cococount2¥
Ylarod50.11¥

すべてのスポンサーの皆様のご支援に感謝いたします!

ASCは、皆様のリバースエンジニアリングワークフローの改善に真に役立つことを願って構築されています — 面倒な部分の高速化から、不可能を日常的に感じさせることまで。

謝辞

Droid ASCが使用するAndroidリバースエンジニアリングとDEX分析の基盤を提供してくださったAndroguardプロジェクトに感謝いたします。

ツールをダウンロード