Файлдың немесе мәтін жолының гексафтасын жасау

Кіріспе

Hex dump - деректердің он алтылық көрінісі. Бағдарламаны жөндеу кезінде немесе бағдарламаны қайта жасау үшін он алтылықты қолданғыңыз келуі мүмкін.

Мысалы, көптеген файл пішімдерінде олардың түрін белгілеу үшін арнайы hex таңбалары болады. Егер файлды бағдарламаны пайдаланып оқып жатсаңыз және қандай да бір себептермен ол дұрыс жүктелмесе, файл сіз күткен форматта болмауы мүмкін.

Егер сіз бағдарламаның қалай жұмыс істейтінін көргіңіз келсе және кодты кері жобалайтын бағдарламаның бастапқы коды немесе бағдарламалық жасақтамасы болмаса, сіз не болып жатқанын көру және өңдеу үшін он алты бөлікке қарай аласыз.

Он алтылық сандар дегеніміз не?

Компьютерлер бинарлы түрде ойлайды. Әрбір таңба, сан және таңба екілік немесе бірнеше бинарлық мәндерге сілтеме жасайды.

Дегенмен, ондық санмен ойлауға бейім адамдар.

Мыңдаған Жүздеген Ондаған Бірліктер
1 0 1 1

Адамдар ретінде біздің ең төмен сандар бірліктер деп аталады және 0-ден 9-ға дейінгі сандарды білдіреді. Егер біз 10-ға жеткен болсақ, модульдер бағанын 0-ге қайтарамыз және ондаған бағаны (10) 1 -ге қосамыз.

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

Екілік сандарда ең төменгі сан 0 және 1 мәндерін көрсетеді. Егер біз 1-ші орынды алсақ, 2 бағанына 1, ал 1 бағанда 0-ді енгіземіз. Сіз 4 өкілі болғыңыз келсе, бағанды ​​4 бағанына қойып, 2 және 1 бағанын қайта орнатыңыз.

Демек, сіз 15-тен 1111-ді құрайды, ол 1 сегіз, 1-і, 1-і және 1-і. (8 + 4 + 2 + 1 = 15).

Егер деректер файлын екілік пішімде қарап шықсаңыз, бұл өте үлкен және іс жүзінде мүмкін болмауы мүмкін.

Екілік екілік келесі қадам сегізден тұрады, ол базалық нөмір ретінде 8 қолданылады.

24 16 8 1
0 1 1 0

Сегіз жүйеде бірінші баған 0-ден 7-ге дейін, екінші баған 8-ден 15-ге дейін, үшінші баған 16-дан 23-ке дейін және төртінші баған 24-тен 31-ге дейін болады. Көптеген адамдар екілік саннан гөрі он алтылықты пайдалануды қалайды.

Он алтылық сандар негіздік сан ретінде 16 пайдаланады. Енді бұл жерде шатастырады, себебі адамдар сан ретінде 0-ден 9-ға дейін санайды.

Сонымен, 10, 11, 12, 13, 14, 15-ке қолданылатын? Жауап - хаттар.

Демек, 100 мәні 64 болып табылады. Сізге 16-шы бағанның 6-сы қажет, ол 96-нен кейін, ал содан кейін 4 бірліктер бағанында 100-ді құрайды.

Файлдағы барлық таңбалар он алтылық мәнмен белгіленеді. Бұл мәндер файлдың өзіндік пішіміне байланысты екенін білдіреді. Файлдың пішімі, әдетте, файлдың басында сақталатын он алтылық мәндермен белгіленеді.

Файлдардың басында пайда болатын он алтылық мәндердің кезектілігін білу арқылы файлдың қай форматында қолмен жұмыс жасай аласыз. Хекстің қаптамасындағы файлды қарау файлды көрсету кезінде көрсетілмеген жасырын таңбаларды табуға көмектеседі қалыпты мәтін редакторына жүктелген.

Linux-ды пайдалану арқылы Hex Dump жасау әдісі

Linux арқылы он қаптаманы құру үшін hexdump пәрменін пайдаланыңыз.

Файлды терминалға hex (стандартты шығару) ретінде көрсету үшін келесі пәрменді іске қосыңыз:

hexdump файл атауы

Мысалға

hexdump image.png

Әдепкі бойынша, жолдың нөмірін (он алтылық форматта), содан кейін әр жолға 4 алтылық мәнді 8 жиынтығы көрсетіледі.

Мысалға:

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

Әдепкі шығаруды өзгерту үшін түрлі қосқыштарды жеткізуге болады. Мысалы, минус b қосқышын көрсететін сегіз санды офсет, одан кейін 16 үш баған, нөлдік толтырылған, сегіз форматта кіріс деректерінің байттары болады.

hexdump -b image.png

Сондықтан жоғарыда келтірілген мысал келесі түрде ұсынылады:

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

Жоғарыда көрсетілген формат бір байттық сегіздік дисплей ретінде белгілі.

Файлды қараудың тағы бір жолы - бір байттық дисплейде минус c қосқышын пайдаланып көрсетеді.

hexdump -c image.png

Бұл тағы да офсетті көрсетеді, бірақ бұл жолы он алты орын бөлінген, үш баған, әр жолға енгізу деректерінің бос орындары толтырылған.

Басқа опциялардың құрамында минус C қосқышы мен екі байтты ондық дисплей арқылы көрсетілетін Canonical hex + ascii дисплейі бар, ол минус d қосқышы арқылы көрсетілуі мүмкін. Минус о қосқышы екі байттық сегіздік дисплейді көрсету үшін пайдаланылуы мүмкін. Соңында minux x қосқышы екі байтты он алтылық дисплейді көрсету үшін пайдаланылуы мүмкін.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Жоғарыда көрсетілген форматтардың ешқайсысы сіздің қажеттіліктеріңізге сәйкес болмаса, пішімді көрсету үшін минус e қосқышын пайдаланыңыз.

Егер сіз деректер файлын өте ұзақ білсеңіз және сіз оның алғашқы түрін анықтау үшін алғашқы бірнеше таңбаларды көргіңіз келсе, сіз -n қосқышын файлдың қанша бөлігін көрсетуі үшін көрсетуіңізге болады.

hexdump -n100 image.png

Жоғарыда көрсетілген команда бірінші жүз байтты көрсетеді.

Файлдың бір бөлігін өткізіп жіберуді қаласаңыз, minus s қосқышын пайдалана аласыз.

hexdump -s10 image.png

Егер сіз файл атауын бермесеңіз, мәтін стандартты енгізуден оқылады.

Тек мына пәрменді енгізіңіз:

hexdump

Содан кейін мәтінді стандартты кіріске енгізіп, шығуды теру арқылы аяқтаңыз. Hex стандартты шығысқа көрсетіледі.

Резюме

Hexdump утилитасы өте күшті құрал болып табылады және барлық мүмкіндіктермен толығымен ұстап алу үшін нұсқаулықты оқып шығыңыз.

Сондай-ақ, сіз өнімді оқу кезінде сіз іздеген нәрсені жақсы түсінуіңіз керек.

Нұсқаулықты көру үшін келесі пәрменді іске қосыңыз:

ер адам