Cara Buat Hexdump Daripada Fail Atau String Teks

Pengenalan

Dump hex adalah pandangan data heksadesimal. Anda mungkin ingin menggunakan perenambelasan apabila menyahpepijat program atau mengembalikan program jurutera.

Sebagai contoh, banyak format fail mempunyai aksara hex tertentu untuk menandakan jenis mereka. Jika anda cuba membaca fail menggunakan program dan untuk sebab tertentu ia tidak dimuatkan dengan betul, mungkin fail itu tidak dalam format yang anda harapkan.

Jika anda ingin melihat bagaimana program berfungsi dan anda tidak mempunyai kod sumber atau sekeping perisian yang membalikkan kod jurutera, anda boleh melihat dump hex untuk mencuba dan menyelesaikan apa yang sedang berlaku.

Apa itu Hexadecimal?

Komputer fikir dalam binari . Setiap watak, nombor, dan simbol dirujuk oleh nilai binari atau berbilang perduaan.

Manusia, bagaimanapun, cenderung berfikir dalam perpuluhan.

Beribu-ribu Beratus-ratus Puluhan Unit
1 0 1 1

Sebagai manusia, nombor paling rendah kita dipanggil unit dan mewakili nombor 0 hingga 9. Apabila kita sampai ke 10 kita menetapkan semula ruangan unit kembali ke 0 dan menambah 1 pada lajur puluhan (10).

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

Dalam binari, bilangan terendah hanya mewakili 0 dan 1. Apabila kita mendapat masa lalu 1 kita meletakkan 1 pada lajur 2 dan 0 dalam 1 lajur. Apabila anda mahu mewakili 4 anda meletakkan 1 dalam lajur 4 dan tetapkan semula lajur 2 dan 1.

Oleh itu untuk mewakili 15 anda akan mempunyai 1111 yang bermaksud 1 lapan, 1 empat, 1 dua dan 1 satu. (8 + 4 + 2 + 1 = 15).

Jika kita melihat fail data dalam format binari ia akan menjadi sangat besar dan hampir mustahil untuk difahami.

Langkah seterusnya dari binari adalah oktaf, yang menggunakan 8 sebagai nombor asas.

24 16 8 1
0 1 1 0

Dalam sistem oktal, lajur pertama pergi dari 0 ke 7, lajur kedua ialah 8 hingga 15, lajur ketiga 16 hingga 23 dan lajur keempat 24 hingga 31 dan sebagainya. Walaupun secara amnya lebih mudah dibaca daripada binari kebanyakan orang lebih suka menggunakan perenambelasan.

Hexadecimal menggunakan 16 sebagai nombor asas. Sekarang inilah di mana ia menjadi membingungkan kerana sebagai manusia kita memikirkan nombor sebagai 0 hingga 9.

Jadi apa yang digunakan untuk 10, 11, 12, 13, 14, 15? Jawapannya ialah surat.

Nilai 100 Oleh itu diwakili oleh 64. Anda akan memerlukan 6 daripada lajur 16s yang membawa 96 dan kemudian 4 dalam lajur unit membuat 100.

Semua aksara dalam fail akan dilambangkan dengan nilai heksadesimal. Apakah nilai-nilai ini bergantung kepada format fail itu sendiri. Format fail dilambangkan dengan nilai heksadesimal yang biasanya disimpan pada permulaan fail.

Dengan mengetahui urutan nilai-nilai heksadesimal yang muncul pada permulaan fail, anda boleh membuat format secara manual apa format fail tersebut. Melihat fail dalam dump hex dapat membantu anda mencari aksara tersembunyi yang tidak ditunjukkan ketika file tersebut dimuatkan ke dalam editor teks biasa.

Cara Buat Dump Hex Menggunakan Linux

Untuk membuat dump hex menggunakan Linux gunakan arahan hexdump.

Untuk memaparkan fail sebagai hex ke terminal (output standard) jalankan arahan berikut:

nama fail hexdump

Sebagai contoh

hexdump image.png

Output lalai akan memaparkan nombor baris (dalam format heksadesimal) dan kemudian 8 set 4 nilai heksadesimal per baris.

Sebagai contoh:

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

Anda boleh membekalkan suis yang berbeza untuk menukar output lalai. Sebagai contoh yang menyatakan suis minus b akan menghasilkan 8 angka offset diikuti oleh 16 tiga lajur, sifar diisi, byte data input dalam format oktal.

hexdump -b image.png

Oleh itu contoh di atas sekarang akan diwakili seperti berikut:

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

Format di atas dikenali sebagai paparan oktal satu-bait.

Satu lagi cara untuk melihat fail itu adalah dalam paparan watak satu demi satu menggunakan suis minus c.

hexdump -c image.png

Ini sekali lagi memaparkan offset tetapi kali ini diikuti oleh enam belas ruang yang dipisahkan, tiga lajur, aksara diisi aksara input data setiap baris.

Pilihan lain termasuk paparan Canonical hex + ascii yang boleh dipaparkan menggunakan suis minus C dan paparan perpuluhan dua-byte yang boleh dipaparkan menggunakan suis minus d. The minus o switch boleh digunakan untuk memaparkan paparan oktal dua-bait. Akhirnya suis minux x boleh digunakan untuk memaparkan paparan heksadesimal dua-bait.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Jika tiada format di atas sesuai dengan keperluan anda kepada anda gunakan tolak dan tolak untuk menentukan format.

Jika anda tahu fail data sangat panjang dan anda hanya mahu melihat beberapa aksara pertama untuk menentukan jenisnya, anda boleh menggunakan suis -n untuk menentukan berapa banyak fail yang akan dipaparkan dalam hex.

hexdump -n100 image.png

Perintah di atas memaparkan ratus bait pertama.

Jika anda ingin melangkau sebahagian fail anda boleh menggunakan suis minus untuk menetapkan offset untuk bermula.

hexdump -s10 image.png

Sekiranya anda tidak membekalkan nama fail teks dibaca dari input standard.

Masukkan arahan berikut:

hexdump

Kemudian masukkan teks ke dalam input standard dan selesai dengan menaip berhenti. Hex akan dipaparkan kepada output standard.

Ringkasan

Utiliti hexdump jelas merupakan alat yang cukup kuat dan anda pastinya harus membaca halaman manual untuk sepenuhnya mengatasi dengan semua ciri.

Anda juga memerlukan pemahaman yang baik tentang apa yang anda cari semasa membaca output.

Untuk melihat halaman manual jalankan arahan berikut:

lelaki hexdump