Come leggere un file Hex

Tramite: O2O 25/10/2018
Difficoltà:difficile
18

Introduzione

In svariate occasioni, sopratutto quando in ambito di programmazione informatica si vuole esaminare accuratamente il contenuto di un file, è necessario scendere in un linguaggio a più basso livello. In altre parole, quello che si vuole fare è esaminare il contenuto di un file senza il filtro rappresentato dalla visualizzazione da parte di un editor di testo quale Notepad, Write o addirittura Word. Infatti tutti questi programmi, seppur con qualche restrizione, sono in grado di gestire adeguatamente dei file di testo, ma se il file è binario o contiene dei caratteri di controllo non normalmente visualizzabili allora tutto ciò che si ottiene è solo una vista parziale del file. In questo caso ci vengono in aiuto i programmi di Hex editor, ossia programmi in grado di creare e manipolare file in formato Hex (dove la dicitura "Hex" sta per esadecimale). Essi utilizzano 16 simboli, di cui, i primi 10 caratteri sono numeri che vanno da 0 a 9, mentre per gli ultimi 6 si utilizzano le lettere che vanno da A ad F.
Tramite l?estensione Hex, quindi, si può leggere un file binario in formato testo ASCII (American Standard Code for Information Interchange) o esadecimale, anche se superiore ai 64Kb di grandezza o qualsiasi altro file di cui vogliamo conoscerne il contenuto più approfonditamente. Il programmatore, in ambiente Hex, è in grado di modificare i singoli byte e di effettuare una ricerca, semplicemente usando sequenze alfanumeriche. Un Hex editor può, inoltre, analizzare file di notevoli dimensioni, rendendoli più leggeri e manovrabili.

In questo tutorial vi illustreremo come leggere ed interpretare un file Hex. Le applicazioni, una volta che avrete imparato a leggere i file Hex sono svariate. Potrete tradurre delle intere stringhe nei vari linguaggi di programmazione, modificare file binari direttamente dal codice, oppure, se avete necessità di recuperare file corrotti che non vengono più aperti, basterà capire dove e quali byte andare a modificare per leggere nuovamente i vostri dati.
Vogliamo ricordare che se desiderate modificare un eseguibile di software proprietario, dovete verificare se la licenza del programma in questione permetta un'azione simile, altrimenti quello che state facendo è illegale.
È bene sapere che questa guida è indicata prevalentemente per chi ha delle conoscenze base di architettura degli elaboratori e di linguaggio macchina. Buona lettura.

28

Occorrente

  • Un file Hex
  • Un Hex editor
  • Conoscenza adeguata dei caratteri esadecimali
  • Computer
38

Scaricare un Hex editor

La prima cosa da fare per poter leggere i file Hex è proprio quella di scaricare un programma di Hex editor. In circolazione ne esistono di diversi tipi e per le esigenze più disparate. Vi segnaliamo in particolare Hexed, un Hex editor che permetterà di lavorare con i vostri file Hex senza scaricare alcun software sul vostro PC, tutto quello che dovrete fare è cliccare su https://hexed.it/ e caricare il vostro file Hex. Un altro software, molto in uso per i sistemi Microsoft, è il seguente: http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm#download un Hex editor freeware disponibile in diverse versioni e capace di aprire senza alcuna difficoltà file binari di dimensioni fino a 2 Gb.
Per i sistemi Linux basati su Debian è sufficiente installare il pacchetto "hexedit" da terminale con la dicitura "sudo apt-get install hexedit" e avviate, sempre da terminale, "hexedit" per poter iniziare ad usare questo programma.
Per chi usa invece Mac OS vi segnaliamo https://ridiculousfish.com/hexfiend/ un editor veloce, leggero e molto semplice da installare.

48

Leggere i file Hex

Una volta scaricato il vostro Hex editor dovrete avere a disposizione il vostro file che desiderate ispezionare. Qualsiasi tipo di Hex editor stiate utilizzando dovete uploadare il vostro file dal menù "Apri". All'apertura vi accorgerete che ogni file Hex è composto da sei parti principali, indicate nella seguente sequenza:

: LLAAAATTDDCC
In questa rappresentazione i due punti indicano l?inizio del record. I due valori esadecimali (LL), mostrano il numero di byte presenti nella riga. Ricordate che il numero massimo dei byte concessi è 255 (0xFF). Quelli più usati sono 16 byte (0x10) e 32 byte (0x20). AAAA segnala la posizione iniziale su cui scrivere i byte. L?indirizzo di base è uguale a zero di default. Si può modificare inserendo il record desiderato. TT indica il tipo di record, con valori che vanno da 00 a 05. DD contengono il valore del byte (basso/alto) nei dati, sempre rappresentato da cifre esadecimali. Il dispositivo di programmazione utilizza CC per effettuare una verifica di correttezza dei dati ricevuti.

