[C++]Fix select/login exploit buffer

Aici poți găsi sisteme complete, verificate și recomandate de echipa 4Metin.
Avatar utilizator
F. Gabriel
Administrator
Administrator
Mesaje: 430
Membru din: Lun Aug 01, 2022 10:23 am
Localitate: Tecuci
Status: Retras
Multumiri acordate: 15
Multumiri primite: 156
Contact:

[C++]Fix select/login exploit buffer

Mesaj de F. Gabriel »

Deschide input_login.cpp si caută următoarea funcție:

Cod: Selectaţi tot

void CInputLogin::CharacterSelect(L
Înainte de TPlayerLoadPacket player_load_packet;, adaugă:

Cod: Selectaţi tot

	if (!c_r.players[pinfo->index].dwID) // FIXME
{
	sys_err("No player id for login %s", c_r.login);
	d->SetPhase(PHASE_CLOSE);
	return;
	}
În funcția void CInputLogin::ChangeName(LPDESC d, const char *. adaugă:

Deasupra liniei:

Cod: Selectaţi tot

if (!c_r.players[p->index].bChangeName)
Adaugă:

Cod: Selectaţi tot

	if (p->index >= PLAYER_PER_ACCOUNT)	// FIXME overflow
	{
		sys_err("index overflow %d, login: %s", p->index, c_r.login);
		d->SetPhase(PHASE_CLOSE);
		return;
	}
Imagine

Hosting Metin2 by OVINETWORK.RO
Scrie răspuns