Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
javajive — Descompilador de Java y operador de serialización en Go puro | Kitploit
Herramientas/GitHubGitHub/yaklang/javajive
Análisis EstáticoAnálisis de CódigoIngeniería InversaScripting y AutomatizaciónAnálisis de MalwareUtilidades y FrameworksAnálisis de Binarios
GitHubyaklang/javajive

javajive

Descompilador de Java y operador de serialización en Go puro

Ver Repositorio
276109hace 4h 19mRevisado por Kitploit
Sitio web

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

JavaJive — Kit de herramientas Java en Go puro: descompilar, analizar clases, serialización

JavaJive

CI Pages Go Reference License: MIT

English | 简体中文 | Sitio web

Un kit de herramientas Java portátil y en Go puro — extraído y recortado de yaklang — centrado en cuatro cosas:

  • Descompilar — .class / .jar / .war / .zip → código fuente Java legible.
  • Traducir DEX — .dex / .apk nativos → .jar determinista, o directamente a código fuente Java legible, sin invocar una herramienta externa dex2jar.
  • Analizar clases — inspeccionar la estructura de un archivo .class (pool de constantes, campos, métodos, versión, flags de acceso).
  • (De)serializar — analizar y reensamblar el formato de cable de la serialización Java (ObjectStream) con fidelidad de bytes, y convertirlo hacia/desde JSON.

Diseñado para portabilidad e integración:

  • Go puro, binario único — sin JDK, sin cgo, sin runtime de ANTLR, sin bibliotecas nativas. Compilación cruzada para linux / macOS / windows en amd64 y arm64.
  • Una sola importación — un paquete fachada unificado javajive envuelve las cuatro capacidades; los subpaquetes siguen disponibles para uso avanzado.
  • CLI de primera clase — subcomandos decompile, dex2jar, classinfo y serial, construidos sobre la biblioteca estándar.
  • Probado de forma cruzada contra un JDK real — CI compila .class / .jar reales y blobs serializados por el JDK con javac/java, y luego verifica JavaJive contra ellos (véase HARNESS-WORKFLOW.md).
  • Grafo de dependencias recortado — utils / codec / log / go-funk están reimplementados como un núcleo internal/ mínimo y autocontenido.

Validación de v0.4.0

La completa auditoría diferencial de 38 JAR registra cero regresiones frente a la línea base fija: los 20 JAR que antes compilaban limpiamente se conservan y 26 ahora compilan por completo. Los defectos de la línea base y 4 stubs de métodos existentes siguen visibles. Véase los resultados por JAR y reproducción.

250 idas y vueltas semánticas aisladas registran por separado la compilación, la verificación de la JVM, los stubs y la igualdad en tiempo de ejecución; las clases originales de la aplicación están ausentes de los classpaths reconstruidos. CI ejecuta la auditoría semántica en JDK 17 y 21, la comparación histórica completa, y las matrices de SO/Go y de condiciones de carrera. Estas comprobaciones no demuestran la equivalencia de todos los métodos de las bibliotecas. Véase la implementación y los límites restantes.

Benchmarks históricos (v0.3.0)

Las siguientes cifras se reportaron para v0.3.0 el 2026-09-05. No son resultados de aceptación de la versión actual ni prueba de equivalencia de comportamiento.

Medido en 34 jars del mundo real (18,759 unidades aplanadas) mediante descompilar → recompilar con javac --release 8 → reempaquetar → verificar con la JVM:

  • Tasa de unidades 100% limpias — 18,759 / 18,759 unidades aplanadas (Outer$Inner.java) recompilan con cero errores de javac, y 0 errores de sintaxis en los 34 jars (una aserción estricta aplicada por CI, de modo que ningún error de tipo puede ocultarse tras un fallo del lexer).
  • Las 34 bibliotecas completan el ciclo completo — descompilar → recompilar → reempaquetar → la verificación externa por clase -Xverify:all de la JVM pasa de extremo a extremo (el códec es idéntico byte a byte al jar original bajo un diferencial de llamadas). Fijado en provenClean.
  • 14 / 14 algoritmos autoalojados (MD5 · SHA-256 · CRC32 · quicksort · Base64 · HeapSort · KMP · SwitchFSM · TryFinally · UnionFind · DiamondTryCatch · DiamondTryFinally · ForContinue · ComputeIfAbsent) completan el ciclo byte a byte.
  • N.º 1 en una comparación justa de 3 vías sobre el conjunto original de 8 jars — tasa de unidades limpias 100% frente a Vineflower 1.10.1 (90.8%) y CFR 0.152 (79.8%); ganando los 8 jars frente a ambos.

Consulta BENCHMARK.md para la metodología completa, las tablas por jar y los comandos de reproducción.

Instalación

# CLI
go install github.com/yaklang/javajive/cmd/javajive@latest

# Library
go get github.com/yaklang/javajive@latest

O compilar desde el código fuente:

git clone https://github.com/yaklang/javajive
cd javajive
go build -o javajive ./cmd/javajive

Requiere Go 1.22+.

CLI

javajive <command> [arguments]

Commands:
  decompile   decompile Java artifacts or the strict DEX 035 subset into Java source
  dex2jar     convert the strict DEX 035 subset in a DEX/APK to a deterministic JAR
  classinfo   print the structure of a .class file (version, fields, methods)
  serial      Java serialization tools (subcommands: tojson, fromjson)
  version     print the version
  help        show help

decompile

# Single class: prints to stdout by default, or -o to write a file.
javajive decompile Foo.class
javajive decompile Foo.class -o Foo.java

# Archive: defaults to a "<input>.src" directory, or -o to choose one.
javajive decompile app.jar
javajive decompile app.war -o ./app-src

# DEX or APK: run the native DEX-to-JAR pipeline and decompile the result.
# The default output directory is "<input>.src".
javajive decompile classes.dex
javajive decompile app.apk -o ./app-src

# Directory: recursively decompile .class files (requires -o output dir).
javajive decompile ./classes -o ./src

dex2jar

javajive dex2jar -o classes.jar classes.dex
javajive dex2jar -o app.jar app.apk

La entrada se detecta por magic en lugar de por la extensión del nombre de archivo. La salida es un JAR reproducible. dex2jar falla la conversión completa ante cualquier clase o método no soportado o malformado; escribe un archivo temporal en el mismo directorio antes de reemplazar el destino y nunca sustituye con stubs de métodos.

Límite de soporte nativo de DEX/APK

La traducción nativa de DEX es actualmente un primer segmento vertical estricto, no un conversor general de aplicaciones Android. El subconjunto probado es DEX 035 estándar con flujo de control ordinario de enteros/referencias, campos e invocaciones, inicialización segura de pares new-instance/constructor, y arrays básicos. Los archivos de clase generados se someten a pruebas de parser y se verifican en la JVM, incluyendo rutas ejecutables de ramas, campos, invocaciones, constructores y int[].

Descargar herramienta