MaviAyGames | [C++] CMD Dosyasını Etkisiz Hale Getirme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sunucunuza dışarıdan birisi erişim sağladığı zaman server dosyalarından CMD içinden PLAYER yerine LOD_WIZARD vb. yetki verebilir. Bu işlemi uygular iseniz source dosyalarının yardımı olmadan komut yetkileri değiştirilmez.





config.cpp
Arat:

Kod:
if ((fp = fopen("CMD", "r")))

Kod bloğunu tamamen kaldır

Kod:
if ((fp = fopen("CMD", "r")))     {         while (fgets(buf, 256, fp))         {             char cmd[32], levelname[32];             int level;             two_arguments(buf, cmd, sizeof(cmd), levelname, sizeof(levelname));             if (!*cmd || !*levelname)             {                 fprintf(stderr, "CMD syntax error: <cmd> <DISABLE | LOW_WIZARD | WIZARD | HIGH_WIZARD | GOD>\n");                 exit(1);             }             if (!strcasecmp(levelname, "LOW_WIZARD"))                 level = GM_LOW_WIZARD;             else if (!strcasecmp(levelname, "WIZARD"))                 level = GM_WIZARD;             else if (!strcasecmp(levelname, "HIGH_WIZARD"))                 level = GM_HIGH_WIZARD;             else if (!strcasecmp(levelname, "GOD"))                 level = GM_GOD;             else if (!strcasecmp(levelname, "IMPLEMENTOR"))                 level = GM_IMPLEMENTOR;             else if (!strcasecmp(levelname, "DISABLE"))                 level = GM_IMPLEMENTOR + 1;             else             {                 fprintf(stderr, "CMD syntax error: <cmd> <DISABLE | LOW_WIZARD | WIZARD | HIGH_WIZARD | GOD>\n");                 exit(1);             }             interpreter_set_privilege(cmd, level);         }         fclose(fp);     }

MaviAyGames | [C++] CMD Dosyasını Etkisiz Hale Getirme

Metin2 özel sunucularında geliştirme yaparken karşılaşılan yaygın güvenlik sorunlarından birisi, saldırganların sistem komut dosyalarını manipüle ederek sunucu üzerinde yetkisiz işlemler yapmasıdır. Bu bağlamda, CMD (Command Prompt) dosyalarının etkisiz hale getirilmesi, sunucu güvenliği açısından büyük önem taşımaktadır. Bu yazıda, MaviAyGames tarafından önerilen yöntemler doğrultusunda C++ dilinde nasıl bir işlem yapılarak CMD komut dosyaları etkisiz hale getirilebilir, detaylı olarak ele alacağız.

CMD Nedir?
CMD, Windows işletim sisteminde komut satırı arayüzü sağlayan bir programdır. Saldırganlar bu araç yardımıyla sistem üzerinde değişiklikler yapabilir, dosyaları silebilir veya yetkisiz erişim sağlayabilir. Bu nedenle, Metin2 özel sunucularında CMD kullanımının engellenmesi, ciddi güvenlik açıklarının önüne geçebilir.

Neden CMD'yi Etkisiz Hale Getirmeliyiz?
Sunucu tarafında çalışan bir C++ tabanlı sistemde, yetkisiz kullanıcıların komut istemcisine erişimi, sistem bütünlüğü açısından büyük risk oluşturur. Özellikle Metin2 gibi çok oyunculu oyunlarda, bu tür açıklar exploit ile sonuçlanabilir. Bu durumda, sistemde çalışan batch dosyalarının çalıştırılması engellenmelidir.

C++ ile CMD'yi Engelleme Yöntemi
C++ dilinde yazılmış bir uygulama ile sistemde çalışan cmd.exe süreçlerini izlemek mümkündür. Aşağıda basit bir örnek verilmiştir:

Kod:
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);[BR][/BR]PROCESSENTRY32 entry;[BR][/BR]entry.dwSize = sizeof(PROCESSENTRY32);[BR][/BR]if (Process32First(hProcess, &entry)) {[BR][/BR]    do {[BR][/BR]        if (wcscmp(entry.szExeFile, L'cmd.exe') == 0) {[BR][/BR]            HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, entry.th32ProcessID);[BR][/BR]            if (hProc) {[BR][/BR]                TerminateProcess(hProc, 0);[BR][/BR]                CloseHandle(hProc);[BR][/BR]            }[BR][/BR]        }[BR][/BR]    } while (Process32Next(hProcess, &entry));[BR][/BR]}[BR][/BR]CloseHandle(hProcess);

