Her unpacker her packlenmiş executableyi açamaz, öncelikle peid vb. bir program ile hangi dilde yazıldığını tespit etmek gerekir ki kodlar şifrelenmişse armadillo vb. bir koruma ile bu çok zordur. OllyDebug, Armadillo vesaire işin cilası. Bunlar en amatör korumalardır. Armadillo falan oyunlarda kullanılan korumalar çok daha karmaşıktır çünkü oyunlarda exe'yi kırmaya çalışmayı tespit edici özel mekanizmalar bulunur. Örneğin GTA 4'te 5 ana koruma vardı ki bunlar da işin cilası.
Çok daha karmaşık korumalar var. Mesela Windows 8'in ki. Mesela Bitlocker. Gmail, Hotmail özellikle Bitlocker byte olarak değil bit olarak, bit bit şifreliyor. Aşırı karmaşık bir şifreleme. Kısacası tersine mühendislik sandığımızdan çok aşırı daha karmaşık bir alandır. Bizler sadece işin en dış cilasını görüyoruz.
En dıştan içe doğru tabiri caizse milyonlarca cila vardır. Düşünün windows 8'de en aşağı 40 milyon satır kod vardır. Bir oyunun yapımını düşünün. Mesela Crysis 3 kim bilir kaç milyon satır kod var. Bizler bir sayfa, yani 50 satır koda saatlarce kafa patlatıyoruz ki apileri kullanarak... Bir de işletim sistemi yazarlarını, firmware (bios) yazarlarını, oyun konsolu yazarlarını düşünün. Onlar her şeyi 01 yani makine dilinde yazıyorlar. Assembly makine dili değildir. Assembly çevirici dildir. Onlar sadece 01 kullanıyorlar 01 leri işlemcinin yapısına göre anlamlı şekilde yazarak bilgisayara ne yapması gerektiğini anlatıyorlar.
Windows'u sıfırdan yazarken 01'leri her işlemciye anlamlı şekilde uyarlıyorlar, tabi bunu bir kere yaptılar. Her Windows sıfırdan yazılmıyor. Geçmişten gelen bilgilerin üzerine ekleme yapılıyor. Microsoft her şeyi tamamen sıfırdan yapmaya kalksa tüm ekiple beraber 10 sene çalışması lazım. Adamlar herşeyi bir kere yazıyor, sonra ekleme yapıyor, değiştiriyor, yeniliyor.
Bunları neden yazdım; bazı cahiller, Windows her seferinde sıfırdan yazılıyor, oyunlar sıfırdan yazılıyor diyor. Hayır, her şey geçmişten gelen mühendislik bilgilerine ekleme, düzeltme, yenileme ve değiştirme yapılarak ilerliyor.