Aller au contenu
Aback Tools Logo

Analyseur de pool de constantes Java

Téléchargez un fichier .class Java pour extraire et analyser toutes les constantes du pool de constantes. Consultez les chaînes, références de classe, signatures de méthodes, références de champs et constantes numériques organisées par catégorie avec des descriptions détaillées et des données hexadécimales brutes. Tout le traitement est local et privé.

Java Constant Pool Analyzer
Upload a Java .class file to extract and analyze all constants from the constant pool. View strings, class references, method signatures, field references, and numeric constants organized by category with detailed descriptions and raw hex data.

Upload a Java .class file

Drag and drop or click to browse. All processing is local and private.

Pourquoi utiliser notre analyseur de pool de constantes Java ?

  • Extraction complète du pool de constantes : l'analyseur de pool de constantes Java analyse toutes les entrées du pool de constantes de n'importe quel fichier .class : chaînes UTF-8, références de classe, références de méthode, références de champ, références de méthode d'interface, descripteurs nom-et-type, constantes int, float, long et double, method handles, types de méthode, entrées invoke dynamic et informations de module/paquet.
  • Analyse de la hiérarchie de classes et de méthodes : identifiez instantanément cette classe et sa superclasse avec leurs noms pleinement qualifiés aux formats interne (com/example/MyClass) et Java (com.example.MyClass). Consultez toutes les classes référencées, signatures de méthodes, signatures de champs et littéraux de chaîne extraits du pool de constantes.
  • Filtrage et recherche intelligents : filtrez les entrées du pool de constantes par catégorie : chaînes, classes, références (méthode/champ/interface), constantes numériques et descripteurs de types. Recherchez dans toutes les entrées par index, nom d'étiquette ou texte de description. L'analyseur de pool de constantes facilite la recherche exacte de ce dont vous avez besoin dans des fichiers contenant des centaines d'entrées.
  • 100 % privé - aucun envoi de données : toute l'analyse des fichiers de classe se fait localement dans votre navigateur à l'aide de JavaScript. Vos fichiers .class ne quittent jamais votre appareil. Aucun compte requis, aucun suivi, aucune donnée stockée nulle part. Exportez le tableau du pool de constantes au format TSV pour une analyse plus poussée dans des tableurs.

Cas d'usage courants de l'analyseur de pool de constantes Java

  • Rétro-ingénierie et analyse de malwares : les chercheurs en sécurité utilisent l'analyse du pool de constantes pour comprendre des applications Java obfusquées ou protégées. Extrayez tous les littéraux de chaîne, noms de classes et références de méthodes de fichiers .class inconnus afin de reconstruire la structure de l'application et d'identifier les appels d'API suspects ou l'utilisation de bibliothèques.
  • Détection et analyse de l'obfuscation : les outils d'obfuscation Java renomment les classes, méthodes et champs avec des noms sans signification. L'analyseur de pool de constantes révèle ces identifiants renommés et montre la correspondance complète des références. ProGuard, DashO et d'autres tentatives d'obfuscation deviennent visibles grâce aux motifs de nommage inhabituels dans le pool de constantes.
  • Débogage des conflits de dépendances : lors du débogage de conflits de classpath ou d'exceptions NoSuchMethodError, notre analyseur de pool de constantes aide à identifier contre quelle version d'une bibliothèque un fichier .class a été compilé. Les signatures de méthodes et références de champs du pool de constantes révèlent la surface d'API exacte attendue par le code compilé.
  • Validation et compatibilité des fichiers de classe : vérifiez que les fichiers .class sont correctement formés et contrôlez leur compatibilité avec la version de Java. L'analyseur de pool de constantes valide le nombre magique (0xCAFEBABE), analyse les informations de version et lit toutes les entrées du pool de constantes de manière structurelle. Détectez les fichiers de classe corrompus ou altérés avant le déploiement.
  • Apprentissage du format de fichier de classe Java : les étudiants en informatique et les développeurs Java utilisent l'analyseur de pool de constantes pour comprendre le format de fichier de classe Java. Voyez comment la JVM stocke les classes, méthodes, champs et constantes de chaîne. Explorez la structure du pool de constantes de manière interactive pour développer votre intuition sur le bytecode et le chargement de classes.
  • Extraction de chaînes et de ressources : extrayez toutes les chaînes codées en dur des fichiers de classe Java compilés sans avoir besoin d'un décompilateur complet. L'analyseur de pool de constantes met en évidence tous les littéraux de chaîne, noms de classes et descripteurs de types - précieux pour l'analyse rapide de code compilé, de chaînes de localisation ou de constantes de configuration intégrées dans les fichiers .class.

