3 Repos
The process of editing and modifying compiled Java class files to change application behavior.
Distinct from Java Bytecode Analysis: Focuses on modification/editing rather than the inspection/analysis provided by Java Bytecode Analysis.
Explore 3 awesome GitHub repositories matching software engineering & architecture · Java Bytecode Manipulation. Refine with filters or upvote what's useful.
Javassist is a bytecode engineering toolkit for analyzing, modifying, and generating Java bytecode and class files. It functions as a bytecode manipulation library that allows for the editing of class files through either direct bytecode access or high-level source code syntax. The project provides specialized tools for the programmatic creation of new Java classes and interfaces during runtime. It includes a dynamic proxy generator for intercepting method calls and a class loader interceptor that automatically modifies class definitions as they are loaded into the Java Virtual Machine. Addi
Provides tools for editing and modifying compiled Java class files to change behavior without original source code.
Powermock ist ein Java-Mocking-Framework und Unit-Testing-Tool, das Bytecode-Manipulation verwendet, um statische Methoden, finale Klassen und private Konstruktoren zu mocken. Es beinhaltet ein Java-Agent-Instrumentierungstool und ein auf Reflection basierendes Test-Utility, um die Kapselung zu umgehen und das Klassenverhalten zur Laufzeit zu modifizieren. Das Projekt zeichnet sich dadurch aus, dass es die Möglichkeit bietet, die Instanziierung von Objekten über das new-Keyword abzufangen und das Verhalten von Java-Systemklassen und nativen Methoden zu simulieren. Es kann finale Modifikatoren auf Klassen und Methoden überschreiben und Signaturbeschränkungen für Klassen umgehen, die in signierten Archiven enthalten sind. Das Toolset deckt breite Funktionsbereiche ab, einschließlich des Mockings privater Member, der Verifizierung von Objektkonstruktionen und der Unterdrückung statischer Initialisierer und Konstruktoren. Es bietet zudem Reflection-Utilities für das Management privater Zustände und integriert sich über spezialisierte Rules und Runner in JUnit. Die Integration wird für modulare Architekturen wie OSGi und verschiedene externe Test-Execution-Frameworks unterstützt.
Provides advanced capabilities to modify compiled Java class bytes at runtime to override language restrictions and bypass encapsulation.
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.
Enables the modification of loaded Java classes and redefinition of bytecode in memory without requiring process restarts.