[DEV-PAYLAŞIM] Eski Pack'den Oyuna Girişi Kapatma

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
45 dakika oldu kimse yorum atmadı çöp kilit
[DEV-PAYLAŞIM] Eski Pack'den Oyuna Girişi Kapatma​


Metin2 dünyasında client veya pack üzerinde değişiklik yaparken bazen eski sürümlere ait bazı yapıların devreye girmesini engellemek isteyebilirsiniz. Özellikle geliştirici olarak eski bir client veya pack sisteminden oyuna girişin kapatılması, güvenlik ve stabilite açısından oldukça önemlidir. Bu yazıda, eski pack versiyonlarından Metin2 sunucusuna giriş yapılmasını nasıl kapatabileceğinizi detaylıca anlatacağız.

Neden Eski Pack'ten Giriş Kapatılmalıdır?
Oyun sunucularında yeni bir client veya pack yayınladığınızda, eski pack'lerin oyuna girmesini engellemek hem oyun içi dengeyi korumak hem de güvenlik açıklarını kapatmak açısından kritiktir. Eski pack'lerde olası exploit, hata veya modifiye edilmiş sistemlerle sunucuya erişim sağlanabilir. Bu da hem oyun deneyimini bozar hem de sunucu güvenliğini riske atar.

Client Side ve Server Side Kontroller
Oyuna giriş kontrolünü sağlamanın iki temel yolu vardır. Birincisi client-side yani client tarafında, ikincisi ise server-side yani sunucu tarafında. Client-side yöntemler, kullanıcı tarafında çalıştığı için kolayca bypass edilebilir. Ancak server-side kontroller, tüm trafiği sunucuda filtreleyerek daha güvenli bir yol sunar. Eski pack kullanımını tam anlamıyla engellemek için server-side kontrolleri kullanmanız önerilir.

Server Tarafında Versiyon Kontrolü
Sunucu tarafında giriş kontrolü yapmak için genellikle client tarafından gönderilen versiyon numarası kontrol edilir. Client, sunucuya bağlanırken belirli bir versiyon numarası gönderir. Sunucu bu numarayı karşılaştırarak doğru pack sürümünü kullanıp kullanmadığınızı kontrol eder. Eğer versiyon numarası eskiyse veya tanımlı değilse, bağlantı reddedilir.

Sunucu tarafında bu kontrolü sağlamak için auth_server.py gibi dosyalarda gerekli düzenlemeler yapılmalıdır. Örneğin:

Kod:
if version < MINIMUM_VERSION:[BR][/BR]    return False


Client-side Paket Doğrulama
Alternatif olarak client-side yöntemlerle paket doğrulaması da yapılabilir. Bu yöntemde client, belirli dosya imzalarını (checksum) veya hash değerlerini sunucuya gönderir. Sunucu bu değerleri karşılaştırarak dosyaların değiştirilip değiştirilmediğini ve doğru pack'in kullanılıp kullanılmadığını anlar. Bu yöntem daha güvenli olsa da uygulanması daha karmaşık olabilir.

Yazılım Geliştirici Yaklaşımı
Metin2 geliştiricileri olarak, pack içindeki system, locale_pack, root gibi klasörlerin içeriklerini değiştirdiğinizde yeni bir versiyon numarası tanımlamalısınız. Bu sayede eski pack'lerden gelen bağlantılar reddedilir. Versiyon numaralarını config dosyalarında ayarlayabilirsiniz. Örneğin game/core.py veya clientversion.txt dosyasında:

Kod:
MIN_CLIENT_VERSION = '1.2.3.4'


Bu sayede sunucu sadece bu versiyon ve üzeri pack'lerden gelen bağlantıları kabul eder.