Yukarıdaki kod parçası, çalışan tüm süreçleri tarar ve cmd.exe olanları sonlandırır. Bu yöntem, Metin2 sunucularında yetkisiz komut çalıştırma girişimlerini önleyebilir.

Alternatif Yöntemler
Bazı geliştiriciler, Windows kayıt defteri üzerinden CMD erişimini tamamen kapatmayı tercih edebilir. Ancak bu yöntem, sistemde başka yazılımların da etkilenmesine sebep olabilir. Bu nedenle, C++ tabanlı dinamik çözümleme daha güvenlidir ve kontrollüdür.

Metin2 Sunucularında Güvenlik Pratikleri
Oyun sunucularında güvenlik, yalnızca CMD engellemeyle sınırlı değildir. Auth ve Game sunucularında aktif edilen filtreleme, loglama ve izleme mekanizmaları da önemli rol oynar. Ayrıca, Python veya C++ tabanlı script sistemleri ile otomatik saldırı tespiti yapılabilir.

Sonuç
Metin2 özel sunucularında güvenliği artırmak için alınabilecek küçük adımlardan birisi, komut satırı erişimlerinin kontrolüdür. MaviAyGames yaklaşımıyla, C++ kullanarak bu tür tehditleri etkisiz hale getirmek oldukça etkili bir stratejidir. Bu tür güvenlik önlemleri, hem oyuncuların hem de sunucu sahiplerinin daha güvenli bir ortamda oyun oynamasını sağlar.


MaviAyGames | [C++] Disabling CMD File

When developing private Metin2 servers, one of the common security issues encountered is attackers manipulating system command files to perform unauthorized operations on the server. In this context, disabling CMD (Command Prompt) files is of great importance for server security. In this article, we will examine in detail how to disable CMD command files using C++ language, following the methods suggested by MaviAyGames.

What is CMD?
CMD is a command-line interface tool provided by the Windows operating system. Attackers can use this tool to make changes to the system, delete files, or gain unauthorized access. Therefore, disabling CMD usage in Metin2 private servers can prevent serious security vulnerabilities.

Why Should We Disable CMD?
In a C++-based system running on the server side, unauthorized users gaining access to the command prompt poses a significant risk to system integrity. Especially in multiplayer games like Metin2, such vulnerabilities can lead to exploits. In this case, running batch files on the system must be prevented.

Method of Disabling CMD with C++
It is possible to monitor running cmd.exe processes in a system using a C++ application. Below is a simple example:

Kod:
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);[BR][/BR]PROCESSENTRY32 entry;[BR][/BR]entry.dwSize = sizeof(PROCESSENTRY32);[BR][/BR]if (Process32First(hProcess, &entry)) {[BR][/BR]    do {[BR][/BR]        if (wcscmp(entry.szExeFile, L'cmd.exe') == 0) {[BR][/BR]            HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, entry.th32ProcessID);[BR][/BR]            if (hProc) {[BR][/BR]                TerminateProcess(hProc, 0);[BR][/BR]                CloseHandle(hProc);[BR][/BR]            }[BR][/BR]        }[BR][/BR]    } while (Process32Next(hProcess, &entry));[BR][/BR]}[BR][/BR]CloseHandle(hProcess);

The above code snippet scans all running processes and terminates those named cmd.exe. This method can prevent unauthorized command execution attempts on Metin2 servers.

Alternative Methods
Some developers prefer to completely disable CMD access through the Windows registry. However, this approach may affect other software on the system. Therefore, dynamic analysis based on C++ is safer and more controlled.

Security Practices on Metin2 Servers
Security on game servers is not limited to just disabling CMD. Filtering, logging, and monitoring mechanisms activated on Auth and Game servers also play an important role. Additionally, automatic attack detection can be implemented using Python or C++-based script systems.

Conclusion
One of the small steps to enhance security on Metin2 private servers is controlling command-line access. With the MaviAyGames approach, disabling such threats using C++ is quite effective. Such security measures ensure both players and server owners enjoy a safer gaming environment.
 

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

Benzer konular

Geri
Üst Alt