Skip to content

Instantly share code, notes, and snippets.

@0xdevalias
Created October 1, 2025 07:32
Show Gist options
  • Save 0xdevalias/bda8eb7844a0d1a14f2d9748fcc86a90 to your computer and use it in GitHub Desktop.
Save 0xdevalias/bda8eb7844a0d1a14f2d9748fcc86a90 to your computer and use it in GitHub Desktop.
Some notes on tools and techniques for reverse engineering Java programs.

Reverse Engineering Java

Some notes on tools and techniques for reverse engineering Java programs.

Table of Contents

Unsorted

  • TODO: Enumerate existing tools and include them here, including:
    • Mainstream / Actively Maintained Decompilers
      • CFR (popular modern Java decompiler, supports new Java features)
      • Procyon (focuses on Java 5+ features, strong with lambdas/generics)
      • Fernflower (bundled in IntelliJ IDEA, originally by Stiver)
      • Quiltflower (active fork of Fernflower)
      • JD-GUI (classic standalone GUI decompiler)
      • JADX (for Android APKs/Dex, decompiles to Java)
    • Bytecode -> Source Alternatives / Wrappers
      • Bytecode Viewer (all-in-one GUI, integrates CFR, Procyon, Fernflower, etc.)
      • Krakatau (bytecode assembler/disassembler/decompiler)
      • Luyten (GUI frontend for Procyon)
      • Androguard (Android reverse engineering toolkit, Python-based)
      • JAD (historical, one of the earliest Java decompilers)
    • Related / Bytecode Manipulation Frameworks
      • ASM (bytecode manipulation and analysis framework)
      • BCEL (Byte Code Engineering Library)
      • JBE (Java Bytecode Editor)
    • General Reverse Engineering Frameworks with JVM Support
      • Radare2 / r2ghidra-dec (general RE frameworks with some JVM/bytecode support)
    • etc?
  • https://github.com/JetBrains/fernflower
    • Fernflower

    • Decompiler from Java bytecode to Java, used in IntelliJ IDEA.

    • Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general. Naturally, it is still under development.

    • Fernflower was originally written by Stiver.

See Also

My Other Related Deepdive Gist's and Projects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment