[c++]Güvenlik Sistemi fixler

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
forumda bir arkadaş paylaşmış ama mantıksızdı. bu şekilde güvenlik sistemi aktif olan kişiye vuruş yapamazsınız ve oda size vuruş yapamaz.

char_battle.cpp açılır ve aratılır

Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)

altına uygun bir yere eklenir

Kod:
#ifdef WJ_SECURITY_SYSTEM     if (IsActivateSecurity() == true)         return false;//rakipten gelen vuruş engeli     if (pkVictim->IsActivateSecurity() == true)         return false;//rakibe vuruş engeli #endif

skill vuruşları işliyor denmiş fixi.

battle.cpp açılır ve aratılır

Kod:
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)

altına eklenir

Kod:
#ifdef WJ_SECURITY_SYSTEM     if (victim->IsActivateSecurity() == true)         return false; #endif

C++ Güvenlik Sistemi Fixleri: Metin2 Sunucularında Veri Bütünlüğü ve Saldırı Engelleme


Metin2 özel sunucularında sistem güvenliği, hem oyuncu deneyimini korumak hem de sunucu bütünlüğünü sağlamaya yönelik hayati öneme sahiptir. Bu bağlamda, C++ tabanlı güvenlik sistemleri, sunucu tarafında çalışan kritik altyapıyı oluşturur. Özellikle game ve auth sunucularında veri aktarımı sırasında güvenlik açıklarının giderilmesi, saldırıları engellemek açısından büyük önem taşır. Bu makalede, Metin2 özel sunucularında C++ ile yazılmış güvenlik sistemlerinde karşılaşılan yaygın sorunlar ve bu sorunların sabitlenmesi (fixlenmesi) için önerilen çözümler detaylı şekilde ele alınacaktır.

Güvenlik Sistemlerinin Önemi
Metin2 özel sunucularında güvenlik sistemleri, veri manipülasyonunu, yetkisiz erişimleri ve istismarları engellemek için kritik rol oynar. Özellikle pvp sistem sunucularında, oyuncuların hile kullanması veya sunucuya zarar verecek kodlar göndermesi gibi durumlar, sunucunun dengesini bozabilir. Bu nedenle, sunucu tarafında çalışan C++ altyapısında güçlü güvenlik mekanizmaları yer almalıdır.

Yaygın Güvenlik Açıkları ve Fix Yöntemleri

1. Paket Doğrulama Sistemlerinin Zayıf Oluşması:
Sunucuya gönderilen paketlerin kontrol edilmemesi, saldırganların istismar yapmasına yol açabilir. Game sunucusunda gelen paketlerin, belirli bir doğruluk kuralına göre kontrol edilmesi gerekir. Örneğin, bir oyuncu normalde 100 hızla koşamazsa, bu değeri geçen bir paket engellenmelidir. Bu kontrolü sağlamak için C++ seviyesinde paket filtreleme fonksiyonları yazılmalı ve her paket için bu filtrelerden geçirilmelidir.

2. Auth Sunucusu ile Game Sunucusu Arasındaki Haberleşme Güvensizliği:
Auth ve game sunucuları arasındaki veri akışı şifrelenmemişse, saldırganlar bu verileri ele geçirebilir. Bu veriler arasında kullanıcı adları, şifreler, IP adresleri gibi hassas bilgiler yer alabilir. Bu nedenle, sunucular arası iletişim için güvenli şifreleme algoritmaları (AES, RSA) kullanılmalıdır. Ayrıca, her sunucu bağlantısı için benzersiz oturum anahtarları (session key) üretilmeli ve her oturumda yenilenmelidir.

3. SQL Injection ve DB Tabanlı Saldırılar:
DB sunucusuna gönderilen komutlar, uygun kontroller yapılmadan çalıştırılırsa, SQL injection gibi saldırılara açık hâle gelir. Bu tür saldırıları önlemek için tüm kullanıcı girdileri prepared statements yöntemiyle veritabanına gönderilerek, komutların doğrudan çalıştırılması engellenmelidir. C++ tarafında bu işlemler, MySQL kütüphanesi kullanılarak güvenli hale getirilebilir.

Fix Uygulamalarında Dikkat Edilmesi Gerekenler

