2 dépôts
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 est un décompilateur de bytecode Java et un outil d'ingénierie inverse. Il transforme les fichiers de classe Java compilés en code source Java lisible par l'homme pour reconstruire la logique originale du programme et les noms de variables. L'outil fonctionne comme un processeur de bytecode en ligne de commande capable de traiter par lots des archives Java et des fichiers de classe. Il gère spécifiquement l'analyse de code obfusqué en renommant les identifiants ambigus et en résolvant les conflits de nommage pour rendre le code source résultant plus facile à suivre. Le système emploie l'analyse statique pour convertir le bytecode en source, utilisant l'extraction d'informations de débogage pour restaurer les noms de variables locales. Il reconstruit les structures de programme via l'analyse de graphe de flux de contrôle, l'inférence de type et la génération d'un arbre de syntaxe abstraite.
Transforms compiled Java class files back into human-readable Java source code for reverse engineering.
Bistoury est un outil de diagnostic de production pour les applications Java qui fournit une console de débogage distribuée, un profileur de performance et un manipulateur de bytecode runtime. Il permet le débogage d'applications en temps réel et le diagnostic de production en analysant les applications Java en cours d'exécution via l'instrumentation dynamique et l'inspection d'état. Le système se distingue par un gestionnaire d'agent distant qui coordonne les connexions de diagnostic et un manipulateur de bytecode runtime capable de redéfinir des classes en mémoire sans nécessiter de redémarrage de processus. Il dispose d'une interface web pour capturer des dumps de tas (heap dumps), des piles de threads et des variables locales à travers plusieurs instances de serveur, pris en charge par une couche de communication médiée par proxy pour router les commandes vers des cibles distantes. Le projet couvre un large éventail de capacités d'observabilité, incluant le profilage des performances CPU via l'échantillonnage de pile asynchrone et les graphiques en flamme (flame graphs), la gestion distribuée des logs sur plusieurs machines et la capture d'état non bloquante utilisant des points d'arrêt conditionnels. Il inclut également des utilitaires de récupération de source qui lient le bytecode runtime au code source original via la décompilation ou l'intégration avec des dépôts Git et Maven. L'outil fournit une console web et des interfaces de ligne de commande pour gérer les logs, récupérer les fichiers système et inspecter la configuration système et les variables d'environnement.
Converts compiled Java class files back into human-readable source code when original files are unavailable.