Metin2'yi Autopatcher ile başlatmayı zorunlu kılma

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 36

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba,
Oyunu auto patcher aracılığıyla başlatmadan doğrudan açmayı engellemeyi göstereceğim.

yer alan veya benzeri konular ile uzaktan yakından alakası yoktur. Bu konudakinde oyunun cmdline başlatıcı komutuna bir fonksiyon veya kelimeler ekleyerek oyunun hangi şekilde açıldığına bakıyor. Örneğin ../metin2client.exe +blabla şeklinde mi açılmış kontrol ediliyor. Ve oyun doğrudan patcher olmadan açıldıysa hata verip oyunu kapatıyor. Ancak bu yöntem çok basit bir şekilde atlanabilir ve oyun autopatchersiz başlatılabilir.

Benim geliştirdiğim yöntemde ise oyun clientine dllexport fonksiyonu ile 'CreatePatcherPoint' isminde bir dinamik değişken atıyoruz. Bu isim önemsiz. Bu dinamik değişken başlangıçta hep 0 olarak başlıyor. Bu değişkenin yerine gelmesi gereken bir değer olarak oyunun pid adresini koymaya karar verdim. Bu yöntem değiştirilerek farklı şeylerde konulabilir. Oyun her açılıp kapandığında pid adresi de değişeceği için sabit bir şey eklemek istemedim.
Daha sonra oyun açıldıktan sonra oyun kendi içerisindeki bu değişkeni kontrol ediyor ve kendi pid adresine eşit değilse veya hala 0 ise hata vererek oyunu kapatıyor.
Oyun eğer patcherden başlatıldı ise, patcher oyun clientindeki bu değişkene oyunun pid adresini veri olarak yazdırıyor. Bu sayede değişken hem 0 a eşit olmamış hemde pid adresine yani eşit olması gereken adrese erişmiş oluyor ve oyun kapanmıyor.

Daha iyi anlaşılması için bir video:



Tabii ki de bu yöntem autopatcher dışından girmeyi %100 engellemiyor. C++, Assembly ve tersine mühendislik bilgisi olan kişi biraz incelemeler sonucunda bu korumayı atlaması mümkün. Ancak bunu kendinize göre geliştirebilir, daha farklı kontroller ekleyebilirsiniz.

Örneğin;
'CreatePatcherPoint' fonksiyonuna rastgele bir isim verebilirsiniz.
Fake fonksiyonlar ekleyerek karmaşıklaştırabilirsiniz.
Ben oyunun pid adresi hep değişken olduğu için onu seçtim. Ancak siz örneğin bir sunucu aracılığı ile bir veri alış-verişi ile sistemi daha da güçlendirebilirsiniz.


Client Source eklenecekler: /
Patcher Source eklenecekler: /

/

Metin2'yi Autopatcher ile başlatmayı zorunlu kılma
Metin2 özel sunucuları geliştirmesi yapan geliştiriciler için, oyuncuların oyunu doğru ve güvenli bir şekilde başlatması büyük önem taşır. Bu bağlamda, Autopatcher (otomatik güncelleştirici) sistemi, hem sunucu hem de istemci tarafında önemli bir rol oynar. Autopatcher sayesinde, oyuncuların her seferinde oyun dosyalarını elle kontrol etmeleri gerekmez; sistem otomatik olarak güncellemeleri indirir ve başlatmadan önce tüm dosyaları kontrol eder. Ancak bazı durumlarda, oyuncular doğrudan oyunu başlatarak sistemi atlayabilir. Bu da oyun dengesini ve güvenliğini riske atabilir.

Autopatcher Nedir?
Autopatcher, Metin2 özel sunucularında yaygın olarak kullanılan bir güncelleştirme mekanizmasıdır. Oyuncular oyunu başlatmak istediğinde, Autopatcher aracılığıyla oyunun çalıştırılmasını sağlar. Bu süreçte, sunucudan gelen güncellemeler kontrol edilir, eksik veya değişmiş dosyalar yeniden indirilir. Bu sayede hem sunucu tarafında tutarsızlık engellenir, hem de oyuncuların oyun dosyalarının orijinal yapıya uygun kalması sağlanır. Autopatcher aynı zamanda anti-cheat önlemleri için de önemli bir araçtır.

Neden Autopatcher Kullanımı Zorunlu Hale Getirilmeli?
Otomatik güncelleştiriciyi zorunlu kılmak birçok avantaj sağlar. Öncelikle, tüm oyuncuların aynı dosya sürümüne sahip olması sağlanır. Bu da hata ayıklama ve destek süreçlerini kolaylaştırır. Ayrıca, bazı kullanıcılar doğrudan oyunu açarak güvenlik kontrollerini bypass edebilir. Bu tür davranışlar, sunucu üzerinde istismar riskini artırır. Autopatcher zorunlu tutulduğunda, bu risk büyük ölçüde azaltılır. Ayrıca, sunucu yöneticisi olarak, oyunla ilgili duyuruları, duyuru metinlerini ya da oyun içi değişiklikleri de bu sistem üzerinden aktarabilirsiniz.

