Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pyjadx — Привязки Python для JADX. | Kitploit
Инструменты/GitHubGitHub/amruth-sn/pyjadx
Безопасность AndroidСтатический анализАнализ КодаОбратная инженерияМобильная безопасностьАнализ Бинарных Файлов
GitHubamruth-sn/pyjadx

pyjadx

Привязки Python для JADX.

Репозиторий
65 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

pyjadx

Привязки Python для JADX через JPype. Декомпилируйте Android APK и DEX файлы в Java исходный код из Python.

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-декопилятор с открытым исходным кодом. Он создает чистый Java/Kotlin код из Dalvik-байткода, сохраняя иерархию классов, дженерики, обработку исключений и аннотации. 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. Это позволяет вызывать любое API JADX, которое ещё не обёрнуто:

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-файлы в существующий classpath. Если нет — запускает новую JVM.

root@kitploit:~
import pyghidra
pyghidra.start()  # запускает JVM для Ghidra

import pyjadx
pyjadx.start()    # добавляет JADX JAR-файлы в существующую JVM — без конфликтов

Конфигурация

Пользовательская установка 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

Скачать инструмент
ПараметрОписание
pathПуть к APK или DEX файлу
threadsРазмер пула потоков JADX (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-исходник (ленивый, кэшируется)
smalistrДизассемблированный Smali (ленивый, кэшируется)
methodslist[JavaMethod]Методы этого класса
fieldslist[JavaField]Поля этого класса
inner_classeslist[JavaClass]Внутренние/анонимные классы
declaring_classJavaClass | NoneРодительский класс (если внутренний)
top_classJavaClassСамый внешний объемлющий класс
dependencieslist[JavaClass]Классы, от которых зависит этот класс
is_innerboolЯвляется ли класс внутренним
javaJObjectЛазейка к jadx.api.JavaClass
СвойствоТипОписание
namestrИмя метода
full_namestrПолное квалифицированное имя с классом
codestrДекомпилированный исходник (ленивый, кэшируется)
callerslist[JavaMethod]Методы, вызывающие этот (ленивый, кэшируется)
calleeslist[JavaMethod]Методы, которые вызываются из этого (ленивый, кэшируется)
override_relatedlist[JavaMethod]Двунаправленная цепочка переопределений
declaring_classJavaClassКласс, которому принадлежит метод
javaJObjectЛазейка к jadx.api.JavaMethod
СвойствоТипОписание
namestrИмя поля
full_namestrПолное квалифицированное имя с классом
typestrТип поля в виде строки
callerslist[JavaMethod]Методы, ссылающиеся на это поле (ленивый, кэшируется)
declaring_classJavaClassКласс, которому принадлежит поле
javaJObjectЛазейка к jadx.api.JavaField
СвойствоТипОписание
namestrПолное имя пакета
classeslist[JavaClass]Классы в этом пакете
sub_packageslist[JavaPackage]Подпакеты
javaJObjectЛазейка к jadx.api.JavaPackage