Qu'est-ce que le pool de constantes Java ?

Le pool de constantes est une structure de données critique dans chaque fichier .class Java. Il sert de table de symboles contenant toutes les constantes, noms de classes, noms de méthodes, noms de champs, descripteurs de types et littéraux de chaîne référencés par le bytecode. Situé juste après l'en-tête de version du fichier de classe, le pool de constantes est indexé à partir de 1 et est référencé dans tout le reste du fichier de classe. La JVM utilise ce pool lors du chargement des classes et de l'exécution du bytecode pour résoudre les références symboliques en leurs valeurs d'exécution réelles. Notre analyseur de pool de constantes rend tout cela visible et consultable.

Comment fonctionne notre analyseur de pool de constantes Java

  1. Téléchargez un fichier .class : téléchargez simplement n'importe quel fichier de classe Java compilé. L'analyseur lit les octets bruts et valide le nombre magique (0xCAFEBABE) et l'en-tête de version pour confirmer qu'il s'agit d'un format de fichier de classe Java valide.
  2. Analyse automatique du pool de constantes : l'analyseur parcourt toutes les entrées du pool de constantes, en décodant chacune selon son type d'étiquette. Chaque entrée est classée comme chaîne, référence de classe, référence de méthode/champ, descripteur de type, constante numérique ou autre type d'entrée. Toutes les entrées sont indexées avec leurs données hexadécimales brutes pour vérification.
  3. Explorez et filtrez les résultats : parcourez le tableau complet du pool de constantes avec un filtrage intelligent par catégorie. Recherchez dans toutes les entrées, consultez les statistiques récapitulatives, notamment le nombre d'entrées par type, les classes référencées, les signatures de méthodes et les littéraux de chaîne extraits. Copiez le tableau pour une analyse plus poussée.

Types d'entrée du pool de constantes expliqués

  • Utf8 (CONSTANT_Utf8) : le type d'entrée le plus courant, représentant des chaînes encodées en UTF-8 utilisées pour les noms de classes, noms de méthodes, noms de champs et descripteurs de types. Ils constituent les briques de base de tous les autres types de référence du pool de constantes.
  • Références de classe et de chaîne : les entrées Class pointent vers des chaînes Utf8 contenant des noms de classe internes (par ex., java/lang/Object). Les entrées String référencent des chaînes Utf8 représentant des constantes de chaîne littérales utilisées dans le bytecode.
  • Références de méthode, de champ et de méthode d'interface : ces entrées à triple index combinent une référence Class, un descripteur NameAndType et le type d'étiquette pour qualifier complètement un accès à un membre. Les MethodRefs représentent les appels de méthodes virtuelles, tandis que les InterfaceMethodRefs représentent le dispatch d'interface.
  • NameAndType : associe un nom de membre (par ex., « toString ») à son descripteur de type (par ex., « ()Ljava/lang/String; ») pour identifier de façon unique un champ ou une méthode sans spécifier la classe propriétaire. Ils sont référencés par les entrées Fieldref, Methodref et InterfaceMethodref.

Confidentialité, sécurité et notes d'utilisation

