Recent am reusit sa fac o cheie de securitate extra pentru voi.
Mai jos va voi lasa tot fisierul scris in totalitate de mine! Succes!
Clientii de genul ma fac sa renunt
Implementarea sistemului Extra Security Key pentru protejarea clientului presupune adaugarea unei chei unice in codul clientului si serverului, astfel incat doar clientul autentic sa se poata conecta. Aceasta metoda previne utilizarea clientilor modificati sau neautorizati.
Acest sistem adaugă o cheie de securitate suplimentară în pachetul de login, permițând serverului să verifice versiunea clientului și să blocheze conexiunile de la versiuni neautorizate. Implementarea necesită cunoștințe de programare în C++.
1. Cum functioneaza Extra Security Key?
Se introduce o cheie secreta in client si server.
La autentificare, clientul trimite aceasta cheie catre server.
Serverul verifica cheia; daca nu corespunde, respinge conexiunea.
In cazul unui client modificat, conexiunea este blocata automat.
2. Pasi pentru implementare
Pasul 1: Adaugarea cheii in client (Python)
Deschide fisierul root/uiscript/networkmodule.py sau game.py, unde se trimite pachetul de autentificare.
Adauga urmatoarea linie in metoda de login:
Salveaza modificarile si reimpacheteaza fisierele utilizand EterNexus sau un alt packer.
Pasul 2: Adaugarea verificarii pe server (C++)
Deschide fisierul sursa al serverului: input_main.cpp (din Srcs/Game) si gaseste functia de login:
Adauga o verificare pentru cheia de securitate:
Salveaza modificarile si compileaza serverul.
Pasul 3: Adaugarea cheii in packet header (protocol de comunicare)
Pentru a trimite cheia in pachetele de login, trebuie sa adaugi o variabila noua in structura pachetelor.
Deschide fisierul packet.h din sursa serverului si adauga:
In partea clientului, in fisierul packet.h, asigura-te ca aceeasi structura este definita.
Pasul 4: Blocarea accesului fara cheie
In fisierul de configurare al serverului config, poti adauga o verificare simpla pentru conexiuni neautorizate:
In codul sursa, la citirea config-ului, verifica cheia:
3. Testarea sistemului
Pornirea serverului si verificarea logurilor pentru mesaje de securitate.
Conectarea folosind clientul modificat.
Incercarea de a folosi un client diferit – ar trebui sa fie respins.
4. Avantaje si limitari
Avantaje:
Protejeaza impotriva clientilor modificati sau neautorizati.
Usor de implementat si personalizat.
Fara costuri suplimentare.
Limitari:
Daca cineva are acces la fisierele clientului, poate extrage cheia.
Poate fi evitata prin atacuri de tip "man-in-the-middle" daca nu se foloseste criptare.
Mai jos va voi lasa tot fisierul scris in totalitate de mine! Succes!
Clientii de genul ma fac sa renunt

Implementarea sistemului Extra Security Key pentru protejarea clientului presupune adaugarea unei chei unice in codul clientului si serverului, astfel incat doar clientul autentic sa se poata conecta. Aceasta metoda previne utilizarea clientilor modificati sau neautorizati.
Acest sistem adaugă o cheie de securitate suplimentară în pachetul de login, permițând serverului să verifice versiunea clientului și să blocheze conexiunile de la versiuni neautorizate. Implementarea necesită cunoștințe de programare în C++.
1. Cum functioneaza Extra Security Key?
Se introduce o cheie secreta in client si server.
La autentificare, clientul trimite aceasta cheie catre server.
Serverul verifica cheia; daca nu corespunde, respinge conexiunea.
In cazul unui client modificat, conexiunea este blocata automat.
2. Pasi pentru implementare
Pasul 1: Adaugarea cheii in client (Python)
Deschide fisierul root/uiscript/networkmodule.py sau game.py, unde se trimite pachetul de autentificare.
Adauga urmatoarea linie in metoda de login:
Cod: Selectaţi tot
import app
def SendLoginPacket(self, id, pwd):
security_key = "MY_SECRET_KEY_12345"
self.stream.popupWindow.Close()
self.stream.SetLoginInfo(id, pwd)
self.stream.SetSecurityKey(security_key) # Adauga cheia de securitate
self.stream.Connect()
Pasul 2: Adaugarea verificarii pe server (C++)
Deschide fisierul sursa al serverului: input_main.cpp (din Srcs/Game) si gaseste functia de login:
Cod: Selectaţi tot
bool CInputMain::Login(LPCHARACTER ch, const char* c_pszLogin, const char* c_pszPwd)
Cod: Selectaţi tot
const char* security_key = "MY_SECRET_KEY_12345"; // Aceeasi cheie ca in client
if (strcmp(ch->GetSecurityKey(), security_key) != 0)
{
sys_log(0, "Conexiune respinsa: Cheia de securitate este invalida!");
return false;
}
Pasul 3: Adaugarea cheii in packet header (protocol de comunicare)
Pentru a trimite cheia in pachetele de login, trebuie sa adaugi o variabila noua in structura pachetelor.
Deschide fisierul packet.h din sursa serverului si adauga:
Cod: Selectaţi tot
typedef struct SPacketLogin
{
char szID[25];
char szPW[25];
char szSecurityKey[50]; // Adaugarea cheii de securitate
} TPacketCGLogin;
Pasul 4: Blocarea accesului fara cheie
In fisierul de configurare al serverului config, poti adauga o verificare simpla pentru conexiuni neautorizate:
Cod: Selectaţi tot
SECURITY_KEY=MY_SECRET_KEY_12345
Cod: Selectaţi tot
char szConfigKey[50];
ConfigReadString("SECURITY_KEY", szConfigKey, sizeof(szConfigKey));
if (strcmp(szConfigKey, security_key) != 0)
{
sys_err("Conexiune invalida: cheia de securitate nu corespunde!");
return false;
}
Pornirea serverului si verificarea logurilor pentru mesaje de securitate.
Conectarea folosind clientul modificat.
Incercarea de a folosi un client diferit – ar trebui sa fie respins.
4. Avantaje si limitari
Avantaje:
Protejeaza impotriva clientilor modificati sau neautorizati.
Usor de implementat si personalizat.
Fara costuri suplimentare.
Limitari:
Daca cineva are acces la fisierele clientului, poate extrage cheia.
Poate fi evitata prin atacuri de tip "man-in-the-middle" daca nu se foloseste criptare.