MaviAyGames | Oto Pack Dışından Oyuna Girişi Engelleme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Oyunumuzu sürekli güncel tutmak ve hilelere karşı bir nebze olsun savunma kalkanı oluşturmak için oto pack kullanırız. Oto pack sayesinde oyunculara son güncellemeleri zoraki olarak gönderebilirsiniz.

Ne yazık ki oto pack devredışı bırakılarak normal istemciden oyuna giriş yapılabiliyor. Bu konumuzda ise bunu engellemeyi göstereceğim. Daha önceden çok soran kişi vardı. En sonunda da bir şirket sahibinden bu meseleyle ilgili bana soru geldiği için bu konuyu açmaya karar verdim.

Fazla konuyu uzatmadan anlatıma başlayalım.

1. Anlatım: Novaline Client kullananlar için.
Novaline client dosyasında zaten oto pack dışında girişi engellemek için eklenmiş bir kod var.
Client/UserInterface/UserInterface.cpp dosyasını açın ve aratın;

Kod:
if (strstr(lpCmdLine, NEEDED_COMMAND_ARGUMENT) == 0) {         MessageBox(NULL, ApplicationStringTable_GetStringz(IDS_ERR_MUST_LAUNCH_FROM_PATCHER, "ERR_MUST_LAUNCH_FROM_PATCHER"), ApplicationStringTable_GetStringz(IDS_APP_NAME, "APP_NAME"), MB_ICONSTOP);             goto Clean;     }

Fakat bu kod varsayılan olarak devredışı olacaktır. Aktif etmek için NEEDED_COMMAND_ARGUMENT makrosunu locale_inc.h dosyasına ekliyoruz.
Örnek;
Kod:
#define    NEEDED_COMMAND_ARGUMENT "#!whistle*/5556#c2!!"

Daha sonra Client/UserInterface/UserInterface.rc dosyasını açın ve aratın;
Kod:
IDS_ERR_MUST_LAUNCH_FROM_PATCHER "Please run patcher."

Daha sonra Client/UserInterface/UserInterface.rc dosyasını açın ve aratın;
Kod:
IDS_ERR_MUST_LAUNCH_FROM_PATCHER "Please run patcher."

Şu şekilde değiştiriniz
Kod:
IDS_ERR_MUST_LAUNCH_FROM_PATCHER "Whistle tarafindan paylasilmis patcherdan giris yapiniz. :)"

Daha sonra client soureyi build ediniz.
Şimdi sıra geldi belirlediğimiz şifreyi oto packa tanımlamaya.

skin.xml dosyasını açın ve aratın;

Kod:
<control type="button" id="START" image="btn_start_1" x="818" y="612" enable_on_complete="true" />
Değiştiriniz;
Kod:
<control type="button" id="START" image="btn_start_1" x="818" y="612" exec_path="casro2client.bin" exec_args="#!whistle*/5556#c2!!" enable_on_complete="true" />

Not: path ve args kısmını kendinize göre düzenleyiniz.

Daha sonra oto packı tekrardan paketleyiniz.


2. Anlatım: Diğer
İlk önce Client/UserInteface/UserInterface.cpp dosyasını açın ve aratın;

Kod:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
Altına ekleyin;
Kod:
#ifndef _DEBUG     // oto packsiz giris engeli     if (strstr(lpCmdLine, "#!whistle*/5556#c2!!") == 0)     {         MessageBox(NULL, "Casro2 Patcherdan giris yapiniz.", ApplicationStringTable_GetStringz(IDS_APP_NAME, "APP_NAME"), MB_ICONSTOP);         return 0;     } #endif
(debug modu hariç diğerleri ile build ettiğinizde oto pack dışında girişi engeller.)

Şimdi sıra geldi belirlediğimiz şifreyi oto packa tanımlamaya.
skin.xml dosyasını açın ve aratın;
Kod:
<control type="button" id="START" image="btn_start_1" x="818" y="612" enable_on_complete="true" />
Değiştiriniz;
Kod:
<control type="button" id="START" image="btn_start_1" x="818" y="612" exec_path="casro2client.bin" exec_args="#!whistle*/5556#c2!!" enable_on_complete="true" />

Not: path ve args kısmını kendinize göre düzenleyiniz.

Daha sonra oto packı tekrardan paketleyiniz.

İşini iyi bilen kişiler bu engeli aşabilir. Yine de büyük oranda koruma sağlayacaktır.

32158_b44cdda0b90c687b498ae768303ecb99.jpg

MaviAyGames | Oto Pack Dışından Oyuna Girişi Engelleme

Metin2 özel sunucularında güvenliği artırmak ve hile kullanımını engellemek için birçok geliştirici, oyuncuların sadece belirlenen resmi paketler aracılığıyla oyuna girmesini sağlamak ister.
Bu bağlamda, MaviAyGames tarafından geliştirilen Oto Pack sistemi oldukça yaygın bir çözüm sunmaktadır. Ancak bazı kullanıcılar, bu paket sistemi dışında doğrudan oyun dosyalarını kullanarak veya farklı yollarla sunucuya erişmeye çalışabilmektedir.

