Leggere file binari con Linux

Leggere file binari con Linux

Su Linux, se abbiamo la necessità di visualizzare il contenuto di file binari, abbiamo diversi comandi a disposizione.

Cominciamo col crearne uno ad hoc.

Aprite un terminale e digitate:

$ echo "0000 4865 6c6c 6f20 776f 726c 6421 0000" > text
$ xxd -r -p text > binary

Il comando xxd lo useremo anche dopo.

A questo punto vediamo i vari comandi con i rispettivi output.

Cominciamo con hexdump:

$ hexdump binary
0000000 0000 6548 6c6c 206f 6f77 6c72 2164 0000
0000010

Questo comando visualizza il contenuto in esadecimale, ottale, decimale o ascii.

Facendo il "percorso a ritroso" con xxd:

$ xxd binary
00000000: 0000 4865 6c6c 6f20 776f 726c 6421 0000  ..Hello world!..

Questo mostra già un output differente, più leggibile.

Altro comando utile è stat:

$ stat binary
  File: "binary"
  Dim.: 16            Blocchi: 8          Blocco di IO: 4096   file regolare
Device: 802h/2050d    Inode: 10257134    Coll.: 1
Accesso: (0644/-rw-r--r--)  Uid: ( 1000/   matte)   Gid: ( 1000/   matte)
Accesso  : 2016-01-15 13:29:55.834132911 +0100
Modifica : 2016-01-15 13:29:51.754135519 +0100
Cambio   : 2016-01-15 13:29:51.754135519 +0100
Creazione: -

Come vedete produce parecchio output in più.

Infatti, dalla man page, vediamo che si occupa di fornire informazioni sullo stato di un file o di un filesystem.

Ultimo comando che conosco è strings:

$ strings binary
Hello world!

Questo si occupa di stampare a video quello che trova dentro al file.

Ovviamente ognuno di questi comandi ha parecchie opzioni in più.

Qui vi ho mostrato gli esempi più basilari.

Enjoy!