Disconnect açığı düzeltmesi

Resim Yükle

Slaves

Admin
Admin
Üye
13 Nis 2025
1,108
520,745
885
Admin
www.mt2-pvpserverler.com
Son zamanlarda kimliği belirsiz kişiler tarafından büyük, küçük oyunlara yapılan hesap adı gözüken oyuncuları oyundan atma açığının fixini paylaşıyorum.
Hatanın yapılış şeklini bu fixi uygulamayacak arkadaşların zarar görmemesi için anlatmıyorum.
Açığı bulup benimle düzeltmem için paylaşan arkadaşa da teşekkürlerimi iletiyorum.

DB/ClientManagerLogin.cpp bulunur.

C++:

if (FindLogonAccount(r.login))
{
sys_log(0, "LOGIN_BY_KEY already login %s %lu", r.login, p->dwLoginKey);
TPacketDGLoginAlready ptog;
strlcpy(ptog.szLogin, szLogin, sizeof(ptog.szLogin));
pkPeer->EncodeHeader(HEADER_DG_LOGIN_ALREADY, dwHandle, sizeof(TPacketDGLoginAlready));
pkPeer->Encode(&ptog, sizeof(TPacketDGLoginAlready));
return;
}

Bu kod
C++:

strlcpy(ptog.szLogin, szLogin, sizeof(ptog.szLogin));
Bununla değiştirilir
C++:

strlcpy(ptog.szLogin, r.login, sizeof(ptog.szLogin));