Analizador del pool de constantes de Java
Sube un archivo .class de Java para extraer y analizar todas las constantes del pool de constantes. Consulta cadenas, referencias a clases, firmas de métodos, referencias a campos y constantes numéricas organizadas por categoría con descripciones detalladas y datos hexadecimales sin procesar. Todo el procesamiento es local y privado.
Upload a Java .class file
Drag and drop or click to browse. All processing is local and private.
¿Por qué usar nuestro Analizador del pool de constantes de Java?
- Extracción completa del pool de constantes: el analizador del pool de constantes de Java analiza todas las entradas del pool de constantes de cualquier archivo .class: cadenas UTF-8, referencias a clases, referencias a métodos, referencias a campos, referencias a métodos de interfaz, descriptores de nombre y tipo, constantes enteras, float, long y double, method handles, tipos de método, entradas invoke dynamic e información de módulos/paquetes.
- Análisis de la jerarquía de clases y métodos: identifica al instante esta clase y su superclase con sus nombres completos en formato interno (com/example/MyClass) y Java (com.example.MyClass). Consulta todas las clases referenciadas, firmas de métodos, firmas de campos y literales de cadena extraídos del pool de constantes.
- Filtrado y búsqueda inteligentes: filtra las entradas del pool de constantes por categoría: cadenas, clases, referencias (método/campo/interfaz), constantes numéricas y descriptores de tipos. Busca en todas las entradas por índice, nombre de etiqueta o texto de descripción. El analizador del pool de constantes facilita encontrar exactamente lo que necesitas en archivos con cientos de entradas.
- 100 % privado - sin subida de datos: todo el análisis de archivos de clase ocurre localmente en tu navegador con JavaScript. Tus archivos .class nunca salen de tu dispositivo. Sin necesidad de cuenta, sin rastreo y sin datos almacenados en ningún sitio. Exporta la tabla del pool de constantes como TSV para seguir analizándola en hojas de cálculo.
Casos de uso comunes del Analizador del pool de constantes de Java
- Ingeniería inversa y análisis de malware: los investigadores de seguridad usan el análisis del pool de constantes para entender aplicaciones Java ofuscadas o protegidas. Extrae todos los literales de cadena, nombres de clases y referencias a métodos de archivos .class desconocidos para reconstruir la estructura de la aplicación e identificar llamadas a API sospechosas o uso de bibliotecas.
- Detección y análisis de ofuscación: las herramientas de ofuscación de Java renombran clases, métodos y campos con nombres sin sentido. El analizador del pool de constantes revela estos identificadores renombrados y muestra el mapeo completo de referencias. ProGuard, DashO y otros intentos de ofuscación se hacen visibles a través de patrones de nombres inusuales en el pool de constantes.
- Depuración de conflictos de dependencias: al depurar conflictos de classpath o excepciones NoSuchMethodError, nuestro analizador del pool de constantes ayuda a identificar contra qué versión de una biblioteca se compiló un archivo .class. Las firmas de métodos y referencias a campos del pool de constantes revelan la superficie de API exacta que espera el código compilado.
- Validación y compatibilidad de archivos de clase: verifica que los archivos .class estén bien formados y comprueba su compatibilidad con la versión de Java. El analizador del pool de constantes valida el número mágico (0xCAFEBABE), analiza la información de versión y lee todas las entradas del pool de constantes de forma estructural. Detecta archivos de clase corruptos o manipulados antes del despliegue.
- Aprendizaje del formato de archivo de clase Java: los estudiantes de informática y desarrolladores Java usan el analizador del pool de constantes para entender el formato de archivo de clase Java. Comprueba cómo la JVM almacena clases, métodos, campos y constantes de cadena. Explora la estructura del pool de constantes de forma interactiva para adquirir intuición sobre el bytecode y la carga de clases.
- Extracción de cadenas y recursos: extrae todas las cadenas codificadas de archivos de clase Java compilados sin necesidad de un descompilador completo. El analizador del pool de constantes muestra todos los literales de cadena, nombres de clases y descriptores de tipos, algo muy valioso para el análisis rápido de código compilado, cadenas de localización o constantes de configuración incrustadas en archivos .class.
¿Qué es el pool de constantes de Java?
El pool de constantes es una estructura de datos crítica en cada archivo .class de Java. Funciona como tabla de símbolos que contiene todas las constantes, nombres de clases, nombres de métodos, nombres de campos, descriptores de tipos y literales de cadena referenciados por el bytecode. Situado justo después de la cabecera de versión del archivo de clase, el pool de constantes se indexa a partir de 1 y se referencia en todo el resto del archivo de clase. La JVM usa este pool durante la carga de clases y la ejecución del bytecode para resolver referencias simbólicas a sus valores reales en tiempo de ejecución. Nuestro analizador del pool de constantes hace que todo esto sea visible y consultable.
Cómo funciona nuestro Analizador del pool de constantes de Java
- Sube un archivo .class: simplemente sube cualquier archivo de clase Java compilado. El analizador lee los bytes sin procesar y valida el número mágico (0xCAFEBABE) y la cabecera de versión para confirmar que es un formato de archivo de clase Java válido.
- Análisis automático del pool de constantes: el analizador recorre todas las entradas del pool de constantes y decodifica cada una según su tipo de etiqueta. Cada entrada se clasifica como cadena, referencia a clase, referencia a método/campo, descriptor de tipo, constante numérica u otro tipo de entrada. Todas las entradas se indexan con sus datos hexadecimales sin procesar para su verificación.
- Explora y filtra los resultados: navega por la tabla completa del pool de constantes con filtrado inteligente por categoría. Busca en todas las entradas, consulta estadísticas de resumen como recuentos de entradas por tipo, clases referenciadas, firmas de métodos y literales de cadena extraídos. Copia la tabla para seguir analizándola.
Tipos de entrada del pool de constantes explicados
- Utf8 (CONSTANT_Utf8): el tipo de entrada más común, que representa cadenas codificadas en UTF-8 usadas para nombres de clases, nombres de métodos, nombres de campos y descriptores de tipos. Son los bloques de construcción de todos los demás tipos de referencia del pool de constantes.
- Referencias a clases y cadenas: las entradas Class apuntan a cadenas Utf8 que contienen nombres internos de clase (por ejemplo, java/lang/Object). Las entradas String referencian cadenas Utf8 que representan constantes de cadena literales usadas en el bytecode.
- Referencias a métodos, campos y métodos de interfaz: estas entradas de triple índice combinan una referencia Class, un descriptor NameAndType y el tipo de etiqueta para calificar completamente un acceso a miembro. Los MethodRefs representan llamadas a métodos virtuales, mientras que los InterfaceMethodRefs representan el despacho de interfaces.
- NameAndType: empareja un nombre de miembro (por ejemplo, «toString») con su descriptor de tipo (por ejemplo, «()Ljava/lang/String;») para identificar de forma única un campo o método sin especificar la clase propietaria. Los referencian las entradas Fieldref, Methodref e InterfaceMethodref.
Privacidad, seguridad y notas de uso
El analizador del pool de constantes de Java procesa todos los datos íntegramente en tu navegador con JavaScript. Ningún archivo .class se sube nunca a ningún servidor, se almacena en ninguna base de datos ni se comparte con terceros. No existe límite de tamaño de archivo más allá de la memoria disponible en tu navegador. Los archivos de clase de cualquier tamaño se pueden analizar al instante. La herramienta es totalmente gratuita, sin registro, sin límites de uso y sin nivel premium. Úsala para cualquier propósito (personal, comercial, educativo o de investigación de seguridad) sin coste alguno.
Preguntas frecuentes
El pool de constantes es una tabla de constantes, referencias de símbolos y literales de cadena almacenada en cada archivo .class de Java. Actúa como tabla de símbolos en tiempo de ejecución para la JVM, y contiene nombres de clases, nombres de métodos, nombres de campos, descriptores de tipos, constantes de cadena y constantes numéricas. Todas las instrucciones de bytecode referencian entradas del pool de constantes por su índice, lo que lo convierte en la estructura de datos más importante del formato de archivo de clase.
El analizador extrae todos los tipos de entrada del pool de constantes: cadenas UTF-8 (nombres de clases, nombres de métodos, descriptores), referencias a clases, referencias a métodos, referencias a campos, referencias a métodos de interfaz, descriptores de nombre y tipo, constantes numéricas enteras/float/long/double, method handles, tipos de método, entradas invoke dynamic y referencias a módulos/paquetes. Cada entrada incluye su índice, tipo de etiqueta, descripción legible y datos hexadecimales sin procesar.
No, el analizador del pool de constantes no es un descompilador. Extrae la tabla de símbolos del archivo de clase, mostrándote todos los valores constantes, referencias a clases y firmas de métodos. No reconstruye instrucciones de bytecode ni descompila los cuerpos de los métodos. Para una descompilación completa necesitarías una herramienta como CFR, Procyon o JD-GUI.
0xCAFEBABE es el número mágico que identifica los archivos de clase Java válidos. Todo archivo .class debe empezar con estos cuatro bytes. Si un archivo no empieza con 0xCAFEBABE, no es un archivo de clase Java válido. El analizador del pool de constantes comprueba primero este número mágico y notifica un error si falta, lo que evita analizar archivos que no son de clase o datos corruptos.
Los nombres internos de clase usan barras inclinadas como separadores de paquete (por ejemplo, java/lang/String), mientras que el código fuente Java usa puntos (java.lang.String). El pool de constantes almacena los nombres de clase en formato interno. Nuestro analizador muestra ambos formatos: el nombre interno sin procesar en la tabla y el formato Java con puntos en el resumen de información de la clase.
En el formato de archivo de clase Java, las entradas CONSTANT_Long y CONSTANT_Double ocupan dos índices consecutivos del pool de constantes. Es un diseño heredado de las primeras especificaciones de la JVM para alinearse con los requisitos de almacenamiento de 8 bytes. Cuando ves huecos en la numeración de índices del pool de constantes, probablemente se deba a que se leyó una entrada Long o Double, que consumió dos ranuras.
Por supuesto. El analizador del pool de constantes de Java lo procesa todo localmente en tu navegador con JavaScript. Tus archivos .class nunca se suben a ningún servidor, ni se almacenan en ninguna base de datos, ni se transmiten por la red. Todo el análisis ocurre en tu dispositivo para una privacidad total. Esto hace que sea seguro analizar código propietario, bibliotecas confidenciales o aplicaciones ofuscadas.
Sí, 100 % gratis, sin registro, sin cuenta y sin límites de uso. Analiza tantos archivos .class como necesites, tantas veces como quieras. No hay niveles premium, cargos ocultos ni límites de velocidad. La herramienta se ejecuta íntegramente en tu navegador: tus archivos nunca salen de tu dispositivo.