Bir güvenlik fixi uygulanırken, sadece hatayı düzeltmek yeterli olmaz. Fix işlemi, performansı düşürmeyecek şekilde optimize edilmelidir. Ayrıca, her fix işleminden sonra sunucu test edilmeli ve hata logları incelenmelidir. Özellikle Martysama gibi bilinen Metin2 geliştirici kaynakları üzerinden örnek fixler incelenebilir. Bu fixler, genellikle src dosyalarında yapılan küçük değişikliklerle sağlanır. Client src tarafında da güvenlik açıklarına karşı önlem alınmalıdır.

Python GUI ile Entegre Güvenlik Takibi
Bazı geliştiriciler, Python tabanlı GUI uygulamaları ile sunucu trafiğini izlemekte ve anormal davranışları tespit etmektedir. Bu tür uygulamalar, py root ve uiscript ile entegre çalışarak, sunucudaki veri akışını gerçek zamanlı olarak takip edebilir. Bu sayede, güvenlik açıkları daha erken aşamada fark edilebilir ve gerekli fixler hızlıca uygulanabilir.

Sonuç
Metin2 özel sunucularında güvenlik sistemlerinin düzgün çalışması, hem oyuncu memnuniyetini artırır hem de sunucu sahiplerinin maliyetlerini düşürür. C++ tabanlı fixler, doğru uygulandığında güçlü ve sürdürülebilir güvenlik sağlayabilir. Her sunucu farklı ihtiyaçlara sahip olduğundan, güvenlik sistemleri de buna göre özelleştirilmelidir. Core sistemlerin düzenli olarak güncellenmesi, pack ve source edit işlemleri sırasında güvenlik önlemlerinin alınması, uzun vadeli bir sunucu yönetimi için şarttır.


C++ Security System Fixes: Data Integrity and Attack Prevention on Metin2 Servers


In Metin2 private servers, system security is crucial for both preserving player experience and ensuring server integrity. In this context, C++-based security systems form the critical infrastructure running on the server side. Particularly on game and auth servers, fixing security vulnerabilities during data transfers is essential to prevent attacks. This article will thoroughly discuss common issues encountered in C++-written security systems on Metin2 private servers and proposed solutions to fix these problems.

Importance of Security Systems
Security systems on Metin2 private servers play a critical role in preventing data manipulation, unauthorized access, and exploitation. Especially in pvp system servers, players may use cheats or send harmful code to the server, which can disrupt the balance of the server. Therefore, robust security mechanisms must be present in the C++ infrastructure running on the server side.

Common Security Vulnerabilities and Fix Methods

1. Weakness in Packet Validation Systems:
Failure to validate packets sent to the server can allow attackers to exploit the system. On the game server, incoming packets should be checked against certain validation rules. For example, if a character normally cannot move at a speed higher than 100, any packet exceeding this value should be blocked. To achieve this, packet filtering functions must be written at the C++ level and every packet must pass through these filters.

2. Insecure Communication Between Auth and Game Servers:
If the data flow between auth and game servers is not encrypted, attackers can intercept sensitive information such as usernames, passwords, and IP addresses. Therefore, secure encryption algorithms (AES, RSA) should be used for inter-server communication. Additionally, unique session keys should be generated for each connection and renewed per session.

3. SQL Injection and Database-Based Attacks:
If commands sent to the DB server are executed without proper checks, they become vulnerable to attacks like SQL injection. To prevent such attacks, all user inputs should be sent to the database using the prepared statements method to prevent direct command execution. These operations in C++ can be secured using the MySQL library.

Considerations When Applying Fixes

When applying a security fix, merely correcting the error is not sufficient. The fix must be optimized to avoid performance degradation. After each fix, the server should be tested and error logs reviewed. Fixes from known Metin2 development resources like Martysama can also be examined. These fixes often involve minor changes in the src files. Precautions must also be taken on the client src side against security vulnerabilities.

Integrated Security Monitoring with Python GUI
Some developers monitor server traffic using Python-based GUI applications and detect abnormal behaviors. Such applications, integrated with py root and uiscript, can track real-time data flow on the server. This allows early detection of security vulnerabilities and enables quick application of necessary fixes.

Conclusion
Proper functioning of security systems in Metin2 private servers enhances player satisfaction and reduces costs for server owners. When applied correctly, C++-based fixes can provide strong and sustainable security. Since each server has different needs, security systems should be customized accordingly. Regular updates of core systems and taking security precautions during pack and source edit processes are essential for long-term server management.
 

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

Geri
Üst Alt