Editor hexadecimal
Un editor hexadecimal ( eng. hex-editor ), un editor hexazecimal este o aplicație pentru editarea datelor în care datele sunt prezentate într-o „ forma brută ” - ca o secvență de octeți . Poate fi fie o aplicație autonomă, fie o componentă a unei alte aplicații mai complexe, cum ar fi un dezasamblator , un depanator , un mediu de dezvoltare integrat etc.
Pentru a reprezenta valoarea octeților, se folosește un sistem numeric hexazecimal ( eng. hex adecimal ) , care este reflectat în titlul editorului. Alegerea sistemului de numere hexazecimale se datorează următorilor factori:
Factori
- Platformele cu octeți de 8 biți sunt cele mai populare . În astfel de platforme, un octet poate lua 2 8 = 256 de valori în intervalul de la 0 la 255. Numărul 256 10 scris în hexazecimal este un număr rotund de trei cifre - 100 16 .
- Faptul că acest număr are trei cifre înseamnă că nu sunt necesare mai mult de 2 cifre pentru a reprezenta orice număr din intervalul 0-255 .
- Faptul că acest număr este rotund înseamnă că toate combinațiile posibile de numere vor fi folosite pentru reprezentare și nu vor exista unele neutilizate (de exemplu, în cazul utilizării sistemului zecimal , combinațiile corespunzătoare numerelor de la 256 la 999 rămân neutilizate ).
- Când utilizați sistemul hexazecimal, se dovedește că cifra din dreapta corespunde celor patru biți inferiori ai octetului, iar cifra din stânga din intrare corespunde celor 4 biți superiori. Prin urmare, orice operații pe blocuri de 4 biți aliniate pe o limită de octeți pot fi simplificate ca operații pe cifrele corespunzătoare.
- 16 - baza minimă a sistemului de numere, în care două cifre sunt suficiente pentru înregistrare. Sistemele cu o bază mai mică ar necesita deja trei (sau mai multe) cifre și numai sistemul de numere cu baza 256 ar oferi posibilitatea de a se potrivi într-o singură cifră, ceea ce este complet inaplicabil în practică din cauza numărului mare de cifre din acesta.
Evident, de exemplu, pentru platformele cu un octet de 9 biți, s-ar folosi numere
octale de trei cifre , iar o aplicație similară ca funcționalitate s-ar numi editor oct.
Datele pe care editorul Hex le afișează și le permite editarea pot fi:
Interfață
Editorul hexadecimal afișează datele ca o matrice , fiecare celulă a cărei celulă corespunde unui octet , scris cu notație hexazecimală ca un număr din două cifre (cu un zero înainte , dacă este necesar). Numărul de coloane matrice este o putere de două, cel mai frecvent 16 sau 8 coloane, uneori 4. Numărul de rânduri depinde de numărul de octeți de afișat/editat. În cazul a 16 coloane, un rând corespunde unui paragraf .
În plus, sunt adesea folosite elemente suplimentare:
- În stânga matricei, este afișată o riglă (prezentată cu albastru în figură) de numere: fiecare linie corespunde unui număr care indică adresa/offset-ul primului octet al acestei linii. Pasul de adresă este egal cu numărul de coloane.
- Deasupra matricei este afișată o altă linie (afișată cu verde în figură) de numere: deasupra fiecărei coloane este afișată decalajul octetului din această coloană față de primul octet al liniei corespunzătoare. Suma numărului corespunzător irândului --lea și a numărului corespunzător jcoloanei --lea este adresa/offset-ul octetului (i;j)la intersecția rândului dat și a coloanei luate.
- În dreapta matricei, pot fi afișate aceleași date, dar într-o interpretare diferită. Cea mai frecvent utilizată afișare alternativă a datelor ca text ASCII (afișat cu fucsia în figură ), cu octeți ale căror valori corespund caracterelor neprintabile sunt afișate sub formă de puncte ( ·). Mulți editori vă permit să alegeți o codificare arbitrară pentru modul de afișare a textului. Varianta cu afișarea datelor sub formă de text se găsește în editorii Hex de uz general. În editoarele care fac parte dintr-un program special, cum ar fi un depanator, sunt de obicei disponibile alte moduri, cum ar fi lista de dezasamblare, sugestii de adrese și alte moduri specifice aplicației.
Majoritatea editorilor vă permit să editați atât în jumătatea stângă, cât și în cea dreaptă (dacă este disponibilă). În acest caz, modificările efectuate sunt coerente [1] .
Editorii simpli vă permit doar să modificați individual valoarea octeților selectați. Avansat - editați colecții de octeți ca blocuri solide [2] , căutați după secvențe sau modele de secvență.
Editorii hexadecimale pentru editarea imaginilor de disc pot include funcții pentru recuperarea unui sistem de fișiere deteriorat sau a fișierelor șterse accidental.
Utilizare
Editorii hexadecimale sunt folosiți pentru a edita date non-text atunci când un program specializat pentru editarea datelor existente fie nu este disponibil, fie utilizarea lui este nejustificată sau nedorită. Un exemplu ar fi modificarea unui program compilat fără a-l recompila. Deci, cu ajutorul unui editor Hex, puteți modifica valorile constantelor șirurilor și numerice conectate în codul programului, dacă determinați locația lor corect.
Dacă editorul Hex are funcțiile unui dezasamblator sau programul țintă a fost deja dezasamblat cu un alt instrument în prealabil, iar offset-ul este cunoscut, puteți face o modificare direct la codul programului și puteți modifica comportamentul acestuia. Acesta este folosit pentru remedierea erorilor , hacking , înșelăciune , ajustare manuală .
Deoarece editorul Hex este un instrument destul de versatil, nu este posibil să descriem toate opțiunile de utilizare.
Galerie
-
Editorul hexadecimal gratuit KHexEdit inclus cu KDE (kdeutils)
-
Vizualizați PSP într-un utilitar inclus cu Windowsdebug pe 32 de biți .
-
Editor hexadecimal inclus în depanatorul OllyDbg cu un dialog de editare bloc de octeți
deschis .
Vezi și
- Comparație între funcționalitățile diferitelor editori hexadecimale (ro)
- winhex
- DMDE
Note
- ↑ Adică modificările făcute în partea stângă se reflectă imediat în partea dreaptă și invers.
- ↑ De exemplu, editați 8 octeți ca număr cu virgulă mobilă dublă precizie .