Tutorial 1: Detección de archivos de clase de Java
Este tutorial proporciona las instrucciones de uso de la utilidad Analizador de tipo de archivo para analizar un conjunto de datos y determinar los bytes mágicos. Además, demuestra cómo usar el lenguaje de programación de scripts para crear y probar una solución.
En este primer tutorial se analizan y detectan los archivos de clase de Java. Esta guía asume que se usa la versión de GUI basada en Windows de la utilidad Analizador de tipo de archivo.
- Instalación de la utilidad Analizador de tipo de archivo.
- Inicio de la utilidad Analizador de tipo de archivo.
- Prepare al conjunto de datos para este ejemplo.Copie varios archivos (15 o más) de clase de Java (*.class) a un directorio en el sistema de archivos. (Para este tutorial, el directorio que se usa es C:\temp\JavaClassFiles).Además, para garantizar que el script coincida solamente con los archivos de clase de Java, agregue algunos archivos que no sean de clase Java al mismo directorio.
- Agregue el directorio del conjunto de datos a la utilidad Analizador de tipo de archivo.En la utilidad Analizador de tipo de archivo, haga clic enAgregar directorio. Desplácese y seleccione el directorio donde copió los archivos y haga clic enAbrir.
- En el campoFiltro de nombre de archivoespecifique una expresión regular para filtrar los archivos.Por ejemplo, la expresión regular siguiente muestra todos los archivos en el directorio seleccionado:[\w\s]+.[\w]+
- (\w) Cualquier carácter alfanumérico, dígito o guión bajo
- (\s) Cualquier espacio en blanco
- (+) Uno o más caracteres anteriores deben coincidir
- (.) Cualquier carácter único, incluido el propio carácter
Es posible que sea necesario ajustar esta expresión para encontrar archivos que desee analizar en el directorio especificado. Por ejemplo, si el nombre de un archivo contiene un guion (-), ajuste la expresión de la siguiente manera:[\w\s-]+.[\w]+ - En el campoNúmero de bytes, especifique1024.Los bytes mágicos de un archivo se encuentran prácticamente siempre en los primeros 1024 bytes de un archivo. Si desea analizar más que los primeros 1024 bytes de datos, deberá aumentar el número de bytes que la utilidad Analizador de tipo de archivo puede leer y mostrar.
- ParaTamaño del pedazoespecifique1.
- ParaTipo de analizadorelijaBYTE.
- Si los archivos que desea mostrar están en directorios anidados, elija la opciónAnálisis recurrente.Si elige la opción Análisis recurrente, o tiene un conjunto de datos grande, aumente el tamaño del montón de Java asignado a la utilidad Analizador de tipo de archivo.
- Haga clic enAnalizar conjunto de datos. La utilidad analiza todos los archivos en el directorio y muestra los resultados. La utilidad organiza cada archivo por fichas según su extensión. En la fichaTodos, la utilidad muestra todos los archivos detectados. En la ficha.class, la utilidad muestra solamente los archivos de clase de Java.
- Vuelva a hacer clic enAnalizar los datos de la tabla. Esta vez la utilidad resalta los bytes de cada archivo que coinciden con todos los archivos.Como puede ver, para los archivos de clase de Java hay varios bytes en común, incluidos los primeros cuatro (de 0 a 3):CA FE BA BE. Estos bytes son los bytes mágicos para los archivos de clase de Java.En el menú desplegable, en la parte inferior, puede cambiar cómo la utilidad analiza datos de la tabla. La opción predeterminada es COLUMN_MATCH, que proporciona generalmente la coincidencia más exacta. Si cambia a este modo análisis, deberá volver a hacer clic enAnalizar los datos de la tablapara ver los bytes que coinciden por fila.
- Ahora que sabe cuáles son los bytes mágicos para los archivos de clase de Java, puede crear un script para detectar este tipo de archivo. Es posible entonces probar su script con la utilidad Analizador de tipo de archivo.En el campoSolución, escriba el siguiente script para detectar los archivos de clase de Java:$Int1 = getHexStringValue('CAFE'); $Int2 = getBinaryValueAt($data, 0x0, 2); assertTrue($Int1 == $Int2); $Int3 = getHexStringValue('BABE'); $Int4 = getBinaryValueAt($data, 0x2, 2); assertTrue($Int3 == $Int4);
- Haga clic enSolución de prueba. En la parte superior de la interfaz se veArchivos con coincidencias. Solamente los archivos que contienen los bytes mágicos CAFE BABE aparecen en la sección “Archivos con coincidencias” de la interfaz. Los archivos que no contienen estos bytes mágicos aparecen en la secciónArchivos sin coincidenciasen la mitad inferior de la interfaz.
- Cuando analiza el conjunto de datos, la utilidad Analizador de tipo de archivo indica que los primeros 2 bytes de un archivo de clase de Java son CA FE. De modo que, en la primera expresión de script puede asignar ese valor como cadena hexadecimal a la variable$Int1.
- En la segunda expresión del script, obtiene los primeros 2 bytes de cada archivo y asigna ese valor a la variable$Int2. La porción “0x0, 2" de la expresión indica el motor de script para comenzar con el primer byte y obtener los primeros dos.
- En la tercera expresión se comparan los valores de las dos variables y se comprueba la existencia de una coincidencia.
- El proceso se repite para el tercer y el cuarto byte (“0x2, 2"), en busca de una coincidencia en BA BE. Los archivos que coinciden con ambas evaluaciones son detectados por el script y aparecen en la porción “Archivos con coincidencias” de la interfaz.
- En la secciónNotaescriba un comentario sobre la solución, como “Script personalizado para detectar archivos de clase de Java”.
- En la interfaz Analizador de tipo de archivo, seleccioneGuardar > Archivo. Dé al archivo un nombre y guárdelo en un directorio local, comoC:\temp\JavaClassFiles.fgi.
- Cierre la interfaz del Analizador de tipo de archivo y reiníciela. ElijaArchivo > Abriry desplácese y seleccione el archivoJavaClassFiles.fgi.Los parámetros del conjunto de datos y la solución del script aparecen en la interfaz. Desde aquí se puede volver a analizar el conjunto de datos y ajustar la solución según sea necesario. Haga clic enEditar conjunto de datospara agregar o eliminar los directorios que contienen archivos que desea analizar. Es posible también hacer clic con el botón derecho en una fila y eliminar un archivo individual del conjunto de datos.
- Una vez haya depurado la solución, implemente el script en una sesión de la regla Firma de tipo de archivo predeterminado. Es posible entonces crear e implementar las nuevas políticas que usan esta regla para detectar el tipo de archivo personalizado.