Kaip sukurti failo ar teksto eilutės hexdump

Įvadas

"Hex" sąvartynas yra šešioliktainis duomenų vaizdas. Galbūt norėsite naudoti heksadecimalą, kai derinsite programą arba perprogramuosite programą.

Pavyzdžiui, daugelyje failų formatų yra būdingi šešioliktainiai simboliai, nurodantys jų tipą. Jei bandote perskaityti failą naudodami programą ir dėl kokių nors priežasčių jis neteisingai įkeltas, gali būti, kad failas neatitinka norimo formato.

Jei norite pamatyti, kaip veikia programa, ir neturite šaltinio kodo ar programinės įrangos dalies, kuri sugeneruos kodą, galite ieškoti šešiabriaunės duomenų, kad pabandytumėte išsiaiškinti, kas vyksta.

Kas yra šešioliktainis?

Kompiuteriai galvoja dvejetainiai . Kiekvieną simbolį, skaičių ir simbolį nurodo dvejetainė ar kelios dvejetainės reikšmės.

Vis dėlto žmonės linkę mąstyti dešimtuke.

Tūkstančiai Šimtai Dešimtys Vienetai
1 0 1 1

Kaip žmonės, mažiausi mūsų skaičiai vadinami vienetais ir žymimi skaičiais nuo 0 iki 9. Kai mes pasiekiame 10, vienetų stulpelis atstatomas į 0 ir pridedamas 1 prie dešimties stulpelio (10).

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

Dvejetainėje mažiausio skaičiaus reikšmė yra tik 0 ir 1. Kai mes gauname ankstesnę 1, mes įvedame 1 į 2 stulpelį ir 0 į 1 stulpelį. Kai ketinate atstovauti 4, į 4 stulpelį įrašykite 1 ir iš naujo nustatykite 2 ir 1 stulpelius.

Todėl atstovauti 15 turėtumėte 1111, kuris reiškia 1 aštuoni, 1 keturi, 1 du ir 1 vienas. (8 + 4 + 2 + 1 = 15).

Jei mes žiūrėjome duomenų rinkmeną dvejetainiu formatu, tai būtų visiškai didžiulė ir praktiškai neįmanoma suprasti.

Kitas žingsnis nuo dvejetainio yra aštuonkampis, kuris naudoja 8 kaip bazinį numerį.

24 16 8 1
0 1 1 0

Aštuonmetėje sistemoje pirmasis stulpelis eina nuo 0 iki 7, antrasis stulpelis yra nuo 8 iki 15, trečia 16-23 stulpelis ir ketvirtas stulpelis nuo 24 iki 31 ir tt Nors apskritai lengviau skaityti nei dvejetainiai, dauguma žmonių nori naudoti šešioliktainį.

Šešioliktainis naudojamas kaip bazinis numeris 16. Dabar čia kyla painiavos, nes žmonėms mes galvojame apie skaičius nuo 0 iki 9.

Taigi, kas yra naudojama 10, 11, 12, 13, 14, 15? Atsakymas yra raidės.

Todėl vertė 100 yra 64. Jums reikės 6 iš 16 s kolonėlių, kurie išveda 96, o po to - 4 vienetų stulpelyje, kuriame yra 100.

Visi failo simboliai bus pažymėti šešioliktainiu dydžiu. Kokios yra šios reikšmės, priklauso nuo paties failo formato. Failo formatas žymimas šešioliktainėmis reikšmėmis, kurios paprastai saugomos failo pradžioje.

Su žinių apie šešioliktainių reikšmių seką, atsirandančią failų pradžioje, galite rankiniu būdu nustatyti, kokio formato failas yra. Failo peržiūra šešių savybių dumpoje gali padėti jums rasti paslėptus simbolius, kurie nerodomi, kai failas yra įkeltas į įprastą teksto redaktorių.

Kaip sukurti Hex Dump naudojant Linux

Norėdami sukurti "hex" sąvartyną naudodami "Linux", naudokite komandą hexdump.

Norėdami rodyti failą kaip hex į terminalą (standartinė išvestis) paleiskite šią komandą:

hexdump failo vardas

Pavyzdžiui

hexdump image.png

Numatytoji išvestis parodys eilutės numerį (šešioliktainiu formatu) ir po to 8 rinkinius iš keturių šešioliktainių verčių kiekvienoje eilutėje.

Pavyzdžiui:

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

Galite tiekti įvairius jungiklius, kad pakeistumėte numatytą išvestį. Pavyzdžiui, nurodant minuso b jungiklį, bus sukurtas 8 skaitmenų poslinkis, po kurio bus 16 trijų stulpelių, užpildytų nuline, baitai iš įvesties duomenų aštuoniu formatu.

hexdump-b image.png

Todėl pirmiau pateiktas pavyzdys bus pateiktas taip:

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

Aukščiau pateiktas formatas žinomas kaip vienetinis aštuonkis ekranas.

Kitas būdas peržiūrėti failą yra vieno baito simbolių rodinys, naudojant minuso c jungiklį.

hexdump-c image.png

Tai vėl parodo kompensaciją, tačiau šį kartą septyniolika atskirtų erdvių, trys stulpeliai, užpildyti kiekvienos eilutės simboliais užpildyti simboliai.

Kitos parinktys yra Canonical hex + ascii ekranas, kuris gali būti rodomas naudojant minuso C jungiklį ir dviejų skaitmenų dešimtainį ekraną, kuris gali būti rodomas naudojant minuso d jungiklį. Neigiamas o jungiklis gali būti naudojamas rodyti dvikabą aštuonkį ekraną. Galiausiai minux x jungiklis gali būti naudojamas rodyti dviem baitais šešioliktainį ekraną.

hexdump-image.png

hexdump-d image.png

hexdump -o image.png

hexdump-x image.png

Jei nė vienas iš aukščiau pateiktų formatų tinka jūsų poreikiams, naudokite minuso e jungiklį, norėdami nurodyti formatą.

Jei žinote, kad duomenų failas yra labai ilgas ir jūs tiesiog norėtumėte pamatyti pirmuosius keletą simbolių, kad nustatytumėte jo tipą, galite naudoti -n jungiklį, norėdami nurodyti, kiek failo turi būti rodomas hex.

hexdump-n100 image.png

Pirmiau nurodyta komanda rodo pirmąjį šimtą baitų.

Jei norite praleisti dalį failo, galite naudoti minuso jungiklį, kad nustatytumėte kompensaciją, nuo kurios pradedate.

hexdump -s10 image.png

Jei nepateiksite failo pavadinimo, tekstas bus skaitomas iš standartinio įvesties.

Tiesiog įveskite šią komandą:

hexdump

Tada įveskite tekstą į įprastą įvestį ir baigkite, įvesdami atmintį. "Hex" bus rodomas standartine išvestimi.

Santrauka

"Hexdump" programa akivaizdžiai yra gana galingas įrankis, ir jūs tikrai turėtumėte perskaityti vadovą puslapį, kad galėtumėte visiškai susipažinti su visomis funkcijomis.

Skaitydami produkciją taip pat reikės gerai suprasti, ko ieškote.

Norėdami peržiūrėti vadovo puslapį, paleiskite šią komandą:

vyras hexdump