Animazione Hover

Use the hexedit and xxd commands to view and modify binary files

You can install hexedit, a Linux system file editor. It is possible to view the contents of binary files and make changes to them.

With hexedit, you can edit images, executables, and other binary files. However, you must know the format of the file you are editing very well to make effective changes that do not break the file format. After all, you will be editing one byte at a time. This does not mean that you cannot use this command to view or edit text files. There is little or no reason to do so.

Use hexedit

Nonostante il commento precedente sui file di testo, l'esempio che segue utilizza hexedit per visualizzare/modificare un file di testo, ma solo per illustrare come il comando visualizza il contenuto del file e per suggerire un modo semplice per abituarsi al funzionamento di hexedit.Gateway di edge computing

$ hexedit myfile.txt

00000000 54 68 69 73 20 69 73 20 61 20 74 65 78 74 20 66 Questo è un testo f

00000010 69 6C 65 20 74 68 61 74 20 49 20 63 72 65 61 74 ile che io creo

00000020 65 64 20 75 73 69 6E 67 20 76 69 20 6F 6E 20 6D ed utilizzando vi on m

00000030 79 20 4C 69 6E 75 78 20 73 79 73 74 65 6D 2E 0A y Sistema Linux...

00000040 49 74 20 63 6F 6E 74 61 69 6E 73 20 6F 6E 6C 79 Contiene solo

00000050 20 61 20 66 65 77 20 6C 69 6E 65 73 20 6F 66 20 qualche riga di

00000060 74 65 78 74 2E 0A 54 68 65 20 45 6E 64 21 0A testo... Fine!.

DTU/Edge Gateway/IoT Platform/Gateway Module/Linux hexedit and xxd commands

La visualizzazione qui sopra mostra che una newline ("0A" nell'output esadecimale) appare come un punto nel testo a destra. Ogni segmento aggiuntivo di 2 byte visualizzato tra il numero di riga (esadecimale) a sinistra e il testo a destra rappresenta un carattere. Ad esempio, le quattro stringhe a doppio byte (54 68 69 73) a sinistra della prima riga di testo corrispondono alla parola "Questo" mostrata a destra. Se si desidera cambiare questa parola in "That", è possibile toccare il tasto freccia destra per raggiungere 9 e digitare "1", quindi toccare nuovamente la destra per raggiungere 3 e digitare "4". Il testo visualizzato sulla destra verrà modificato di conseguenza.

È possibile utilizzare ^s per cercare byte specifici. Verrà richiesto di inserire ciò che si desidera cercare. Se si desidera salvare le modifiche, uscire con ^x e rispondere con "y". Tenere premuto il tasto freccia giù per scorrere la riga di dati.

Gli spostamenti all'interno di un file binario funzionano allo stesso modo, ma è necessario capire quali parti del file possono essere modificate senza interrompere il formato del file.

I file eseguibili iniziano solitamente con qualcosa di simile:

00000000 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............

00000010 03 00 3E 00 01 00 00 00 10 6B 00 00 00 00 00 00 ..>……k……

00000020 40 00 00 00 00 00 00 00 40 22 02 00 00 00 00 00 @…..@”……

00000030 00 00 00 00 40 00 38 00 0D 00 40 00 1F 00 1E 00 ....@.8...@.....

00000040 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00 ……..@…….

00000050 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 @…..@…..

00000060 D8 02 00 00 00 00 00 00 D8 02 00 00 00 00 00 00 ............

00000070 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 …………

The ELF on the top line to the right of . identifies this file as an ELF file. ELF is the universal standard for executable files, but the content will not be readable text; it will be compiled code. If you were to change anything in this file, there’s a good chance it won’t run properly anymore and could cause a segmentation fault.

Il comando hexedit viene talvolta utilizzato nelle indagini sulla criminalità informatica perché nulla è nascosto all'osservatore, quindi può aiutare a trovare malware incorporato, ecc. Tuttavia, è utile sapere cosa si sta cercando e dove si possono trovare questi dati. È sempre una buona idea eseguire un backup di qualsiasi file che si intende modificare, in modo da poterlo ripristinare facilmente in caso di necessità.

La pagina man del comando hexedit descrive come muoversi all'interno dei file, uscire senza/senza salvare le modifiche, eseguire ricerche e altre operazioni. Una volta che si sa quali modifiche sono valide, è molto facile muoversi all'interno del file e apportare modifiche.

Revealing the secrets of NB network/hexedit

Utilizzare xxd

Il comando xxd consente di creare un dump esadecimale da un file. In altre parole, si ottiene praticamente lo stesso risultato di hexedit, ma xxd visualizza solo l'output. Non fornisce alcun modo per modificare il contenuto del file. Nell'esempio che segue, usiamo xxd per visualizzare il contenuto esadecimale nella parte superiore di un file jpg, insieme alle traduzioni da esadecimale a carattere disponibili. Si può notare che l'immagine in questione sembra essere stata creata con Photoshop.

$xxd micro.jpg | testa

00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0048......JFIF.....H

00000010: 0048 0000 ffe1 004c 4578 6966 0000 4d4d .H....LExif..MM

00000020: 002a 0000 0008 0001 8769 0004 0000 0001 .*.......i......

00000030: 0000 001a 0000 0000 0003 a001 0003 0000 ............

00000040: 0001 0001 0000 a002 0004 0000 0001 0000 ............

00000050: 002a a003 0004 0000 0001 0000 0036 0000 .*.......6..

00000060: 0000 ffed 0038 5068 6f74 6f73 686f 7020 .....8Photoshop

00000070: 332e 3000 3842 494d 0404 0000 0000 0000 3.0.8BIM.....

00000080: 3842 494d 0425 0000 0000 0010 d41d 8cd9 8BIM.%.....

00000090: 8f00 b204 e980 0998 ecf8 427e ffc0 0011 .....B~....

È anche possibile reindirizzare l'output del comando xxd in un file per un'analisi successiva.

$xxd micro.jpg > micro.txt

$ headmicro.txt

00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0048......JFIF.....H

00000010: 0048 0000 ffe1 004c 4578 6966 0000 4d4d .H....LExif..MM

00000020: 002a 0000 0008 0001 8769 0004 0000 0001 .*.......i......

00000030: 0000 001a 0000 0000 0003 a001 0003 0000 ............

00000040: 0001 0001 0000 a002 0004 0000 0001 0000 ............

00000050: 002a a003 0004 0000 0001 0000 0036 0000 .*.......6..

00000060: 0000 ffed 0038 5068 6f74 6f73 686f 7020 .....8Photoshop

00000070: 332e 3000 3842 494d 0404 0000 0000 0000 3.0.8BIM.....

00000080: 3842 494d 0425 0000 0000 0010 d41d 8cd9 8BIM.%.....

00000090: 8f00 b204 e980 0998 ecf8 427e ffc0 0011 .....B~....

Si noti che hexedit utilizza le lettere maiuscole nei caratteri esadecimali, mentre xxd utilizza le lettere minuscole e visualizza il valore in blocchi di quattro byte anziché di due.

Riassumere

Il comando hexedit può essere usato per visualizzare il contenuto dei file binari (immagini, eseguibili, ecc.) e il comando xxd può essere usato per visualizzare e salvare il contenuto di questi file per una successiva analisi nel formato mostrato sopra.

 

Contatto