Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
javajive — Descompilador Java e Operador de Serialização em Go Puro | Kitploit
Ferramentas/GitHubGitHub/yaklang/javajive
Análise EstáticaAnálise de CódigoEngenharia ReversaScripting e AutomaçãoAnálise de MalwareUtilitários e FrameworksAnálise de Binários
GitHubyaklang/javajive

javajive

Descompilador Java e Operador de Serialização em Go Puro

Ver Repositório
22488há 8h 3mAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

JavaJive — Pure-Go Java Toolkit: Decompile, Class Parse, Serialization

JavaJive

CI Pages Go Reference License: MIT

English | 简体中文 | Website

Um kit de ferramentas Java portátil e puro em Go — extraído e enxugado do yaklang — que faz três coisas e nada mais:

  • Descompilar — .class / .jar / .war / .zip → código-fonte Java legível.
  • Analisar classes — inspecionar a estrutura de um arquivo .class (constant pool, campos, métodos, versão, flags de acesso).
  • (De)serializar — analisar e remontar o formato de serialização Java (ObjectStream) com fidelidade de bytes, e convertê-lo de/para JSON.

Construído para portabilidade e incorporação:

  • Go puro, binário único — sem JDK, sem cgo, sem runtime ANTLR, sem bibliotecas nativas. Compilação cruzada para linux / macOS / windows em amd64 e arm64.
  • Uma importação — um pacote de fachada unificado javajive envolve as três capacidades; os subpacotes permanecem disponíveis para uso avançado.
  • CLI de primeira classe — subcomandos decompile, classinfo e serial, construídos sobre a biblioteca padrão.
  • Testado de forma cruzada contra um JDK real — a CI compila .class / .jar reais e blobs serializados pelo JDK com javac/java, depois verifica o JavaJive contra eles (veja HARNESS-WORKFLOW.md).
  • Grafo de dependências enxuto — utils / codec / log / go-funk são reimplementados como um núcleo internal/ mínimo e autocontido.

Validação da v0.4.0

A auditoria diferencial completa de 38 JARs registra zero regressões em relação à linha de base fixa: todos os 20 JARs anteriormente limpos de compilação são mantidos e 26 agora compilam integralmente. Defeitos da linha de base e 4 stubs de métodos existentes permanecem visíveis. Veja os resultados por JAR e reprodução.

250 round trips semânticos isolados registram compilação, verificação da JVM, stubs e igualdade em tempo de execução separadamente; as classes originais da aplicação estão ausentes dos classpaths reconstruídos. A CI executa a auditoria semântica no JDK 17 e 21, a comparação histórica completa, e as matrizes de OS/Go e de race. Essas verificações não provam equivalência de todos os métodos de biblioteca. Veja a implementação e limites restantes.

Benchmarks históricos (v0.3.0)

Os números a seguir foram reportados para a v0.3.0 em 2026-09-05. Eles não são resultados de aceitação da versão atual nem prova de equivalência comportamental.

Medido em 34 jars do mundo real (18.759 unidades achatadas) via decompile → recompilação com javac --release 8 → reempacotamento → verificação da JVM:

  • Taxa de 100% de unidades limpas — 18.759 / 18.759 unidades achatadas (Outer$Inner.java) recompilam com zero erros de javac, e 0 erros de sintaxe em todos os 34 jars (uma asserção rígida imposta pela CI, para que nenhum erro de tipo se esconda atrás de uma falha do lexer).
  • Todas as 34 bibliotecas fazem round-trip completo — decompile → recompile → repackage → verificação externa da JVM -Xverify:all por classe passa de ponta a ponta (o codec é byte-idêntico ao jar original sob um diferencial de chamadas). Fixado em provenClean.
  • 14 / 14 algoritmos auto-hospedados (MD5 · SHA-256 · CRC32 · quicksort · Base64 · HeapSort · KMP · SwitchFSM · TryFinally · UnionFind · DiamondTryCatch · DiamondTryFinally · ForContinue · ComputeIfAbsent) fazem round-trip byte a byte.
  • #1 em uma comparação justa de 3 vias no conjunto original de 8 jars — taxa de unidades limpas 100% vs Vineflower 1.10.1 (90,8%) e CFR 0.152 (79,8%); vencendo todos os 8 jars contra ambos.

Veja BENCHMARK.md para a metodologia completa, tabelas por jar e comandos de reprodução.

Instalação

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

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

Ou compile a partir do código-fonte:

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

Requer Go 1.22+.

CLI

javajive <command> [arguments]

Commands:
  decompile   decompile .class/.jar/.war/.zip or a directory into Java source
  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

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

classinfo

javajive classinfo Foo.class
class:      InvisibleAnnoSeed
super:      java/lang/Object
version:    61.0
access:     public
constants:  18

fields (0):

methods (2):
   <init>()V
   run()I

serial

# Serialized binary -> JSON. (-hex: input is a hex string, -: read from stdin)
javajive serial tojson dump.bin
printf 'aced000574000568656c6c6f' | javajive serial tojson -hex -

# JSON -> serialized binary. (default prints hex; with -o writes raw bytes)
javajive serial fromjson dump.json -o out.bin
javajive serial fromjson dump.json          # prints hex

Biblioteca

Use o pacote de fachada unificado — uma importação cobre as três capacidades:

import "github.com/yaklang/javajive"

// Decompile a single class, or a whole archive into a directory.
src, err := javajive.Decompile(classBytes)
err = javajive.DecompileArchive("app.jar", "app-src")

// Inspect class structure.
obj, err := javajive.ParseClass(classBytes)
_ = obj.GetClassName()

// Java serialization: binary -> JSON -> binary.
objs, _ := javajive.ParseSerialized(raw)          // or ParseSerializedHex(hexStr)
jsonBytes, _ := javajive.SerializedToJSON(objs...)
restored, _ := javajive.SerializedFromJSON(jsonBytes)
out := javajive.MarshalSerialized(restored...)

API unificada

Baixar ferramenta