AdminPage Sistemi Detaylı Kaldırma Rehberi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Güvenlik ve Temizlik: Admin Web Panel & HEADER_CG_TEXT Kaldırma
Exploitlere açık eski yönetim sistemini kaldırarak sunucu güvenliğini artırın.



Nedir ve Neden Kaldırıyoruz?

Bu sistem, Ymir'in çok eski zamanlarda kullandığı, bir web paneli üzerinden sunucuya TCP bağlantısı kurarak komut göndermesini (Event açma, duyuru geçme, shutdown, user sayısı alma vb.) sağlayan bir altyapıdır.

Kaldırma Sebeplerimiz:
  • <li data-xf-list-type="ul">🛡️ Güvenlik Açığı: Sistemin ana paketi olan HEADER_CG_TEXT, bilinen Buffer Overflow açıklarına sahiptir ve sunucunuzda Core düşmesine (çökmesine) sebep olabilir. <li data-xf-list-type="ul">🗑️ İşlevsizlik: Bu sistemi kullanan orijinal web paneli elimizde yoktur. <li data-xf-list-type="ul">✨ Temizlik: Gereksiz config tanımları ve paket işleyicileri kod kirliliği yaratmaktadır.

Bu rehber ile bu sistemi ve ilgili güvenlik açığını tamamen kapatıyoruz.



⚠️ DİKKAT ⚠️
İşlemlere başlamadan önce Server Source yedeğinizi alınız!



ADIM 1: Config Temizliği

Dosya: Server\Source\game\config.cpp
İşlem: Aşağıdaki kod bloklarını bulup silin.

Kod:
// Silinecek Değişkenler: std::vector&lt;std::string&gt;    g_stAdminPageIP; std::string    g_stAdminPagePassword = "SHOWMETHEMONEY"; // Silinecek Fonksiyonlar: static void FN_add_adminpageIP(char* line) { ... } static void FN_log_adminpage() { ... } // Silinecek Tokenler (TOKEN bloğu içindekiler): TOKEN("adminpage_ip") ... TOKEN("adminpage_ip1") ... TOKEN("adminpage_ip2") ... TOKEN("adminpage_ip3") ... TOKEN("adminpage_password") ... // Silinecek Çağrı: FN_log_adminpage();

Dosya: Server\Source\game\config.h
İşlem: Extern tanımlarını silin.

Kod:
extern std::vector&lt;std::string&gt;    g_stAdminPageIP; extern std::string    g_stAdminPagePassword;



ADIM 2: DESC (Bağlantı) Temizliği

Dosya: Server\Source\game\desc.cpp

  • <li data-xf-list-type="ul">Sil:
    Kod:
    m_bAdminMode = false;
    (Initialize içinde) <li data-xf-list-type="ul">Sil:
    Kod:
    if (desc-&gt;IsAdminMode()) { return (ping_event_second_cycle); }
    (ping_event içinde) <li data-xf-list-type="ul">Sil:
    Kod:
    SetAdminMode
    ve
    Kod:
    IsAdminMode
    fonksiyonlarının tamamını silin.

Dosya: Server\Source\game\desc.h
İşlem: Aşağıdakileri header dosyasından silin.

Kod:
void SetAdminMode(); bool IsAdminMode(); bool m_bAdminMode;



ADIM 3: Input İşleyicisi (En Önemli Kısım)

Dosya: Server\Source\game\input.cpp

1. İşlem: Yardımcı fonksiyonları silin:
Kod:
bool IsEmptyAdminPage() { ... } bool IsAdminPage(const char* ip) { ... } void ClearAdminPages() { ... }

2. İşlem: HEADER_CG_TEXT kontrol bloğunu tamamen silin.
(Not: Bu blok "if (bHeader == HEADER_CG_TEXT)" ile başlar ve "d-&gt;Packet(stResult.c_str()..." ile biter. Yaklaşık 200 satırlık dev bir bloktur.)