L'analyseur de pool de constantes Java traite toutes les données entièrement dans votre navigateur à l'aide de JavaScript. Aucun fichier .class n'est jamais envoyé à un serveur, stocké dans une base de données ou partagé avec un tiers. Il n'y a aucune limite de taille de fichier au-delà de la mémoire disponible de votre navigateur. Les fichiers de classe de toute taille peuvent être analysés instantanément. L'outil est entièrement gratuit, sans inscription, sans limite d'utilisation et sans niveau premium. Utilisez-le à n'importe quelle fin - personnelle, commerciale, éducative ou de recherche en sécurité - sans frais.

Foire aux questions

Le pool de constantes est un tableau de constantes, de références symboliques et de littéraux de chaîne stocké dans chaque fichier .class Java. Il sert de table de symboles à l'exécution pour la JVM, contenant les noms de classes, noms de méthodes, noms de champs, descripteurs de types, constantes de chaîne et constantes numériques. Toutes les instructions de bytecode référencent les entrées du pool de constantes par leur index, ce qui en fait la structure de données la plus importante du format de fichier de classe.

L'analyseur extrait tous les types d'entrée du pool de constantes : chaînes UTF-8 (noms de classes, noms de méthodes, descripteurs), références de classe, références de méthode, références de champ, références de méthode d'interface, descripteurs nom-et-type, constantes numériques int/float/long/double, method handles, types de méthode, entrées invoke dynamic et références de module/paquet. Chaque entrée inclut son index, son type d'étiquette, une description lisible et ses données hexadécimales brutes.

Non, l'analyseur de pool de constantes n'est pas un décompilateur. Il extrait la table de symboles du fichier de classe, en vous montrant toutes les valeurs constantes, références de classe et signatures de méthodes. Il ne reconstruit pas les instructions de bytecode ni ne décompile les corps de méthodes. Pour une décompilation complète, vous auriez besoin d'un outil comme CFR, Procyon ou JD-GUI.

0xCAFEBABE est le nombre magique qui identifie les fichiers de classe Java valides. Chaque fichier .class doit commencer par ces quatre octets. Si un fichier ne commence pas par 0xCAFEBABE, ce n'est pas un fichier de classe Java valide. L'analyseur de pool de constantes vérifie d'abord ce nombre magique et signale une erreur s'il est absent, empêchant l'analyse de fichiers non-classes ou de données corrompues.

Les noms de classe internes utilisent des barres obliques comme séparateurs de paquet (par ex., java/lang/String), tandis que le code source Java utilise des points (java.lang.String). Le pool de constantes stocke les noms de classe au format interne. Notre analyseur affiche les deux formats : le nom interne brut dans le tableau et le format Java séparé par des points dans le récapitulatif des informations de classe.

Dans le format de fichier de classe Java, les entrées CONSTANT_Long et CONSTANT_Double occupent deux index consécutifs du pool de constantes. Il s'agit d'une conception héritée des premières spécifications de la JVM pour s'aligner sur les exigences de stockage de 8 octets. Lorsque vous voyez des lacunes dans la numérotation des index du pool de constantes, c'est probablement parce qu'une entrée Long ou Double a été lue, consommant deux emplacements.

Absolument. L'analyseur de pool de constantes Java traite tout localement dans votre navigateur à l'aide de JavaScript. Vos fichiers .class ne sont jamais envoyés à un serveur, stockés dans une base de données ni transmis sur le réseau. Toute l'analyse se fait sur votre appareil pour une confidentialité totale. Cela permet d'analyser en toute sécurité du code propriétaire, des bibliothèques confidentielles ou des applications obfusquées.

Oui - 100 % gratuit, sans inscription, sans compte et sans limite d'utilisation. Analysez autant de fichiers .class que nécessaire, autant de fois que vous le souhaitez. Il n'y a pas de niveaux premium, de frais cachés ni de limites de débit. L'outil s'exécute entièrement dans votre navigateur - vos fichiers ne quittent jamais votre appareil.