Merhaba,
Client'e eklenmiş lisans kontrol sistemini videoda gösterdiğim yöntem gibi taktikler ile kırabilirsiniz.
Gerekli materyaller:
- <li data-xf-list-type="ul">Process Hacker <li data-xf-list-type="ul">Cheat Engine <li data-xf-list-type="ul">Patch atabileceğiniz herhangi bir Debugger (ben x64dbg kullandım)
Not: Bu konuyu sourcesi verilmeyen veya bilişimlerden alınmış fileslerde sadece cliente lisanslama yapılmış bazı filesler gördüğüm için paylaşma gereği duydum.
Sadece clientte lisans var ise her türlü kırılır fakat src olmadan game taraflı lisans kırılır mı veya kırılırsa nasıl kırılır bunun hakkında fazla bilgim yok.
Tersine Mühendislik ile Client Taraflı Lisans Sistemini Devre Dışı Bırakma [En Basit Yöntem]
Metin2Lobby olarak bu yazıda, client tarafında çalışan lisans doğrulama sistemlerini nasıl tersine mühendislik yaparak devre dışı bırakabileceğinizi en basit yöntemle açıklamaya çalışacağız. Bu konu özellikle Metin2 özel sunucular geliştiren geliştiriciler için oldukça değerlidir. Lisans sistemleri, genellikle sunucuların korsan oynatılmasını engellemek amacıyla eklenir. Ancak bazen bu sistemlerin test edilmesi veya farklı bir yapıya adapte edilmesi gerekebilir.
Lisans Sistemi Nedir?
Lisans doğrulama sistemleri, genellikle oyun istemcisi (client) ile sunucu (server) arasında belirli bir doğrulama süreci başlatarak kullanıcıların oyunu resmi kanallardan değil de özel sunucularda oynamasını engeller. Bu sistemler, genellikle bir API üzerinden doğrulama yapar ya da lokal bir dosya kontrolü ile çalışır. Client tarafında çalışan bu sistemler, genellikle derlenmiş (compiled) dosyalarda saklanır ve C++ gibi dillerle yazılır.
Neden Lisans Sistemleri Devre Dışı Bırakılır?
Özel sunucu (private server) geliştiricileri, resmi sunucuların sahip olduğu lisans kontrollerini atlatmak isteyebilir. Bu durumda lisans doğrulamasının iptal edilmesi gerekir. Bunun birçok nedeni olabilir:
- Test amaçlı sistem kontrolü
- Sunucuya erişimi açmak
- Korsan sistemleri bypass etmek
Tersine Mühendislik Nedir?
Tersine mühendislik, bir yazılımın kaynak kodunu analiz ederek işleyiş mantığını anlama sürecidir. Bu süreçte genellikle derlenmiş kodlar (binary) incelenir, hata ayıklama (debugging) yapılır ve değişiklikler uygulanabilir. Metin2 client tarafında bu işlem genellikle C++ tabanlı dosyalar üzerinde gerçekleştirilir.
Basit Lisans Devre Dışı Bırakma Yöntemi
Adım 1: Gerekli Araçları Temin Etme
Lisans doğrulama işlemini atlatmak için aşağıdaki araçlara ihtiyacınız olacak:
- IDA Pro veya Ghidra (Tersine mühendislik)
- OllyDbg veya x64dbg (Hata ayıklama)
- Hex Editör (Dosya düzenleme)
Adım 2: Client Dosyasını Açma
Metin2 client dosyasını (.exe) IDA Pro veya Ghidra ile açın. Lisans doğrulama fonksiyonlarını bulmak için ana fonksiyonları tarayın. Genellikle CheckLicense(), ValidateKey() gibi isimlerle tanımlanırlar.
Adım 3: Fonksiyonu Analiz Etme
CheckLicense fonksiyonuna sağ tıklayıp Graph View seçeneğini seçin. Burada akış diyagramı ile doğrulamanın nasıl yapıldığını görebilirsiniz. Doğrulama genellikle iki dalda ayrılır: true ya da false. Hedefiniz bu dalı her zaman true döndürecek şekilde değiştirmektir.
Adım 4: Assembly Kodunu Değiştirme
x64dbg kullanarak çalıştırılabilir dosyayı hata ayıklayıcı ile açın. CheckLicense fonksiyonuna kesme noktası (breakpoint) koyun. Programı çalıştırın ve lisans doğrulaması gerçekleştiğinde durdurun. Assembly kodunda JMP komutunu her zaman true döndürecek şekilde düzenleyin.
Adım 5: Değişikliği Kaydetme
Hex Editör kullanarak değişiklik yaptığınız bölgeyi sabit dosyaya yazın. Artık lisans doğrulaması her zaman geçerli sayılacaktır.
Sonuç
Bu yöntem ile client tarafında çalışan lisans doğrulama sistemleri kolayca devre dışı bırakılabilir. Ancak bu tür işlemler yasadışı olabilir. Lütfen sadece kendi yazılımınızda veya izin alınmış test ortamlarında bu işlemleri yapın. Metin2Lobby olarak bu işlemleri öğrenmek, güvenliği artırmak ve sistemleri daha iyi anlamak için önemlidir.
Daha fazla Metin2 geliştirici kaynağı için: Metin2 Lobby
Disabling Client-Side License Systems via Reverse Engineering [The Easiest Method]
At Metin2Lobby, in this article we will explain how to disable client-side license validation systems through reverse engineering using the simplest method. This topic is particularly valuable for developers creating Metin2 private servers. License systems are often implemented to prevent game clients from playing on unofficial servers. However, sometimes these systems need to be tested or adapted to different structures.
What Is a License System?
License validation systems usually initiate a validation process between the game client and server to prevent users from playing the game on unofficial servers rather than official channels. These systems typically perform validation via an API or through local file checks. The client-side systems are usually stored in compiled files and written in languages like C++.
Why Are License Systems Disabled?
Private server developers may want to bypass official license checks. There can be several reasons for this:
- Testing purposes
- Opening access to the server
- Bypassing piracy controls
What Is Reverse Engineering?
Reverse engineering refers to analyzing a software's source code to understand its operation logic. In this process, compiled codes (binary) are examined, debugging is performed, and modifications can be applied. On the Metin2 client side, this is usually done on C++-based files.
Simple License Bypass Method
Step 1: Obtain Required Tools
To bypass license validation, you will need the following tools:
- IDA Pro or Ghidra (Reverse engineering)
- OllyDbg or x64dbg (Debugging)
- Hex Editor (File editing)
Step 2: Open the Client File
Open the Metin2 client file (.exe) with IDA Pro or Ghidra. Scan main functions to find license validation functions. They are usually named as CheckLicense(), ValidateKey(), etc.
Step 3: Analyze the Function
Right-click on the CheckLicense function and select Graph View. You can observe how validation works through the flowchart. Validation usually splits into two branches: true or false. Your goal is to modify this branch so that it always returns true.
Step 4: Modify Assembly Code
Open the executable file with a debugger like x64dbg. Set a breakpoint on the CheckLicense function. Run the program and pause it when the license validation occurs. Adjust the JMP command in the assembly code to always return true.
Step 5: Save Changes
Using a Hex Editor, write the modified region to the static file. Now the license validation will always be considered valid.
Conclusion
With this method, license validation systems running on the client-side can easily be disabled. However, such actions may be illegal. Please only perform these operations on your own software or in authorized testing environments. At Metin2Lobby, learning these processes is important for enhancing security and better understanding systems.
For more Metin2 developer resources: Metin2 Lobby
