Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyjadx — JADXのPythonバインディング。 | Kitploit
ツール/GitHubGitHub/amruth-sn/pyjadx
Androidセキュリティ静的分析コード分析リバースエンジニアリングモバイルセキュリティバイナリ解析
GitHubamruth-sn/pyjadx

pyjadx

JADXのPythonバインディング。

リポジトリを見る
65ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

pyjadx

JPypeを介したJADXのPythonバインディング。PythonからAndroid APKおよびDEXファイルをJavaソースに逆コンパイルします。

root@kitploit:~
from pyjadx import Jadx

with Jadx("app.apk") as jadx:
    for cls in jadx.classes:
        print(cls.full_name)
        print(cls.code)

pyjadx を使う理由

JADXは主要なオープンソースAndroidデコンパイラであり、DalvikバイトコードからクリーンなJava/Kotlinソースを生成し、クラス階層、ジェネリクス、例外処理、アノテーションを保持します。pyjadxはこれをサブプロセスオーバーヘッドなしでPythonにもたらします。JADXはJPypeを介してインプロセスで実行されます。

インストール

root@kitploit:~
pip install pyjadx

要件: JDK 11以上(JADX JARは初回使用時に自動的にダウンロードされます)。

クイックスタート

root@kitploit:~
from pyjadx import Jadx

with Jadx("app.apk") as jadx:
    # All top-level classes (inner classes via cls.inner_classes)
    for cls in jadx.classes:
        print(cls.full_name, len(cls.methods), "methods")

    # Search by fully qualified name
    main = jadx.search_class("com.example.MainActivity")
    if main:
        print(main.code)

    # Method-level decompilation
    for method in main.methods:
        print(f"{method.name}: {method.code}")

    # Cross-references
    for method in main.methods:
        print(f"{method.name} called by: {[c.name for c in method.callers]}")

    # Package navigation
    for pkg in jadx.packages:
        print(pkg.name, len(pkg.classes), "classes")

対応入力形式

形式例
APKJadx("app.apk")
DEXJadx("classes.dex")
Multi-DEX APK透過的に処理 — すべてのクラスがマージされます

APIリファレンス

Jadx(path, *, threads=None, mode="auto", code_cache=False)

メインエントリポイント。コンテキストマネージャとして使用するか、手動でload()/close()を呼び出します。

プロパティ:

メソッド:

JavaClass

JavaMethod

JavaField

JavaPackage

エスケープハッチ

すべてのラッパーは、.javaを介して基盤となるJADX Javaオブジェクトを公開します。これにより、まだラップされていないJADX APIを呼び出すことができます。

root@kitploit:~
with Jadx("app.apk") as jadx:
    cls = jadx.search_class("com.example.Foo")
    # Call JADX Java API directly
    code_info = cls.java.getCodeInfo()

JVM共存

pyjadxは同じプロセス内で他のJPypeコンシューマ(例:PyGhidra)と共存します。JVMがすでに実行中の場合は、pyjadx.start()が既存のクラスパスにJADX JARを追加します。そうでない場合は、新しいJVMを起動します。

root@kitploit:~
import pyghidra
pyghidra.start()  # starts JVM for Ghidra

import pyjadx
pyjadx.start()    # adds JADX JARs to existing JVM — no conflict

設定

カスタムJADXインストール:

root@kitploit:~
# Via environment variable
# export JADX_HOME=/opt/jadx

# Or at runtime
import pyjadx
pyjadx.start(jadx_home="/opt/jadx")

JARキャッシュ: JADX JARは初回使用時にMaven Centralから自動ダウンロードされ、~/.pyjadx/jars/<version>/にキャッシュされます。

ライセンス

MIT

ツールをダウンロード
パラメータ説明
pathAPKまたはDEXファイルへのパス
threadsJADXスレッドプールサイズ(None = CPUコア数)
mode"auto", "restructure", "simple", または "fallback"
code_cacheFalse = インメモリキャッシュ(デフォルト)、True = ディスクバックアップ
プロパティ型説明
classeslist[JavaClass]すべてのDEXファイルにわたるトップレベルのクラス
packageslist[JavaPackage]パッケージレベルのナビゲーション
class_countintトップレベルのクラス数
javaJObject基盤となるjadx.api.JadxDecompilerへのエスケープハッチ
メソッド説明
load()クラスをロードして解決(__enter__によって呼び出される)
close()リソースを解放(__exit__によって呼び出される)
decompile_all()すべてのクラスを積極的に逆コンパイル
search_class(name)完全修飾名でクラスを検索
プロパティ型説明
namestr短い名前("MainActivity")
full_namestr完全修飾名("com.example.MainActivity")
packagestrパッケージ名
codestr逆コンパイルされたJavaソース(遅延、キャッシュ)
smalistrSmali逆アセンブリ(遅延、キャッシュ)
methodslist[JavaMethod]このクラスのメソッド
fieldslist[JavaField]このクラスのフィールド
inner_classeslist[JavaClass]内部/匿名クラス
declaring_classJavaClass | None親クラス(内部クラスの場合)
top_classJavaClass最も外側のエンクロージングクラス
dependencieslist[JavaClass]このクラスが依存するクラス
is_innerbool内部クラスであるかどうか
javaJObjectjadx.api.JavaClassへのエスケープハッチ
プロパティ型説明
namestrメソッド名
full_namestrクラスを含む完全修飾名
codestr逆コンパイルされたソース(遅延、キャッシュ)
callerslist[JavaMethod]このメソッドを呼び出すメソッド(遅延、キャッシュ)
calleeslist[JavaMethod]このメソッドが呼び出すメソッド(遅延、キャッシュ)
override_relatedlist[JavaMethod]双方向のオーバーライドチェーン
declaring_classJavaClassこのメソッドが属するクラス
javaJObjectjadx.api.JavaMethodへのエスケープハッチ
プロパティ型説明
namestrフィールド名
full_namestrクラスを含む完全修飾名
typestrフィールド型(文字列)
callerslist[JavaMethod]このフィールドを参照するメソッド(遅延、キャッシュ)
declaring_classJavaClassこのフィールドが属するクラス
javaJObjectjadx.api.JavaFieldへのエスケープハッチ
プロパティ型説明
namestr完全なパッケージ名
classeslist[JavaClass]このパッケージのクラス
sub_packageslist[JavaPackage]サブパッケージ
javaJObjectjadx.api.JavaPackageへのエスケープハッチ