Menú principal

miércoles, 9 de enero de 2013

Saber qué tiene un fichero en Mac OS X: head, xxd y file

A veces llega a nuestro sistema Mac OS X - algunas veces sin saber cómo pudo suceder esto - un archivo del que no sabemos qué hay dentro de él. En esos casos, por si es peligroso, una de las cosas que podemos hacer es subirlo a Virus Total y ver qué nos dicen los antivirus. Sin embargo, para revisar su contenido podemos echar mano de algunos comandos sencillos en la consola bash de nuestro sistema operativo Mac OS X. Aquí van unos sencillos por si no los conoces, que pueden serte útiles.

- Filtros de ficheros: En la consola del sistemas tenemos comandos que nos hacen un volcado ASCII del contenido del fichero. Ejemplos como cat que lo muestra completo, more que muestra el contenido completo paginado y que permite que podamos cancelar en cada página pulsando la tecla "q", head que muestra las primeras líneas del fichero o tail, que muestra las últimas.

Figura 1: El comando head muestra la cabecera de un fichero. Por defecto 10 líneas.

Seguro que cada uno de ellos te puede venir bien en diferentes casos, pero head es una opción muy buena ya que nos deja ver las cabeceras del fichero - por defecto las 10 primeras líneas -. Por supuesto, si por algo se precia la consola de los sistemas *NIX* es por tener una cantidad brutal de filtros de ficheros, como cut o wc, además de poderosos lenguajes de script, como el clásico y poderoso awk.  Si necesitas un filtro para un archivo, busca en la ayuda, seguro que existe o hay uno similar.

- Volcado hexadecimal de un fichero: En la consola de Mac OS X está disponible un filtro de fichero que realiza un volcado en formato hexadecimal del fichero. Este comando es xxd y tiene opciones para formatear la salida en configuraciones distintas. No es muy conocido, pero sí útil y rápido para no abrir el editor hexadecial completo en un vistazo rápido o para poder hacer determinados scripts.

Figura 2: Volcado hexadecimal del fichero filtrado con head.

- Análisis de tipo de fichero: El último comando que os traemos hoy es file. Esta sencilla utilidad tiene una base de datos que hace fingerprinting al tipo de ficheros que lleva. Tiene una opción por defecto que busca el magic number - la secuencia inicial que identifica a un tipo de fichero - pero tiene un modo más exhaustivo con -k que permite determinar más formatos contenidos dentro del mismo fichero. Esto es ideal para detectar intentos de engaños en ficheros camuflados. Además, tiene opciones para analizar el contenido de archivos comprimidos, facilitando la generación de scripts de revisión de ficheros.

Figura 3: Tipo de archivo detectado con el comando file.

Si eres una persona experta con el uso del terminal de comandos seguro que los conocías todos, y si no lo eres, que sea el comienzo de un bonito idilio entre tú y la consola bash de tu Mac OS X.

1 comentario:

  1. Yo en vez de usar xxd, uso mas hexdump -C o en su version abreviada "hd" que con eso me sale ya con formato hexadecimal/ASCII

    xxd lo uso normalmente para obtener todos los bytes en hexa...

    Comando basicos en mi dia a dia =)

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares