Apa Itu Hex Editor (dan Kapan Anda Benar-Benar Membutuhkannya)
Seseorang menyuruh Anda “periksa di hex editor”, atau Anda mencari hex viewer dan mendarat di sini tanpa benar-benar yakin apa itu. Tidak apa-apa. Hex editor adalah program yang menunjukkan isi mentah sebuah file, byte demi byte, alih-alih mencoba menafsirkannya sebagai dokumen, gambar, atau lembar kerja. Ini sedekat mungkin yang bisa Anda dapatkan untuk melihat persis apa yang tersimpan di disk.
Mengapa hex, tepatnya
Sebuah file, file apa pun, hanyalah rangkaian byte, dan setiap byte adalah angka dari 0 hingga 255. Anda bisa menampilkan angka-angka itu dalam desimal, tetapi 0 hingga 255 memakan hingga tiga digit dan tidak berjajar rapi. Anda bisa menampilkannya dalam biner, tetapi satu byte adalah delapan digit 1 dan 0, yang sulit dipindai secara visual. Heksadesimal (basis 16, menggunakan digit 0-9 dan huruf A-F) adalah jalan tengahnya: setiap byte pas dalam tepat dua karakter, dari 00 hingga FF, sehingga sebaris byte berjajar menjadi grid rapi yang mudah dipindai. Itulah keseluruhan alasan mengapa “hex” menjadi standar, bukan desimal atau biner. Ini adalah pilihan keterbacaan, bukan keharusan teknis.
Apa yang sebenarnya Anda lihat
Buka file apa pun di hex editor dan Anda akan melihat tiga hal berdampingan, untuk data yang sama:
- Offset: seberapa jauh ke dalam file Anda berada, biasanya ditampilkan dalam hex juga, sehingga Anda dapat melompat kembali ke posisi tertentu nanti.
- Byte hex: data sebenarnya, dua karakter per byte, dikelompokkan menjadi baris (umumnya 16 byte per baris).
- Tampilan teks (ASCII): byte yang sama ditafsirkan ulang sebagai karakter, untuk bagian file mana pun yang kebetulan berupa teks yang bisa dibaca. Byte non-teks biasanya ditampilkan sebagai titik pengganti.
Kolom ketiga itulah alasan path file, label, dan string versi sering terlihat bahkan di file yang sebagian besar data biner: teks tersemat mana pun muncul di kolom itu meskipun file secara keseluruhan bukan file teks.
Kapan Anda benar-benar membutuhkannya
Kebanyakan orang menjalani seluruh hidupnya tanpa pernah membuka hex editor, dan itu benar-benar normal. Situasi di mana ia benar-benar alat yang tepat bersifat spesifik:
- Ekstensi file tidak cocok dengan isi sebenarnya. Seseorang mengganti nama
.zipmenjadi.doc, atau Anda tidak yakin file.dbbenar-benar basis data. Beberapa byte pertama sebagian besar format adalah tanda tangan yang khas (PNG dimulai dengan89 50 4E 47, ZIP dengan50 4B), dan tampilan hex memastikannya dalam hitungan detik. - File korup dan Anda ingin tahu bagaimana. Unduhan terpotong, transfer buruk, header yang tertimpa. Melihat byte mentah memberi tahu Anda apakah kerusakan ada di awal, akhir, atau tersebar.
- Anda sedang men-debug sesuatu yang membaca atau menulis data biner, format save file, file konfigurasi, protokol jaringan, dan Anda perlu memastikan persis byte apa yang diproduksi.
- Anda ingin memverifikasi nilai tertentu, seperti memastikan empat byte benar-benar mewakili ukuran file yang Anda harapkan, atau memeriksa stempel waktu, tanpa memercayai alat kotak-hitam untuk menafsirkannya dengan benar.
- Rasa ingin tahu. Banyak orang membuka hex editor sekali saja hanya untuk melihat seperti apa sebenarnya tampilan format file yang familier di baliknya. Itu alasan yang benar-benar sah.
Jika tidak satu pun dari itu menggambarkan apa yang Anda lakukan, Anda mungkin tidak membutuhkannya, dan itu tidak apa-apa. Ini alat spesialis untuk jenis pertanyaan tertentu.
Apa yang membuat hex editor bagus, bukan sekadar fungsional
Begitu Anda benar-benar membutuhkannya, alat-alat itu sebagian besar melakukan pekerjaan dasar yang sama: menampilkan byte, membiarkan Anda menggulir, membiarkan Anda mencari. Perbedaan yang penting adalah soal keamanan dan kejelasan, bukan jumlah fitur mentah. Hex Fiend adalah pilihan gratis dan sumber terbuka yang akhirnya dipakai kebanyakan pengguna Mac secara default, dan ia benar-benar mumpuni, terutama dengan file yang sangat besar. Hexter mengambil pendekatan yang lebih sempit dan lebih berhati-hati: setiap file terbuka dalam mode baca-saja, jadi melihat sesuatu yang tidak dikenal tidak membawa risiko, penyuntingan adalah langkah eksplisit yang bisa dibatalkan alih-alih keadaan default, dan format file umum (PNG, ZIP, Mach-O, WAV, SQLite) diuraikan strukturnya secara otomatis alih-alih membiarkan Anda mendekode header secara manual.
Mana yang Anda inginkan bergantung pada apa yang Anda lakukan. Jika Anda membandingkan dua file multi-gigabyte byte demi byte, diff Hex Fiend dibangun untuk skala itu. Jika Anda hanya perlu memastikan file itu sebenarnya apa, memeriksa segelintir byte, atau membuat suntingan kecil yang hati-hati tanpa khawatir merusak aslinya secara tidak sengaja, itulah situasi yang Hexter dibangun untuknya.