Yani, eğer her şeyi doğru anladıysam
Pek değil.
Bu bir ikili dosyadır ve verileri insanlar için anlaşılmazdır
Tipik bir ikili dosya, özellikle dosyanın amacı bilinmediğinde, insan ve makine için anlaşılmazdır. Tüm ikili dosyaların yürütülebilir dosyalar olmadığını unutmayın. Birçok ikili dosya, herhangi bir makine talimatı içermeyen veri dosyalarıdır. Bu nedenle dosyaları adlandırırken dosya uzantıları kullanılır (bazı işletim sistemlerinde). . com uzantısı, yürütülebilir bir dosyayı belirtmek için CP / M tarafından kullanılmıştır. . exe uzantısı başka bir yürütülebilir dosya biçimini belirtmek için MS-DOS tarafından eklendi. * nixes, kodun yanı sıra komut dosyası olabilmesine rağmen hangi dosyaların yürütülebileceğini belirtmek için execute özelliğini kullanır.
Başkaları tarafından daha önce de belirtildiği gibi, sayı içeren ikili dosyalar, metin görüntüleyici tarafından değil, onaltılık döküm programı veya onaltılık düzenleyici tarafından görüntülenmelidir.
ping.exe programının içeriğine bir örnek var
Bu dosya aslında yeniden yerleştirilebilir bir programdır ve bu dosyadaki tüm veriler makine kodunu temsil etmez. Program hakkında hangi dinamik kütüphanelere ihtiyaç duyduğu, hangi rutinlerin bağlanması gerektiği, yığın ve program ve veri belleği için gereksinimler ve programın giriş noktası gibi bilgiler vardır. Dosyadaki adres işlenenleri, mutlak değerlere hesaplanması gereken göreli değerler veya çözümlenmesi gereken referanslar olabilir.
Muhtemelen düşündüğünüz "program dosyasına" ikili görüntü dosyası veya program belleğinin dökümü denir. Böyle bir dosya yalnızca makine kodu ve verileri içerecektir ve tüm adres referansları yürütme için uygun şekilde ayarlanmıştır.
Montaj kodunu (makine dilinin en düşük seviyesi) bilmelerine rağmen.
Montaj dili makine dili ile aynı değildir . Tipik (üst düzey dil bilgisayarlarını hariç tutmak için) CPU, makine kodunu giriş olarak kabul eder, her seferinde bir komut. İşlenenler ya kayıtlar ya da sayısal bellek adresleridir. Montaj dili, talimat konumları ve değişkenleri için sembolik etiketler kullanabilen ve sayısal op kodları anımsatıcılarla değiştirebilen daha üst düzey bir dildir . Bir montaj dili programı, yürütülmeden önce makine diline / koduna dönüştürülmelidir (genellikle montajcı, bağlayıcı ve yükleyici olarak adlandırılan yardımcı programlar tarafından).
Ters işlem, sökme, bazı başarılı ve sembolik bilgi kaybı ile program dosyalarında gerçekleştirilebilir. Bir bellek dökümü veya program görüntü dosyasının sökülmesi daha deneme yanılma yöntemidir, çünkü kod ve veri konumları manuel olarak tanımlanmalıdır.
BTW (sayısal) makine kodunu okuyabilen ve kodlayabilen kişiler var. Tabii ki bu bir 8 bit CPU veya mikrodenetleyici üzerinde bir düzine bellek adres modu olan 32 bit CISC işlemciden çok daha kolay.