Kod:
if (bHeader == HEADER_CG_TEXT)     {         // ... İçindeki her şeyi silin ...         return (c_pSep - c_pData) + 1;     }

3. İşlem (KRİTİK DÜZELTME):
Yukarıdaki bloğu sildiğinizde, bir sonraki `else if` bloğu havada kalacaktır. Onu `if`'e çevirmelisiniz.

Bul:
Kod:
else if (bHeader == HEADER_CG_MARK_LOGIN)

Değiştir:
Kod:
if (bHeader == HEADER_CG_MARK_LOGIN)



ADIM 4: Paket Tanımlarının Temizlenmesi

Dosya: Server\Source\game\packet.h
İşlem: Header ve Struct yapısını silin.

Kod:
HEADER_CG_TEXT = 64, typedef struct command_text {     BYTE    bHeader; } TPacketCGText;

Dosya: Server\Source\game\packet_info.cpp
İşlem: Paket kaydını silin.

Kod:
Set(HEADER_CG_TEXT, sizeof(TPacketCGText), "Text");



Tüm işlemleri yaptıktan sonra Game Source build almayı unutmayın.
Artık sunucunuz buffer overflow saldırılarına karşı daha güvenli!
İyi forumlar!

AdminPage Sistemi Detaylı Kaldırma Rehberi

Metin2 özel sunucu geliştirmesi yapan geliştiriciler için AdminPage sistemi, sunucu üzerinde yetkili işlemleri kolaylaştıran bir arayüz sunar. Ancak bazen bu sistemi tamamen kaldırmak isteyebilirsiniz. Bu rehberde, AdminPage sistemini güvenli ve eksiksiz şekilde nasıl kaldıracağınızı adım adım anlatacağız. Bu işlem, Metin2 server src üzerinde değişiklik gerektirdiği için dikkatli ilerlemek önemlidir.

Neden AdminPage Sistemini Kaldırmalısınız?[/BR][/BR]AdminPage sistemi bazı sunucular için yararlı olsa da, bazı geliştiriciler güvenlik, performans veya estetik nedenlerle bu sistemi devre dışı bırakmayı tercih eder. Özellikle server src üzerinde özelleştirme yapanlar için bu sistem istenmeyen fonksiyonlar içerebilir. Ayrıca bazı C++ sistemlerle çakışabilir. Bu nedenle AdminPage sistemini kaldırmak, daha temiz ve optimize bir sunucu ortamı sunar.

AdminPage Sistemini Kaldırmadan Önce Hazırlık[/BR][/BR]Öncelikle, mevcut sunucu dosyalarınızın yedeklerini almanız önerilir. Herhangi bir hata durumunda sisteminizi geri yüklemek için bu adımı atlamayın. AdminPage genellikle auth ve game sunucu yapılandırmasında yer alır. Bu nedenle hem client hem de server src üzerinde işlem yapmanız gerekebilir. Ayrıca, bazı Python GUI tabanlı sistemlerle entegre çalışıyorsa, py root dosyalarında da değişiklikler yapmanız gerekebilir.

Adım Adım Kaldırma İşlemi[/BR][/BR]1. Server SRC Dosyasını Kontrol Edin: AdminPage genellikle game server kaynak kodunda yer alır. Game src klasöründe AdminPage ile ilgili dosyaları arayın. Genellikle 'adminpage.cpp', 'adminpage.h' gibi dosya isimleriyle bulunabilir. Bu dosyaları silmeden önce, ilgili sınıfların diğer modüllerle olan bağlantılarını kontrol edin. Bağlantıları koparın veya yorum satırına alın.

2. Auth Sunucusunu Kontrol Edin: Bazı AdminPage sistemleri auth sunucusuna entegre edilmiş olabilir. Auth src klasöründe adminpage ile ilgili kod parçalarını bulun ve bu kodları silin veya devre dışı bırakın. Özellikle login ve char select işlemlerinde AdminPage ile ilgili sorgular varsa, bunları temizleyin.

3. Client Tarafında Değişiklikler: Client src dosyalarında da AdminPage ile ilgili komutlar veya UI elementleri bulunabilir. Uiscript dosyalarında 'adminpage' kelimesi geçen bölümleri kontrol edin ve gerekirse silin. Py dosyalarında da benzer kontroller yapılmalıdır.

4. Database (DB) Temizliği: AdminPage sistemine ait tablolar veya sorgular veritabanında yer alıyor olabilir. DB Core üzerinden adminpage ile ilgili tüm tabloları ve trigger'ları silin. Bu işlem, veritabanı performansını artırabilir ve sistemi daha temiz tutar.

5. Compile İşlemi: Tüm bu değişiklikleri yaptıktan sonra server src'yi tekrar derleyin (compile). Derleme sırasında hata alırsanız, silinen kod parçalarının başka bir modül tarafından kullanılıp kullanılmadığını kontrol edin. Gerekirse bağımlılıkları düzeltin.

Olası Hatalar ve Çözümler[/BR][/BR]Kaldırma işlemi sırasında karşılaşabileceğiniz bazı yaygın hatalar şunlardır: 'undefined reference to adminpage_function', 'missing header file', 'compilation failed'. Bu durumlarda, silinen dosyaların diğer modüllerle olan bağlantılarını kontrol etmelisiniz. Ayrıca, bazı C++ sistemler AdminPage sistemine bağımlı olabilir. Bu durumda, bu sistemleri de güncellemeniz gerekebilir.

Sonuç[/BR][/BR]AdminPage sistemini doğru şekilde kaldırmak, Metin2 özel sunucu geliştirme sürecinde önemli bir adımdır. Bu işlem, sunucunuzu daha hızlı, daha güvenli ve daha özelleştirilebilir hale getirebilir. Ancak, yapılan her değişiklikte dikkatli olmalı ve test ortamında denemeler yapmalısınız. Bu rehber sayesinde, AdminPage sistemini güvenle kaldırabilir ve sunucunuzu daha profesyonel bir seviyeye taşıyabilirsiniz.


Detailed Guide for Removing AdminPage System

The AdminPage system provides an interface that simplifies administrative tasks on Metin2 private servers. However, there may be times when you want to completely remove this system. In this guide, we will explain step by step how to safely and thoroughly remove the AdminPage system. Since this process requires modifications to your Metin2 server src, it is important to proceed with caution.

Why Should You Remove the AdminPage System?[/BR][/BR]Although the AdminPage system can be useful for some servers, some developers prefer to disable it due to security, performance, or aesthetic reasons. For those customizing server src, this system may contain unwanted functions. Additionally, it might conflict with certain C++ systems. Therefore, removing the AdminPage system offers a cleaner and more optimized server environment.

Preparation Before Removing the AdminPage System[/BR][/BR]Firstly, it is recommended to take backups of your current server files. Do not skip this step in case of any errors. The AdminPage usually exists within both auth and game server configurations. Therefore, you may need to modify both client and server src. If it's integrated with Python GUI-based systems, you may also need to make changes in py root files.

Step-by-Step Removal Process[/BR][/BR]1. Check the Server SRC File: The AdminPage is generally located in the game server source code. Look for files related to AdminPage in the game src folder. These files might have names like 'adminpage.cpp', 'adminpage.h'. Before deleting these files, check their connections to other modules. Break or comment out those links.

2. Check the Auth Server: Some AdminPage systems might be integrated into the auth server. Check for AdminPage-related code in the auth src folder and delete or disable them. Particularly if there are queries related to AdminPage during login or character selection, clean them up.

3. Changes in the Client Side: There may be commands or UI elements related to AdminPage in the client src files. Check sections where 'adminpage' appears in Uiscript files and delete or modify them accordingly. Similar checks should be done in .py files as well.

4. Database (DB) Cleanup: Tables or queries belonging to the AdminPage system may exist in the database. Delete all tables and triggers related to AdminPage through DB Core. This action can improve database performance and keep the system cleaner.

5. Compile Process: After making all these changes, recompile your server src. If you encounter errors during compilation, check whether the deleted code parts are used by other modules. Fix dependencies if necessary.

Possible Errors and Solutions[/BR][/BR]Some common errors you might encounter during the removal process are: 'undefined reference to adminpage_function', 'missing header file', 'compilation failed'. In such cases, check the connections of deleted files to other modules. Additionally, some C++ systems may depend on the AdminPage system. In that case, you may need to update those systems too.

Conclusion[/BR][/BR]Correctly removing the AdminPage system is an important step in Metin2 private server development. This action can make your server faster, more secure, and more customizable. However, you must be careful with every modification and perform tests in a testing environment. With this guide, you can safely remove the AdminPage system and take your server to a more professional level.
 

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

Geri
Üst Alt