Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pyjadx — Enlaces de Python para JADX. | Kitploit
Herramientas/GitHubGitHub/amruth-sn/pyjadx
Seguridad AndroidAnálisis EstáticoAnálisis de CódigoIngeniería InversaSeguridad MóvilAnálisis de Binarios
GitHubamruth-sn/pyjadx

pyjadx

Enlaces de Python para JADX.

Ver Repositorio
6hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

pyjadx

Enlaces de Python para JADX a través de JPype. Descompila archivos APK y DEX de Android a código fuente Java desde 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)

¿Por qué pyjadx?

JADX es el descompilador de Android de código abierto líder: produce código fuente Java/Kotlin limpio a partir del bytecode Dalvik, preservando jerarquías de clases, genéricos, manejo de excepciones y anotaciones. pyjadx trae esto a Python sin la sobrecarga de subprocesos: JADX se ejecuta en proceso a través de JPype.

Instalación

root@kitploit:~
pip install pyjadx

Requisitos: JDK 11+ (los JARs de JADX se descargan automáticamente en el primer uso).

Inicio rápido

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")

Entradas admitidas

FormatoEjemplo
APKJadx("app.apk")
DEXJadx("classes.dex")
APK multi-DEXManejado de forma transparente: todas las clases se fusionan

Referencia de la API

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

Punto de entrada principal. Úsalo como administrador de contexto o llama a load()/close() manualmente.

Propiedades:

Métodos:

JavaClass

JavaMethod

JavaField

JavaPackage

Vía de escape

Cada envoltorio expone su objeto Java JADX subyacente a través de .java. Esto te permite llamar a cualquier API de JADX que aún no hayamos envuelto:

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()

Coexistencia de JVM

pyjadx coexiste con otros consumidores de JPype (p. ej., PyGhidra) en el mismo proceso. Si una JVM ya está en ejecución, pyjadx.start() añade los JARs de JADX al classpath existente. Si no, inicia una.

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

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

Configuración

Instalación personalizada de JADX:

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

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

Caché de JARs: Los JARs de JADX se descargan automáticamente desde Maven Central en el primer uso y se guardan en caché en ~/.pyjadx/jars/<version>/.

Licencia

MIT

Descargar herramienta
ParámetroDescripción
pathRuta al archivo APK o DEX
threadsTamaño del grupo de hilos de JADX (None = número de CPU)
mode"auto", "restructure", "simple" o "fallback"
code_cacheFalse = caché en memoria (predeterminado), True = respaldado por disco
PropiedadTipoDescripción
classeslist[JavaClass]Clases de nivel superior en todos los archivos DEX
packageslist[JavaPackage]Navegación a nivel de paquete
class_countintNúmero de clases de nivel superior
javaJObjectVía de escape al jadx.api.JadxDecompiler subyacente
MétodoDescripción
load()Cargar y resolver clases (llamado por __enter__)
close()Liberar recursos (llamado por __exit__)
decompile_all()Descompilar todas las clases de manera ansiosa
search_class(name)Encontrar clase por nombre completamente calificado
PropiedadTipoDescripción
namestrNombre corto ("MainActivity")
full_namestrCompletamente calificado ("com.example.MainActivity")
packagestrNombre del paquete
codestrCódigo fuente Java descompilado (perezoso, en caché)
smalistrDesensamblado Smali (perezoso, en caché)
methodslist[JavaMethod]Métodos en esta clase
fieldslist[JavaField]Campos en esta clase
inner_classeslist[JavaClass]Clases internas/anónimas
declaring_classJavaClass | NoneClase padre (si es interna)
top_classJavaClassClase contenedora más externa
dependencieslist[JavaClass]Clases de las que depende esta clase
is_innerboolSi esta es una clase interna
javaJObjectVía de escape a jadx.api.JavaClass
PropiedadTipoDescripción
namestrNombre del método
full_namestrCompletamente calificado con clase
codestrCódigo fuente descompilado (perezoso, en caché)
callerslist[JavaMethod]Métodos que llaman a este (perezoso, en caché)
calleeslist[JavaMethod]Métodos a los que llama este (perezoso, en caché)
override_relatedlist[JavaMethod]Cadena de sobrescritura bidireccional
declaring_classJavaClassClase a la que pertenece este método
javaJObjectVía de escape a jadx.api.JavaMethod
PropiedadTipoDescripción
namestrNombre del campo
full_namestrCompletamente calificado con clase
typestrTipo de campo como cadena
callerslist[JavaMethod]Métodos que referencian este campo (perezoso, en caché)
declaring_classJavaClassClase a la que pertenece este campo
javaJObjectVía de escape a jadx.api.JavaField
PropiedadTipoDescripción
namestrNombre completo del paquete
classeslist[JavaClass]Clases en este paquete
sub_packageslist[JavaPackage]Subpaquetes
javaJObjectVía de escape a jadx.api.JavaPackage