Continua la lettura
58

Imparare la struttura dei record

Nei file Hex è possibile inserire ben 5 tipi di record, indicati con i corrispondenti simboli. 00 è un record che contiene dati. 01 indica la fine del file. Questo va posizionato nell'ultima riga del file ed inserito solo una volta. 02 contiene un indirizzo di base. Questo, moltiplicato per 16 ed aggiunto all'indirizzo successivo di ogni record, permette di tracciare l?indirizzo di partenza dei dati. 03 per processori 80X86, raffigura il contenuto iniziale dei registri IP. 04 permette di potenziare l?indirizzo a 32 bit, fino a 4Gb di memoria (ove la vostra memoria lo permetta). 05 raffigura il valore bit caricato nel registro EIP (Extended Istruction Pointer). Questo registro dice al computer dove andare per eseguire il prossimo programmo e controllare il flusso dei programmi già in esecuzione.

68

Conclusioni

Ecco un esempio per comprendere più chiaramente l'interpretazione di un record all'interno di un file Hex.Supponete di trovarvi di fronte alla seguente sequenza di dati:
:0B00100061A7
Secondo la corretta interpretazione del record Hex, comprenderete che si tratta di una stringa a 0 byte (0B). Si posiziona in indirizzi successivi a 0010 e contiene dati (00).
Il valore dei byte, nei dati, equivale a 61 e si utilizza A7 per assicurarsi dell?esattezza dei dati inviati. Al momento l'idea di base potrebbe risultare piuttosto complessa ma garantiamo che con una buona dose di pratica riuscirete a leggere e modificare i file che vi interessano (sempre nel rispetto delle licenze dei programmi). Con la speranza che questa guida vi possa essere stata utile vi auguriamo buon lavoro con i programmi di Hex editor.

78

Guarda il video

88

Consigli

Non dimenticare mai:
  • Prima di effettuare qualsiasi modifica, fate una copia del vostro file Hex, così da non danneggiare l’originale, in caso di imprevisti.
  • Fate molta pratica nella lettura dei record, in modo da identificare a prima vista quali sono i byte che vi interessa esaminare
Alcuni link che potrebbero esserti utili:

Potrebbe interessarti anche

Naviga con la tastiera

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Segnala il video che ritieni inappropriato
Devi selezionare il video che desideri segnalare
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Programmazione

Come effettuare il parsing di un file XML

Le nuove tecnologie ITC sfruttano opportuni metadati, per arricchire documenti html o contenuti multimediali. In questa guida, vedremo come effettuare il parsing di un file xml con Java. Questo linguaggio ad oggetti è molto importante per uno sviluppatore....
Programmazione

Come spostare un file in Java

Spostare i file in Java potrebbe sembrare inizialmente un'operazione complessa, ma con un po' di attenzione potremo farlo semplicemente da soli, senza dunque rivolgerci ad un tecnico informatico specializzato. Così facendo, non solo potremo imparare ad...
Programmazione

Come utilizzare file JSON

In questa guida vi spiegheremo come utilizzare i file Json. Per prima cosa, iniziamo con il dire che questo nome sta per JavaScript Object Notation, ed indica un formato che consente di immagazzinare diverse tipologie di informazioni in modo estremamente...
Programmazione

Come modificare un file DLL

L'acronimo DLL, ovvero Dynamic-link Library, costituisce in programmazione una libreria a collegamento dinamico. Queste ultime vengono caricate direttamente all'avvio del proprio PC (boot) e racchiudono in sé i codici di linguaggio, che consentono al...
Programmazione

Come creare un file eseguibile Java

Quando si parla di Java si intende un linguaggio di programmazione che è stato pensato e realizzato allo scopo di non dipendere dalla piattaforma di esecuzione. Premesso ciò, va aggiunto che Java può essere utilizzato da sistemi come Windows, Linux, Unix,...
Programmazione

Come creare uno script eseguibile su Windows

Nella sua forma più semplice, un file batch (o script batch) è un elenco di diversi comandi che vengono eseguiti quando si fa doppio clic sul file. I file batch risalgono al DOS, ma funzionano ancora su versioni moderne di Windows. Gli script di PowerShell...
Programmazione

Come creare un login in PHP con sessioni

I linguaggi di programmazione sono diversi e ci tornano utili per organizzare in modo ordinato numerose pagine web. Uno dei più funzionali è senza alcun dubbio PHP (Hypertext Preprocessor). Avete presente la pagina che ci permette di accedere ad un sito...
Programmazione

Come eseguire il tar di una directory

Il comando tar su Linux viene spesso utilizzato per creare file di archivio. Tar. Gz o .tgz, chiamati anche "tarball". Questo comando ha un gran numero di opzioni, ma è sufficiente ricordare alcune lettere per creare rapidamente archivi con tar. Il comando...