Pack Açma ve Güncelleme Süreçleri
Metin2 pack'ler genellikle .epk veya .pack uzantılıdır. Bu dosyaları açmak ve içeriklerini incelemek için özel araçlar gereklidir. Pack açma işlemleri sırasında versiyon numaraları da gözlemlenebilir. Pack dosyalarını açmak isterseniz, eterpack gibi araçlar kullanılabilir. Pack üzerinde değişiklik yaptıktan sonra yeni bir versiyon numarası atamak, giriş kontrolünü sağlamanız açısından büyük önem taşır.

Sonuç
Eski pack'lerden oyuna girişin engellenmesi, hem sunucu güvenliği hem de oyun içi denge açısından kritik öneme sahiptir. Server-side kontrol mekanizmalarını kullanarak bu tür girişleri kolayca engelleyebilirsiniz. Versiyon numaralarını güncel tutmak ve doğru yapılandırmaları yapmak, bu süreci yönetmenin en etkin yoludur. Metin2 geliştiricileri olarak bu konuda dikkatli hareket etmek, hem kullanıcılar hem de sunucu yöneticileri için daha sağlıklı bir ortam sağlar.

Kaynaklar
Metin2 client ve pack geliştirme süreçleri hakkında daha fazla bilgi almak isterseniz Metin2 Lobby sitemizi ziyaret edebilirsiniz.


[DEV-SHARE] Blocking Entry from Old Pack to Game​


In the world of Metin2, while making modifications on a client or pack, you may sometimes want to prevent old versions from functioning. Especially as a developer, blocking entry to the game from an older client or pack system is critical for security and stability reasons. In this article, we will explain in detail how to disable entry to your Metin2 server from old pack versions.

Why Should Entry from Old Pack Be Blocked?
When releasing a new client or pack for your game server, blocking access from old packs is essential both to maintain in-game balance and to close potential security vulnerabilities. Older packs might allow access to the server via exploits, bugs, or modified systems. This can disrupt the gaming experience and put server security at risk.

Client-Side vs Server-Side Controls
There are two main ways to control entry into the game: client-side and server-side. Client-side methods run on the user's side and can easily be bypassed. However, server-side controls filter all traffic through the server, providing a more secure method. To fully block usage of old packs, it is recommended to use server-side controls.

Version Control on the Server Side
To control entry on the server side, the version number sent by the client is usually checked. When connecting to the server, the client sends a specific version number. The server compares this number and checks whether the correct pack version is being used. If the version number is outdated or not recognized, the connection is rejected.

To implement this control on the server side, adjustments must be made in files like auth_server.py. For example:

Kod:
if version < MINIMUM_VERSION:[BR][/BR]    return False


Client-Side Package Verification
Alternatively, package verification can also be performed client-side. In this method, the client sends certain file signatures (checksums) or hash values to the server. The server then compares these values to determine if the files have been altered and if the correct pack is being used. Although this method is more secure, implementing it can be more complex.

Developer Approach
As Metin2 developers, whenever you modify contents within folders like system, locale_pack, root inside the pack, you should assign a new version number. This way, connections from older packs are rejected. Version numbers can be set in configuration files. For example, in game/core.py or clientversion.txt:

Kod:
MIN_CLIENT_VERSION = '1.2.3.4'


This ensures that the server accepts only connections from packs of this version or newer.

Pack Extraction and Update Processes
Metin2 packs are generally in .epk or .pack formats. Special tools are required to open and inspect these files. During pack extraction processes, version numbers can also be observed. If you wish to open pack files, tools like eterpack can be used. After making changes to the pack, assigning a new version number is crucial for controlling entry effectively.

Conclusion
Blocking entry from old packs into the game is critically important for both server security and in-game balance. By using server-side control mechanisms, you can easily block such entries. Keeping version numbers up-to-date and setting up proper configurations are the most effective ways to manage this process. As Metin2 developers, acting carefully in this matter provides a healthier environment for both users and server administrators.

Resources
If you want to learn more about Metin2 client and pack development processes, visit our site Metin2 Lobby.
 

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

Geri
Üst Alt