Jadi, jika saya sudah mengerti semuanya dengan benar
Tidak terlalu.
Ini adalah file biner dan datanya tidak bisa dipahami oleh kita manusia
Biasanya file biner tidak dapat dipahami oleh manusia dan mesin, terutama ketika tujuan dari file tersebut tidak diketahui. Perhatikan bahwa tidak semua file biner adalah file yang dapat dieksekusi. Banyak file biner adalah file data yang tidak mengandung instruksi mesin apa pun. Itulah sebabnya ekstensi file digunakan saat memberi nama file (dalam beberapa OS). . ekstensi com digunakan oleh CP / M untuk menunjukkan file yang dapat dieksekusi. . ekstensi exe ditambahkan oleh MS-DOS untuk menunjukkan format file yang dapat dieksekusi lainnya. * nixes menggunakan atribut eksekusi untuk menunjukkan file mana yang dapat dieksekusi, meskipun bisa berupa skrip dan juga kode.
Seperti yang telah disebutkan oleh orang lain, file biner, yang berisi angka, harus dilihat oleh program hex dump atau hex editor dan bukan oleh penampil teks.
ada contoh konten program ping.exe
File itu sebenarnya adalah program yang dapat dipindahkan, dan tidak semua data dalam file itu mewakili kode mesin. Ada informasi tentang program seperti perpustakaan dinamis mana yang dibutuhkan, rutin mana yang harus ditautkan, persyaratan untuk tumpukan dan memori program & data, dan titik masuk program. Operan alamat dalam file bisa berupa nilai relatif yang perlu dihitung dengan nilai absolut, atau referensi yang perlu diselesaikan.
"File program" yang mungkin Anda pikirkan disebut file gambar biner atau dump memori program. File seperti itu hanya akan berisi kode mesin dan data, dengan semua referensi alamat yang ditetapkan untuk dieksekusi.
bahkan jika mereka tahu kode Assembly (level terendah dari bahasa mesin.)
Bahasa assembly tidak sama dengan bahasa mesin . CPU tipikal (untuk mengecualikan komputer bahasa tingkat tinggi) menerima kode mesin sebagai input, satu instruksi pada satu waktu. Operan adalah register atau alamat memori numerik. Bahasa assembly adalah bahasa level yang lebih tinggi yang dapat menggunakan label simbolik untuk lokasi dan variabel instruksi, serta mengganti kode op numerik dengan mnemonik. Program bahasa assembly harus dikonversi ke bahasa mesin / kode sebelum benar-benar dapat dieksekusi (biasanya oleh utilitas yang disebut assembler, linker dan loader).
Operasi terbalik, pembongkaran, dapat dilakukan pada file program dengan beberapa keberhasilan dan kehilangan informasi simbolik. Pembongkaran dari memori dump atau file gambar program lebih banyak coba-coba, karena kode dan lokasi data perlu diidentifikasi secara manual.
BTW ada orang yang bisa membaca dan kode kode mesin (angka) Tentu saja ini jauh lebih mudah pada CPU atau mikrokontroler 8-bit daripada prosesor CISC 32-bit dengan selusin mode alamat memori.