Oyunun CD Korumasını Aşmak

Durum
Mesaj gönderimine kapalı.
Katılım
14 Ağustos 2010
Mesajlar
79.057
Makaleler
289
Çözümler
2.268
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Profil Kapağı
1522743131
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.

AoE.jpg


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.

Gereken yazılımlar:
  • Win32DASM
  • HEX Editor (Mesela HxD)
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.

  1. Ö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ı:

    Kod:
    +++++++++++++++++++ IMPORTED FUNCTIONS ++++++++++++++++++Number of Imported Modules = 12 (decimal)
    
    Import Module 001: KERNEL32.dll
    Import Module 002: USER32.dll
    Import Module 003: GDI32.dll
    Import Module 004: ADVAPI32.dll
    Import Module 005: DPLAYX.dll
    Import Module 006: DSOUND.dll
    Import Module 007: DDRAW.dll
    Import Module 008: WINMM.dll
    Import Module 009: IMM32.dll
    Import Module 010: MSVFW32.dll
    Import Module 011: ole32.dll
    Import Module 012: WSOCK32.dll

  2. Ş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.

    1593290238392.png


  3. Şimdi buna çift tıklıyoruz. W32Dasm bizi doğrudan Assembler koduna götürüyor:

    Kod:
    * Reference To: KERNEL32.GetDriveTypeA, Ord:00DEh |
    :004D65F6 FF1554267000 Call dword ptr [00702654]
    :004D65FC 83F805 cmp eax, 00000005
    :004D65FF 7404 je 004D6605
    :004D6601 33C0 xor eax, eax
    :004D6603 EB53 jmp 004D6658
    • 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.
  4. 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.

  5. 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.

    1593292407107.png


  6. Ş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:

    1593292889343.png


  7. Konuma vardığınızda 83 F8 05 74 04 33 C0 kodlarını göreceksiniz. Tanıdık geldi mi?

    1593293189542.png



  8. Şimdi bu değerleri seçiyoruz ve seçileni doldur deyip 90909090909090 giriyoruz. 90, NOP'un hex kodu oluyor.

    1593293510093.png



  9. Şimdi Dosya > Kaydet diyoruz ve oyunun Exe'sini bizim düzenlediğimiz ile değiştiriyoruz. Artık CD-ROM kontrolü olmadan oyunu oynayabilirsiniz.
Tebrikler, ilk başarılı Crack'inizi yaptınız.
 
Son düzenleme:
Torrent kullanacağınıza şu adımları yaptın bari kendinize saygınız olsun:)
 
Bir yerde oyunların korsan kullanımı engellemek için optimizasyonu olumsuz etkileyecek şeyler yaptıkları yazıyordu doğru mudur?
 
Bir yerde oyunların korsan kullanımı engellemek için optimizasyonu olumsuz etkileyecek şeyler yaptıkları yazıyordu doğrumudur?
DRM korumalarının bazıları oyunda performans düşüklüklerine sebep olabiliyor.(DENUVO gibi.)
 
Bir yerde oyunların korsan kullanımı engellemek için optimizasyonu olumsuz etkileyecek şeyler yaptıkları yazıyordu. Doğru mudur?

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ç.
 
Durum
Mesaj gönderimine kapalı.

Geri
Yukarı