Saya beruntung dulu ketika kali pertama belajar komputer lebih dari 25 tahun yang lalu, saya hanya punya satu pilihan sistem operasi: DOS. Sistem operasi ini sangat sederhana dan bisa dimengerti sampai sangat detail. Waktu itu hanya ada 1 filesystem yang bisa dipakai untuk DOS: File Allocation Table (FAT).
Salah satu tool yang sangat membantu saya mendalami berbagai hal yang berhubungan dengan komputer adalah PC Tools. Software “ajaib” ini punya banyak fungsi, dan salah satunya adalah sebagai hex editor. Dengan hex editor ini dulu mudah sekali untuk mengubah string dalam sebuah program (misalnya iseng mengganti pesan error jadi bahasa Indonesia).
Hex editor ini juga berguna untuk memahami mengenai filesystem FAT. Misalnya jika tidak sengaja menghapus sebuah file, saya bisa mengedit sendiri FAT untuk mengembalikan huruf pertama file tersebut. Dalam FAT, jika file dihapus, hanya huruf pertamanya diganti dengan 0xE5, dan selama file belum ditimpa, maka bisa dengan mudah dikembalikan.
Sejak saat itu di berbagai sistem operasi, hex editor menjadi salah satu tool andalan. Berbagai varian tool ini telah membantu saya memahami banyak hal, dari mulai hal kecil misalnya mengecek apakah ada karakter spesial yang tidak terlihat dengan editor teks, sampai memahami format sebuah file.
Di Linux saya tidak memakai tool khusus, biasanya saya melihat representasi hexa sebuah file di command line dengan hexdump (dengan parameter -C). Jika ingin interaktif sayamenggunakan midnight commander (mc) yang merupakan tiruan dari Norton commander yang dulu saya pakai di DOS.
Emacs, editor favorit saya, juga memiliki fitur untuk melihat dan mengedit file dalam mode hex. Ini sangat berguna untuk mengedit file yang tidak terlalu besar (dalam orde megabyte). Jika filenya terlalu besar, emacs terasa lambat, tapi ini wajar karena emacs adalah editor teks yang tidak dirancang khusus untuk file biner berukuran besar.
Di Windows saat ini saya suka memakai HxD. Editor ini cukup lightweight, gratis dan dapat mengedit file berukuran besar dengan cepat. Software ini juga masih diupdate hingga saat ini. Fungsi-fungsi tambahannya (MD5, histogram, dsb) juga cukup berguna.
Sekarang ini tidak terlalu mudah untuk memahami sebuah sistem dengan menggunakan hex editor karena berbagai hal sudah sangat kompleks. Contohnya: filesystem EXT2/3/4 atau NTFS sudah terlalu rumit dibaca manual dengan hex editor.
Khusus untuk reverse engineering, sekarang ini sebenarnya banyak juga tool yang bisa membantu memahami format file, misalnya 010 Editor (komersial) dan Kaitai Struct (open source). Tapi tetap saja diperlukan banyak membaca sebelum bisa mulai, tidak seperti jaman dulu di mana semua masih sangat sederhana.