Bugün 1997'de çıkmış bir oyunun CD korumasını aşacağız!
Öncelikle oyunumuz sorunsuz açılmakta lakin Single Player dediğinizde sizden CD'yi istemekte.
Bugün artık Windows 10, ISO dosyalarını doğrudan yerleştirebilediğinden dolayı oyunun ISO'sunun yedeğini alıp çift tıklamanız yeterli ama olay o değil...
Biz doğrudan Exe'nin içinden CD kontrolü yapan kısmı devre dışı bırakacağız.
Oyun, CD sürücüyü kontrol etmek için bir assembler fonksiyonu olan GetDriveTypeA kullanıyor ki bu da KERNEL32.dll içinden elde ediliyor.
Öncelikle W32Dasm ile oyunun ana exe dosyasını açıyoruz. Yazılım bize Exe'nin kullandığı modülleri sıralayacak. İçerinde KERNEL32.dll olması dikkatinizden kaçmamalı:
Şimdi GetDriveTypeA fonksiyonunu bulmamız gerek. Bunun için yukarıdaki Imports butonuna basıyoruz ve kısa bir göz gezdirme sonrasında KERNEL32.GetDriveTypeA fonksiyonunu buluyoruz.
Şimdi buna çift tıklıyoruz. W32Dasm bizi doğrudan Assembler koduna götürüyor:
Buradaki Call komutu CD bulunamadığında ekrana çıkan CD'yi takın hata penceresini çağırıyor.
CMP, compare, yani karşılaştırma yapmaya yarayan kod. EAX değeri 5 mi diye kontol ediyor. 5, CD-ROM sürücünün kodu.
Yani buradaki kod CD-ROM sürücüyü kontrol ediyor ve eğer istediği ver gelmez ise de hata kodunu ekrana veriyor.
Korumayı aşmak için birden çok seçeneğiniz mevcut. Örneğin CD-ROM kontrolü yerine Sabit Disk kontrolü yapabiliriz. Bunun için 83F805 ( CMP EAX, 05 ) kodunu 83F803 ( CMP EAX, 03 ) yapmamız yeterli zira 3, sabit diskin kodu.
Alternatif olark söz konusu satırları NOP ile doldurabiliriz. NOP, "No operation performed", yani hiçbir işlem gerçekeleştirilmedi anlamına geliyor.
Sıra geldi korumayı kaldırmaya. Bunun için CMP komutunun konumunu öğrenmemiz gerek. W32Dasm'da satıra çift tıklıyoruz ve aşağıda Offset'i görüyoruz: 000D59FCh. Buradaki h, hexadecimal, yani onaltılık anlamına geldiğinden gözardı edebiliriz.
Şimdi oyunun Exe'sini HxD gibi bir Hex Editör ile açıyoruz ve 000D59FC Hex değerini aratıyoruz. Bunun için HxD'de Ara > Git > Bulunulan ofset seçeneğini seçebiliriz:
Korsan kullanımı engellemek isterseniz optimizasyonu olumsuz değil, olumlu etkilemeniz lazım. Bazı korumaların sisteme ek yük bindirdiği iddia ediliyor ama kopya korumanın donanıma zarar verdiği görmedim hiç.