petak, 8. prosinca 2017.

Kako kreirati Hexdump datoteke ili niz teksta


Uvod

Hex deponija je heksadecimalni prikaz podataka. Možda želite da koristite heksadecimal prilikom otklanjanja programa ili da biste revidirali program .

Na primjer, mnogi formati datoteka imaju specifične heks karaktere za označavanje njihovog tipa. Ako pokušavate da pročitate datoteku koristeći program i iz nekog razloga se ne učitava ispravno, možda je da datoteka nije u formatu koji očekujete.

Ako želite da vidite kako program funkcioniše i da nemate izvorni kod ili zapravo deo softvera koji obrnuti inženjere kodu možete pogledati hex deponiju kako biste pokušali da saznate šta se dešava.

Ovaj vodič će započeti raspravom o tome šta je hex u stvari, a zatim će vam pokazati kako napraviti heksadec sa standardnog unosa kao i iz datoteka.

Šta je hexadecimalno?
Računari razmišljaju u binarnom obliku . Svaki znak, broj i simbol se odnose na binarne ili više binarne vrijednosti.

Ljudska bića, međutim, imaju tendenciju razmišljanja u decimalnom broju.

Hiljade Stotine Desetine Jedinice
1 0 1 1

Kao čoveka, naši najniži brojevi se nazivaju jedinice i predstavljaju brojeve od 0 do 9. Kada dođemo do 10, kolonu jedinice vratimo nazad na 0 i dodamo 1 u desetak kolona (10). 

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

U binarnom, najmanji broj predstavlja samo 0 i 1. Kada stignemo do 1, stavimo 1 u kolonu 2 i 0 u 1 kolonu. Kada želite da predstavite 4 stavite 1 u kolonu 4 i resetujte kolonu 2 i 1.

Prema tome, da biste predstavili 15, imali biste 1111, što znači 1 osam, 1 četvrto, 1 2 i 1. (8 + 4 + 2 + 1 = 15).

Ako smo pogledali datoteku podataka u binarnom formatu, bilo bi apsolutno ogromno i praktično nemoguće imati smisla.

Sledeći korak od binarnog je oktal koji koristi 8 kao osnovni broj

24 16 8 1
0 1 1 0

U oktalnom sistemu prva kolona ide od 0 do 7, druga kolona je 8 do 15, treća kolona 16 do 23 i četvrta kolona 24 do 31 i tako dalje. Iako je obično lakše čitati nego binarno, većina ljudi više voli da koristi heksadecimalno.

Hexadecimal koristi 16 kao osnovni broj. Sada je to zbunjujuće, jer kad ljudi mislimo na brojeve od 0 do 9. Dakle, šta se koristi za 10, 11, 12, 13, 14, 15? Odgovor je pisma.

0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
7 = 7
8 = 8
9 = 9
10 = A
11 = B
12 = C
13 = D
14 = E
15 = F
Vrednost 100 je stoga predstavljena sa 64. Potreban vam je 6 od 16 kolona koja donosi 96, a zatim 4 u koloni jedinica koje čine 100.

Svi likovi u datoteci biće označeni heksadecimalnom vrijednošću. Ove vrednosti znače zavisno od formata same datoteke. Format datoteke označava heksadecimalne vrijednosti koje se obično čuvaju na početku datoteke.

Uz saznanje o nizu heksadecimalnih vrijednosti koje se pojavljuju na početku datoteka možete ručno izraditi u kojem formatu se nalazi datoteka. Pregledanje datoteke u hex dumpu može vam pomoći da pronađete skrivene znakove koji se ne prikazuju kada je datoteka učitani u normalan tekst editor.


Kako kreirati Hex deponiju koristeći Linux

Da biste kreirali heksadecu koristeći Linux koristite komandu hexdump.

Da biste prikazali datoteku kao hex za terminal (standardni izlaz) pokrenite sledeću komandu:

hexdump filename

Na primjer

hexdump image.png

Podrazumevani izlaz će prikazati broj linije (u heksadecimalnom formatu), a zatim 8 seta od 4 heksadecimalne vrijednosti po liniji.

Na primjer:

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

Možete da nabavite različite prekidače kako biste promenili podrazumevani izlaz. Na primjer, navođenjem minus b prekidača dobijate 8-cifreni offset, a zatim 16 tri kolone, nula popunjena, bajta ulaznih podataka u oktalnom formatu.

hexdump -b image.png

Stoga će gore navedeni primjer biti predstavljen na sljedeći način:

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

Gornji format je poznat kao jednobajtni oktalni prikaz.

Još jedan način za prikazivanje datoteke je prikazivanje jednim bajtom koristeći minus c prekidač.

hexdump -c image.png

Ovo ponovo prikazuje offset, ali ovog puta prati šesnaest razmaka odvojenih prostora, tri kolone, karakteri ispunjeni prostorima ulaznih podataka po liniji.

Druge opcije uključuju Canonical hex + ascii displej koji se može prikazati pomoću minus C prekidača i dvobajtnog decimalnog prikaza koji se može prikazati pomoću minus d prekidača. Minus o prekidač se može koristiti za prikaz dvobajtnog oktalnog displeja. Na kraju, minux x prekidač se može koristiti za prikaz dvostrukog heksadecimalnog displeja.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Ako nijedan od navedenih formata ne odgovara vašim potrebama, koristite minus e prekidač da biste odredili format.

Ako znate da je datoteka sa podacima veoma dugačka i da želite samo da vidite prvih nekoliko karaktera za određivanje njene vrste, možete koristiti prekidač -n da odredite koliko se datoteke prikazuje u hexu.

hexdump -n100 image.png

Gornja komanda prikazuje prvih sto bajtova.

Ako želite preskočiti dio datoteke, možete koristiti minus s prekidač da biste postavili offset za kretanje.

hexdump -s10 image.png

Ako ne unesete naziv datoteke, tekst se čita sa standardnog unosa. 

Jednostavno unesite sledeću naredbu:

hexdump

Zatim unesite tekst u standardni unos i završite tako što ćete otkucati. Heks je prikazan na standardnom izlazu.

Sažetak
Heksdump uslužni program je očigledno prilično moćan alat i definitivno morate pročitati stranicu sa uputstvima kako biste se u potpunosti uhvatili u sve funkcije.

Takođe biste trebali dobro razumjeti ono što tražite prilikom čitanja izlaza.

Da biste pogledali stranicu priručnika pokrenite sledeću komandu:

man hexdump

Nema komentara:

Objavi komentar