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.
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:
Ö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.
Gereken yazılımlar:
- Win32DASM
- HEX Editor (Mesela HxD)
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ı:
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
- Şimdi
GetDriveTypeA
fonksiyonunu bulmamız gerek. Bunun için yukarıdaki Imports butonuna basıyoruz ve kısa bir göz gezdirme sonrasındaKERNEL32.GetDriveTypeA
fonksiyonunu buluyoruz.
- Ş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ğeri5
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.
- Buradaki
- 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 )
kodunu83F803 ( CMP EAX, 03 )
yapmamız yeterli zira3
, 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:
- Konuma vardığınızda
83 F8 05 74 04 33 C0
kodlarını göreceksiniz. Tanıdık geldi mi?
- Şimdi bu değerleri seçiyoruz ve seçileni doldur deyip
90909090909090
giriyoruz.90
,NOP
'un hex kodu oluyor.
- Şimdi Dosya > Kaydet diyoruz ve oyunun Exe'sini bizim düzenlediğimiz ile değiştiriyoruz. Artık CD-ROM kontrolü olmadan oyunu oynayabilirsiniz.
Son düzenleme: