Cara Membuat Hexdump File Atau String Teks

pengantar

Dumping hex adalah tampilan data heksadesimal. Anda mungkin ingin menggunakan heksadesimal ketika melakukan debug pada suatu program atau untuk merekayasa balik suatu program.

Sebagai contoh, banyak format file memiliki karakter hex spesifik untuk menunjukkan jenisnya. Jika Anda mencoba membaca file menggunakan program dan karena alasan tertentu tidak memuat dengan benar, mungkin file tersebut tidak dalam format yang Anda harapkan.

Jika Anda ingin melihat bagaimana suatu program bekerja dan Anda tidak memiliki kode sumber atau bagian dari perangkat lunak yang membalikkan kode insinyur, Anda dapat melihat dump hex untuk mencoba dan mencari tahu apa yang terjadi.

Apa itu Hexadecimal?

Komputer berpikir dalam biner . Setiap karakter, angka, dan simbol direferensikan oleh biner atau beberapa nilai biner.

Manusia, bagaimanapun, cenderung berpikir dalam desimal.

Ribuan Ratusan Puluhan Unit
1 0 1 1

Sebagai manusia, angka terendah kita disebut satuan dan mewakili angka 0 hingga 9. Ketika kita sampai ke 10, kita mengatur ulang kolom satuan kembali ke 0 dan menambahkan 1 ke kolom puluhan (10).

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

Dalam biner, angka terendah hanya mewakili 0 dan 1. Ketika kita melewati 1, kita menempatkan 1 di kolom 2 dan 0 di kolom 1. Ketika Anda ingin mewakili 4 Anda memasukkan 1 di kolom 4 dan mengatur ulang kolom 2 dan 1.

Oleh karena itu untuk mewakili 15 Anda akan memiliki 1111 yang merupakan singkatan dari 1 delapan, 1 empat, 1 dua dan satu satu. (8 + 4 + 2 + 1 = 15).

Jika kita melihat file data dalam format biner itu akan sangat besar dan hampir tidak mungkin untuk memahami.

Langkah selanjutnya dari biner adalah oktal, yang menggunakan 8 sebagai bilangan dasar.

24 16 8 1
0 1 1 0

Dalam sistem oktal kolom pertama berjalan dari 0 hingga 7, kolom kedua adalah 8 hingga 15, kolom ketiga 16 hingga 23 dan kolom keempat 24 hingga 31 dan seterusnya. Sementara umumnya lebih mudah dibaca daripada kebanyakan orang biner lebih suka menggunakan heksadesimal.

Hexadecimal menggunakan 16 sebagai bilangan dasar. Sekarang ini adalah di mana ia menjadi membingungkan karena sebagai manusia kita memikirkan angka sebagai 0 hingga 9.

Jadi apa yang digunakan untuk 10, 11, 12, 13, 14, 15? Jawabannya adalah huruf.

Nilai 100 oleh karena itu diwakili oleh 64. Anda akan membutuhkan 6 kolom 16 yang membawa 96 dan kemudian 4 di kolom unit membuat 100.

Semua karakter dalam file akan dilambangkan dengan nilai heksadesimal. Apa arti nilai-nilai ini tergantung pada format file itu sendiri. Format file dilambangkan dengan nilai heksadesimal yang biasanya disimpan di awal file.

Dengan pengetahuan tentang urutan nilai heksadesimal yang muncul di awal file, Anda dapat secara manual mencari tahu format apa file tersebut. Melihat file dalam tumpukan hex dapat membantu Anda menemukan karakter tersembunyi yang tidak ditampilkan ketika file tersebut dimuat ke editor teks biasa.

Cara Membuat Hex Dump Menggunakan Linux

Untuk membuat hex dump menggunakan Linux, gunakan perintah hexdump.

Untuk menampilkan file sebagai hex ke terminal (keluaran standar) jalankan perintah berikut:

nama file hexdump

Sebagai contoh

hexdump image.png

Output standar akan menampilkan nomor baris (dalam format heksadesimal) dan kemudian 8 set dari 4 nilai heksadesimal per baris.

Sebagai contoh:

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

Anda dapat menyediakan switch yang berbeda untuk mengubah output default. Misalnya menentukan saklar b minus akan menghasilkan 8 digit offset diikuti oleh 16 tiga kolom, nol diisi, byte data input dalam format oktal.

hexdump -b image.png

Oleh karena itu contoh di atas sekarang akan direpresentasikan sebagai berikut:

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

Format di atas dikenal sebagai tampilan oktal satu-byte.

Cara lain untuk melihat file adalah dalam tampilan karakter satu byte menggunakan switch c minus.

hexdump -c image.png

Ini lagi menampilkan offset tetapi kali ini diikuti oleh enam belas spasi terpisah, tiga kolom, ruang diisi karakter input data per baris.

Pilihan lain termasuk tampilan + hex + ascii Canonical yang dapat ditampilkan menggunakan switch C minus dan tampilan desimal dua-byte yang dapat ditampilkan menggunakan switch d dikurangi. Tombol o minus dapat digunakan untuk menampilkan tampilan oktal dua-byte. Akhirnya tombol xux minux dapat digunakan untuk menampilkan tampilan heksadesimal dua-byte.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Jika tidak ada format di atas yang sesuai dengan kebutuhan Anda, Anda menggunakan tombol minus e untuk menentukan format.

Jika Anda tahu file data sangat panjang dan Anda hanya ingin melihat beberapa karakter pertama untuk menentukan jenisnya, Anda dapat menggunakan tombol -n untuk menentukan berapa banyak file yang akan ditampilkan dalam hex.

hexdump -n100 image.png

Perintah di atas menampilkan seratus byte pertama.

Jika Anda ingin melewatkan sebagian dari file, Anda dapat menggunakan saklar minus untuk mengatur offset untuk memulai.

hexdump -s10 image.png

Jika Anda tidak memberikan nama file, teks dibaca dari input standar.

Cukup masukkan perintah berikut:

hexdump

Kemudian masukkan teks ke input standar dan selesai dengan mengetik berhenti. Hex akan ditampilkan ke output standar.

Ringkasan

Utilitas hexdump jelas alat yang cukup kuat dan Anda pasti harus membaca halaman manual untuk sepenuhnya mengatasi semua fitur.

Anda juga perlu pemahaman yang baik tentang apa yang Anda cari saat membaca output.

Untuk melihat halaman manual jalankan perintah berikut:

man hexdump