Cum se creează un hexadecimal al unui fișier sau un șir de text

Introducere

O memorie hexazecimală este o vizualizare hexazecimală a datelor. Poate doriți să utilizați hexazecimal atunci când depanați un program sau pentru a inversa un program.

De exemplu, multe formate de fișiere au caractere hexagonale specifice pentru a denumi tipul lor. Dacă încercați să citiți un fișier utilizând un program și din anumite motive nu se încarcă corect, este posibil ca fișierul să nu fie în formatul pe care îl așteptați.

Dacă doriți să vedeți cum funcționează un program și nu aveți codul sursă sau software-ul care inversează inginerii codului, puteți să vă uitați la halda hexazecită pentru a încerca să aflați ce se întâmplă.

Ce este Hexadecimal?

Computerele gândesc în binar . Fiecare caracter, număr și simbol este referit la o valoare binară sau la mai multe valori binare.

Ființele umane, totuși, au tendința de a gândi în zecimale.

mii sute zeci Unități
1 0 1 1

Ca și oameni, numerele noastre cele mai scăzute sunt numite unități și reprezintă numerele de la 0 la 9. Când ajungem la 10, resetăm coloana unităților înapoi la 0 și adăugăm 1 la coloana zece (10).

128 64 32 16 8 4 2 1
1 0 0 1 0 0 0 1

În binar, cel mai mic număr reprezintă doar 0 și 1. Când trecem 1, am plasat 1 în coloana 2 și o coloană 0 în coloana 1. Când doriți să reprezentați 4, introduceți 1 în coloana 4 și resetați coloana 2 și 1.

Prin urmare, pentru a reprezenta 15 veți avea 1111, ceea ce înseamnă 1 8, 1 4, 1 2 și 1. (8 + 4 + 2 + 1 = 15).

Dacă am vizualizat un fișier de date în format binar, ar fi absolut uriaș și practic imposibil să înțelegem.

Următorul pas de la binar este octal, care utilizează 8 ca număr de bază.

24 16 8 1
0 1 1 0

Într-un sistem octal prima coloană trece de la 0 la 7, a doua coloană este de la 8 la 15, a treia coloană 16 la 23 și a patra coloană 24 la 31 și așa mai departe. În timp ce în general mai ușor de citit decât binar, cei mai mulți oameni preferă să utilizeze hexazecimal.

Hexadecimal utilizează 16 ca număr de bază. Acum, acesta este locul în care devine confuz, deoarece, în calitate de oameni, ne gândim la cifre de la 0 la 9.

Deci, ce este folosit pentru 10, 11, 12, 13, 14, 15? Răspunsul este scrisori.

Valoarea 100 este prin urmare reprezentată de 64. Veți avea nevoie de 6 din coloana 16s care aduce 96 și apoi 4 în coloana unități făcând 100.

Toate caracterele dintr-un fișier vor fi notate cu o valoare hexazecimală. Valorile acestor valori depind de formatul fișierului propriu-zis. Formatul fișierului este notat cu valori hexazecimale, care sunt de obicei stocate la începutul fișierului.

Cu cunoștințe despre secvența valorilor hexazecimale care apar la începutul fișierelor, puteți să determinați manual formatul în care se află fișierul. Vizualizarea unui fișier într-un registru hexazecimal vă poate ajuta să găsiți caractere ascunse care nu sunt afișate atunci când fișierul este încărcate într-un editor de text normal.

Cum de a crea un Hex Dump folosind Linux

Pentru a crea o memorie hex folosind Linux, folosiți comanda hexdump.

Pentru a afișa un fișier ca hex la terminalul (ieșire standard) executați următoarea comandă:

hexdump nume fișier

De exemplu

hexdump image.png

Ieșirea implicită va afișa numărul liniei (în format hexazecimal) și apoi 8 seturi de 4 valori hexazecimale pe linie.

De exemplu:

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

Puteți furniza comutatoare diferite pentru a modifica ieșirea implicită. De exemplu, specificând comutatorul minus b va produce o decalare de 8 cifre, urmată de 16 coloane de trei coloane, zero umplut, octeți de date de intrare în format octal.

hexdump -b image.png

Prin urmare, exemplul de mai sus va fi prezentat după cum urmează:

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

Formatul de mai sus este cunoscut ca un afișaj octal unu-octet.

Un alt mod de vizualizare a fișierului este afișarea unui singur octet folosind comutatorul minus c.

hexdump -c image.png

Acest lucru afișează din nou offsetul, dar de această dată este urmat de șaisprezece caractere separate de spațiu, trei coloane, spațiu umplut cu date de intrare pe linie.

Alte opțiuni includ afișarea Canonical hex + ascii care poate fi afișată utilizând comutatorul minus C și afișajul zecimal de două octeți care poate fi afișat utilizând comutatorul minus d. Comutatorul minus o poate fi utilizat pentru afișarea unui afișaj octal de două octeți. În cele din urmă, comutatorul minux x poate fi utilizat pentru a afișa afișarea hexazecimală în doi octeți.

hexdump-image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Dacă niciunul dintre formatele de mai sus nu corespunde nevoilor dumneavoastră, folosiți comutatorul minus e pentru a specifica formatul.

Dacă știți că un fișier de date este foarte lung și doriți doar să vedeți primele câteva caractere pentru a determina tipul acestuia, puteți folosi comutatorul -n pentru a specifica cât de mult din fișier să fie afișat în hex.

hexdump -n100 image.png

Comanda de mai sus afișează primii sute de octeți.

Dacă doriți să săriți o porțiune din fișier, puteți utiliza comutatorul minus s pentru a seta o decalare pentru a porni de la.

hexdump -s10 image.png

Dacă nu furnizați un nume de fișier, textul este citit din intrarea standard.

Pur și simplu introduceți următoarea comandă:

HexDump

Apoi introduceți textul în intrarea standard și încheiați tastând quit. Hexul va fi afișat la ieșirea standard.

rezumat

Utilitarul hexdump este evident o unealtă destul de puternică și ar trebui să citiți cu siguranță pagina manuală pentru a obține deplin grija cu toate caracteristicile.

De asemenea, veți avea nevoie de o înțelegere bună a ceea ce căutați atunci când citiți rezultatul.

Pentru a vedea pagina manuală, executați următoarea comandă:

om hexdump