Oto Pack Dışından Giriş Nedir?
Oto Pack, oyuncuların otomatik olarak doğru paketleri indirip yüklemesini sağlayan bir sistemdir. Bu sayede sunucu tarafında belirlenen oyun dosyalarının dışına çıkılmaması sağlanır. Ancak bazı teknik bilgiye sahip oyuncular, doğrudan client üzerinden veya kendi düzenledikleri pack dosyalarıyla sunucuya bağlanmayı deneyebilirler. Bu durum, güvenlik açıklarına ve hile fırsatlarına yol açabilir.

Neden Giriş Engellenmeli?
Sunucuya yetkisiz paketlerle erişim, şu riskleri doğurabilir:
- Hileli içerik içeren modifikasyonlar
- Sunucu uyumsuzlukları
- Hesap güvenliği sorunları
- PvP sistemlerinde dengesizlik
Bu nedenle, sadece belirlenmiş paketlerle oyuna giriş yapılmasını sağlamak büyük önem taşır.

Giriş Engelleme Yöntemleri
C++ temelli game server yapılarında, giriş kontrolü genellikle auth veya login sistemine entegre edilerek yapılır. Oyuncunun bağlandığı istemci, belirli bir imza (signature) veya checksum ile karşılaştırılır. Eğer bu değerler sistemdeki official pack ile uyuşmuyorsa, bağlantı reddedilir.

Ayrıca, client tarafında da kontrol mekanizmaları yerleştirilebilir. Örneğin, uiscript veya py root dosyalarında, belirli bir dosyanın varlığı kontrol edilerek, oyunun orijinal paketten çalışıp çalışmadığı anlaşılır.

Python Tarafında Kontrol
Python tabanlı sistemlerde, py gui üzerinden başlatılan oyunun, belirli bir dizinden mıknatıslandığı kontrol edilebilir. Eğer oyun başka bir konumdan çalışıyorsa, root sistemi tarafından engellenebilir. Bu işlem, system.py veya benzeri dosyalarda özel fonksiyonlar ile yapılabilir.

Martysama ve Diğer Araçlar
Geliştiriciler bazen Martysama gibi özel araçlarla, paket içeriğini dinamik olarak analiz edip, uygun olmayan dosyaları tespit edebilirler. Bu tür araçlar, server src ile entegre çalışarak, yetkisiz girişleri önceden tespit edebilir.

Sonuç
Oto Pack dışından oyuna giriş yapma denemeleri, hem sunucu hem de oyuncu güvenliği açısından ciddi riskler taşır. MaviAyGames gibi sistemlerle birlikte, sunucu tarafında geliştirilmiş core yapılarla bu tür girişimlerin önüne geçmek mümkündür. Game server programming ve source edit bilgisiyle, güçlü güvenlik önlemleri alınabilir. Güvenli bir PvP ortamı için, paket kontrolü hayati öneme sahiptir.


MaviAyGames | Blocking Entry to Game Outside of Auto Pack

To enhance security and prevent cheating on Metin2 private servers, many developers aim to ensure players enter the game only through predefined official packages.
In this context, the Oto Pack system developed by MaviAyGames offers a widely-used solution. However, some users may attempt to connect directly through game files or other methods outside the package system.

What Is Entry Outside of Oto Pack?
Oto Pack allows players to automatically download and install correct packages. This ensures that game files remain within the boundaries set on the server side. However, technically skilled players might try connecting to the server directly via client or with their own modified pack files. This situation can lead to security vulnerabilities and cheating opportunities.

Why Should Entry Be Blocked?
Accessing the server with unauthorized packages can cause the following risks:
- Modifications containing cheats
- Server compatibility issues
- Account security problems
- Imbalances in PvP systems
Therefore, ensuring entry only through designated packages is highly important.

Methods for Blocking Entry[/BR]
In C++ based game server structures, entry control is usually integrated into the auth or login system. The client connected by the player is compared against a specific signature or checksum. If these values do not match the official pack in the system, the connection is rejected.

Additionally, control mechanisms can be placed on the client side as well. For example, in uiscript or py root files, the presence of certain files can be checked to determine whether the game is running from the original package.

Control on the Python Side
In Python-based systems, the location from which the game launched via py gui can be verified. If the game runs from another location, it can be blocked by the root system. This process can be implemented in files such as system.py using custom functions.

Martysama and Other Tools
Developers sometimes use tools like Martysama to dynamically analyze package contents and detect unauthorized files. Such tools can work integrated with server src to identify unwanted access attempts in advance.

Conclusion
Attempts to enter the game outside of Oto Pack carry serious risks for both server and player security. Alongside systems like MaviAyGames, strong security measures can be implemented using server-side core structures developed with game server programming and source edit knowledge. For a secure PvP environment, package verification is vital.
 

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

Benzer konular

Geri
Üst Alt