Autopatcher Zorunluluğu Nasıl Uygulanır?
Autopatcher zorunluluğu genellikle istemci tarafında yapılandırılır. Bunun için client src dosyalarında değişiklik yapılması gerekir. Özellikle 'entry_point' kısmında, doğrudan oyun başlatma işlemi engellenir ve Autopatcher ile başlatma zorunluluğu konfigüre edilir. Bu işlem genellikle Python (py) dosyalarında gerçekleştirilir. Uiscript ve py root dosyalarında yapılan düzenlemelerle, kullanıcılar doğrudan oyunu başlatamaz. Autopatcher penceresi açılır ve oyun ancak buradan başlatılabilir hale gelir. Bu yapılandırma sırasında, client src ve py gui sistemleri birlikte çalışır. Autopatcher ile başlayan süreçte, oyun dosyaları integrity check'e tabi tutulur ve gerekirse paketler (pack) yeniden indirilir.

Olası Sorunlar ve Çözümler
Autopatcher kullanımını zorunlu kılarken bazı teknik sorunlarla karşılaşabilirsiniz. Örneğin, bazı kullanıcılar eski client versiyonları ile bağlanmaya çalıştığında hata alabilirler. Bu durumda, integrity check devreye girer ve eksik dosyaları yeniden indirir. Ancak bazen bu süreç başarısız olabilir. Bu gibi durumlarda, DB Core ve Game Core yapılarını kontrol etmek önemlidir. Ayrıca, Auth ve Game sunucuları arasında uyum sağlanmalıdır. Sunucu tarafında compile işlemleri sırasında bazı C++ sistem hataları da oluşabilir. Bu durumda, server src üzerinde gerekli düzenlemeler yapılmalıdır. Hata mesajları py root üzerinden loglanabilir ve geliştirici tarafından analiz edilebilir. Bu süreçte, Martysama gibi Metin2 geliştirme platformları destek olabilir.

Sonuç
Metin2 özel sunucularında Autopatcher ile başlatma zorunluluğu, hem oyun deneyimini korur hem de güvenlik açısından önemli bir adımdır. Geliştiriciler, client src ve py sistemleri üzerinden bu yapılandırmayı kolayca gerçekleştirebilir. Bu yöntem, oyun içi hile riskini azaltır, sürüm uyumsuzluklarını önler ve sunucu yöneticilerine daha fazla kontrol sağlar. Autopatcher sistemi, Metin2 geliştirme dünyasında temel bir yapıdır ve doğru uygulandığında sunucunuzun kararlılığını ve güvenliğini artırır.


Forcing Autopatcher to Launch Metin2
For developers working on Metin2 private servers, ensuring players launch the game in a secure and correct way is of great importance. In this context, the Autopatcher (automatic updater) system plays a critical role both on the server and client side. With Autopatcher, players no longer need to manually check their game files every time; the system automatically downloads updates and verifies all files before launching. However, in certain cases, players might bypass the system by starting the game directly, which can compromise game balance and security.

What is Autopatcher?
Autopatcher is a widely used update mechanism in Metin2 private servers. When players want to start the game, Autopatcher handles the launch process. During this process, updates from the server are checked, and any missing or modified files are re-downloaded. This ensures that all players have matching file versions, preventing inconsistencies on the server side and maintaining the original structure of the game files. Additionally, Autopatcher serves as an important tool for anti-cheat measures.

Why Should Autopatcher Usage Be Enforced?
Enforcing the use of the automatic updater offers many advantages. First, it ensures all players are using the same version of the game files, which simplifies debugging and support processes. Furthermore, some users may attempt to bypass security checks by launching the game directly. Such behavior increases the risk of exploitation on the server. By enforcing Autopatcher, this risk is significantly reduced. Moreover, as a server administrator, you can also deliver announcements or in-game changes via this system.

How to Implement Autopatcher Enforcement?
The enforcement of Autopatcher is usually configured on the client side. This requires modifications to the client src files. Specifically, the 'entry_point' section must be altered so direct launching is prevented and Autopatcher becomes mandatory. This process typically occurs within Python (py) files. Modifications made in uiscript and py root files ensure players cannot launch the game directly. Instead, the Autopatcher window appears and the game can only be started from there. During this configuration, game files undergo an integrity check and if needed, packs are re-downloaded. The client src and py gui systems work together during this process.

Possible Issues and Solutions
While enforcing Autopatcher usage, you may encounter technical issues. For example, some users may attempt to connect with older client versions and receive errors. In such cases, the integrity check will trigger and re-download missing files. However, this process may sometimes fail. When this happens, it's important to verify the DB Core and Game Core structures. Also, compatibility between the Auth and Game servers should be ensured. Compilation errors in C++ systems may occur during server-side compilation. In these cases, necessary adjustments must be made to the server src. Error messages can be logged through py root and analyzed by the developer. Platforms like Martysama can provide support during this process.

Conclusion
Forcing Autopatcher to launch in Metin2 private servers helps preserve the gaming experience and enhances security. Developers can easily implement this configuration through client src and py systems. This approach reduces in-game cheating risks, prevents version mismatches, and provides administrators with greater control. As a fundamental component in the world of Metin2 development, when correctly applied, the Autopatcher system increases stability and security of your server.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt