2 Repos
Tools that transform compiled Java class files back into human-readable Java source code.
Distinct from Java Decompiler GUIs: Focuses on the core decompilation engine rather than the graphical user interface (GUI).
Explore 2 awesome GitHub repositories matching development tools & productivity · Java Bytecode Decompilers. Refine with filters or upvote what's useful.
Fernflower ist ein Java-Bytecode-Decompiler und Reverse-Engineering-Tool. Es transformiert kompilierte Java-Klassendateien zurück in menschenlesbaren Java-Quellcode, um die ursprüngliche Programmlogik und Variablennamen zu rekonstruieren. Das Tool fungiert als Befehlszeilen-Bytecode-Prozessor, der in der Lage ist, Java-Archive und Klassendateien im Batch-Verfahren zu verarbeiten. Es handhabt speziell die Analyse von obfuscated Code, indem es mehrdeutige Identifikatoren umbenennt und Namenskonflikte auflöst, um den resultierenden Quellcode leichter nachvollziehbar zu machen. Das System nutzt statische Analyse, um Bytecode in Quellcode umzuwandeln, und verwendet die Extraktion von Debug-Informationen, um lokale Variablennamen wiederherzustellen. Es rekonstruiert Programmstrukturen durch Kontrollflussgraphen-Analyse, Typinferenz und die Generierung eines abstrakten Syntaxbaums.
Transforms compiled Java class files back into human-readable Java source code for reverse engineering.
Bistoury ist ein Produktionsdiagnosetool für Java-Anwendungen, das eine verteilte Debugging-Konsole, einen Performance-Profiler und einen Runtime-Bytecode-Manipulator bereitstellt. Es ermöglicht Echtzeit-Anwendungs-Debugging und Produktionsdiagnose durch die Analyse laufender Java-Anwendungen mittels dynamischer Instrumentierung und Zustandsinspektion. Das System zeichnet sich durch einen Remote-Agent-Manager aus, der Diagnoseverbindungen koordiniert, sowie einen Runtime-Bytecode-Manipulator, der in der Lage ist, Klassen im Speicher neu zu definieren, ohne Prozessneustarts zu erfordern. Es bietet eine Weboberfläche zum Erfassen von Heap-Dumps, Thread-Stacks und lokalen Variablen über mehrere Serverinstanzen hinweg, unterstützt durch eine Proxy-vermittelte Kommunikationsschicht zum Routen von Befehlen an Remote-Ziele. Das Projekt deckt ein breites Spektrum an Observability-Funktionen ab, einschließlich CPU-Performance-Profiling mittels asynchronem Stack-Sampling und Flame-Graphs, verteilter Log-Verwaltung über mehrere Maschinen hinweg und nicht-blockierender Zustandserfassung mittels bedingter Breakpoints. Es enthält zudem Dienstprogramme zur Quellwiederherstellung, die Runtime-Bytecode mit dem ursprünglichen Quellcode durch Dekompilierung oder Integration mit Git- und Maven-Repositories verknüpfen. Das Tool bietet eine Webkonsole und Befehlszeilenschnittstellen für die Verwaltung von Logs, das Abrufen von Systemdateien und die Inspektion von Systemkonfiguration und Umgebungsvariablen.
Converts compiled Java class files back into human-readable source code when original files are unavailable.