6 dépôts
Tools used to inspect and analyze the internal structure of compiled Java class files.
Distinct from Java Bytecode Viewers: None of the candidates cover the identity of a tool that both modifies and analyzes bytecode via abstractions.
Explore 6 awesome GitHub repositories matching development tools & productivity · Java Bytecode Analysis Tools. Refine with filters or upvote what's useful.
Recaf est une suite d'outils spécialisés pour assembler, éditer, désobfusquer, décompiler et instrumenter le bytecode Java et les processus runtime. Il fournit un environnement coordonné pour modifier les fichiers de classe Java compilés et analyser le comportement des applications Java. Le projet se distingue par une couche d'abstraction multi-niveaux qui permet l'édition à travers différents formats et un framework enfichable qui route le bytecode à travers plusieurs moteurs de décompilation configurables. Il inclut un moteur de script embarqué et une architecture de plugin pour automatiser les tâches répétitives et étendre le comportement du système. L'ensemble d'outils couvre plusieurs domaines de capacités de haut niveau, incluant l'analyse statique pour rechercher le contenu de l'application et simuler les états d'exécution des méthodes. Il prend également en charge l'instrumentation runtime pour s'attacher aux processus actifs et la transformation automatisée de bytecode pour supprimer l'obfuscation et réparer les fichiers de classe. L'exécution headless est prise en charge via une interface en ligne de commande pour intégrer les workflows dans des pipelines de build externes.
A specialized tool for modifying and analyzing compiled Java class files across multiple abstraction levels.
Luyten est un décompilateur Java open source et un analyseur de bytecode conçu pour transformer les fichiers de classe compilés en code source de haut niveau. Il fonctionne comme une interface utilisateur graphique pour le moteur de décompilation Procyon, permettant l'inspection et la récupération de la logique de programme à partir du bytecode Java. L'outil offre des capacités pour l'ingénierie inverse Java et l'analyse de code hérité, permettant l'examen d'applications ou de bibliothèques tierces lorsque le code source original n'est pas disponible. Le système inclut une interface de bureau pour parcourir les hiérarchies de classes, une analyse récursive du classpath pour indexer les fichiers JAR, et un historique de navigation avec état pour suivre les classes visitées.
Integrates the Procyon engine to translate compiled Java bytecode into high-level source code structures for analysis.
Ce projet est une base de connaissances complète sur la programmation Java et un dépôt de référence technique. Il fournit une collection organisée de réponses distillées, de documentation API et de guides de dépannage conçus pour aider les développeurs à résoudre les défis de codage courants et les pièges du langage. Le dépôt se distingue par une approche architecturale structurée de la connaissance, utilisant une analyse centrée sur la comparaison pour mettre en évidence les compromis entre différentes implémentations de bibliothèques et fonctionnalités du langage. Il agrège les discussions communautaires à fort impact dans un format standardisé, organisant les solutions techniques par patterns architecturaux, de concurrence et de sécurité. Le contenu couvre un large éventail de domaines techniques, incluant les spécifications du langage de base, la gestion de la concurrence, la gestion de la mémoire et les patterns de conception logicielle. Il inclut également des conseils sur le dépannage au runtime, l'implémentation de structures de données, la réflexion et les métadonnées, ainsi que les patterns d'intégration d'API. La documentation sert de référence technique pour implémenter des patterns d'architecture logicielle standard et résoudre les problèmes de configuration d'environnement.
Explains how to translate compiled bytecode back into human-readable source code to inspect binary files.
Ce projet est un dépôt pédagogique et une ressource d'apprentissage fournissant une collection complète de notes d'étude, de guides de programmation et d'exemples de code exécutables. Il sert de guide pour le développement Java SE et web Java, présentant une bibliothèque d'exemples de code qui démontrent des algorithmes courants et des implémentations techniques. Le dépôt se concentre sur l'analyse du cœur du langage et du runtime, avec des tutoriels détaillés sur le multithreading et la concurrence. Il fournit des implémentations pratiques de l'architecture logicielle et des modèles de conception (design patterns), tels que les modèles singleton et stratégie, ainsi que des explorations de la Java Virtual Machine et du bytecode. Le projet couvre un large éventail de capacités, notamment les fondamentaux du langage comme les génériques et les annotations, les bases du développement web impliquant la gestion des requêtes HTTP et des sessions, et les primitives de concurrence pour le cycle de vie des threads et la synchronisation des ressources. Il inclut également des utilitaires pour la sécurité, le traitement des données et la génération de pages dynamiques.
Explores the inner workings of the JVM and bytecode using reflection and dynamic proxy generation.
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.
Collects operational data, system properties, and machine metrics to analyze the overall health of the JVM.
SpotBugs est un outil d'analyse statique et un analyseur de bytecode pour les applications Java. Il scanne les fichiers de classe compilés pour identifier les bugs, les vulnérabilités de sécurité et les problèmes de performance sans exécuter le code. Le système fonctionne à la fois comme un détecteur de bugs et un outil de test de sécurité d'application statique pour localiser les erreurs logiques et les abus d'API. Le projet se distingue par une architecture de détecteur basée sur des plugins qui permet l'intégration de bibliothèques externes pour ajouter des règles de détection personnalisées. Il fournit un audit de sécurité spécialisé pour les vulnérabilités telles que l'injection SQL, le cross-site scripting et le path traversal, parallèlement à un système modulaire pour affiner la précision de l'analyse et réduire les faux positifs. L'outil couvre un large éventail de domaines de détection, y compris les erreurs de synchronisation de concurrence, les déréférencements de pointeurs nuls, les fuites de ressources et les erreurs de transtypage. Il identifie également le code mort, les inefficacités de performance et les violations des idiomes de sérialisation. Ces capacités sont accessibles via une interface de ligne de commande, une interface utilisateur graphique et une intégration directe au sein des environnements de développement intégrés. SpotBugs peut être intégré dans des pipelines de build pour appliquer des portes de qualité et générer des rapports d'analyse aux formats HTML ou XML.
Scans compiled Java class files to identify bug patterns without executing the application code.