Problema parole

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
SyopaRPG
Nou Venit

Nou Venit
Mesaje: 49
Membru din: 21 Dec 2020, 22:43
Aprecieri: 51  
Mulţumiri: 1  
Medalii

*Problemă/Întrebare: Nu stiu cum sunt criptate parolele
Tipologie server: PVM
*Resursă folosită: Metin2Aze
*Syserr: -
Poză: -
*Detalii suplimentare: Cum imi pot da seama in ce fel sunt criptate parolele din svfiles-ul meu? Website-ul pe care ma Inregistrez le cripteaza in MD5 dar server-ul nu le recunoaste, imi scrie "Nume sau parola gresita." cand incerc sa ma loghez...
Avatar utilizator
Ionuţ
Web Master

Web Master
Mesaje: 1001
Membru din: 02 Sep 2013, 14:41
Server: Metin2CMS
Regat: Jinno
Aprecieri: 88  
Mulţumiri: 471  
Discord: Copiază ID
 Contact:
Medalii

Mergi in game/input_auth.cpp.
Acolo ai o funcție CInputAuth::Login, în interiorul ei se face SELECT mysql cu parola criptată. Vezi ce criptare ai. mysql_hash_password() e cea MD5.
Pentru acest mesaj, Ionuţ for the post:
SyopaRPG
Proiectele mele

Imagine
Afișează semnătura
Avatar utilizator
SyopaRPG
Nou Venit

Nou Venit
Mesaje: 49
Membru din: 21 Dec 2020, 22:43
Aprecieri: 51  
Mulţumiri: 1  
Medalii

Ionuţ scrie: ↑10 Ian 2021, 21:47 Mergi in game/input_auth.cpp.
Acolo ai o funcție CInputAuth::Login, în interiorul ei se face SELECT mysql cu parola criptată. Vezi ce criptare ai. mysql_hash_password() e cea MD5.
Unde mai exact gasesc acest input_auth?
Avatar utilizator
Petrinel
Nivel 4

Nivel 4
Mesaje: 539
Membru din: 31 Mar 2018, 00:58
Server: Fara
Regat: Jinno
Aprecieri: 319  
Mulţumiri: 101  
Discord: Copiază ID
Medalii

SyopaRPG scrie: ↑10 Ian 2021, 21:57
Ionuţ scrie: ↑10 Ian 2021, 21:47 Mergi in game/input_auth.cpp.
Acolo ai o funcție CInputAuth::Login, în interiorul ei se face SELECT mysql cu parola criptată. Vezi ce criptare ai. mysql_hash_password() e cea MD5.
Unde mai exact gasesc acest input_auth?
sursa game.
Pentru acest mesaj, Petrinel for the post:
SyopaRPG
Imagine
Afișează semnătura
Avatar utilizator
SyopaRPG
Nou Venit

Nou Venit
Mesaje: 49
Membru din: 21 Dec 2020, 22:43
Aprecieri: 51  
Mulţumiri: 1  
Medalii

Petrinel scrie: ↑10 Ian 2021, 22:00
SyopaRPG scrie: ↑10 Ian 2021, 21:57
Ionuţ scrie: ↑10 Ian 2021, 21:47 Mergi in game/input_auth.cpp.
Acolo ai o funcție CInputAuth::Login, în interiorul ei se face SELECT mysql cu parola criptată. Vezi ce criptare ai. mysql_hash_password() e cea MD5.
Unde mai exact gasesc acest input_auth?
sursa game.
Cred ca asta este functia, dar nu inteleg nimic din ea, imi puteti spune in ce fel sunt criptate?:
void CInputAuth::Login(LPDESC d, const char * c_pData)
{
extern bool Metin2Server_IsInvalid();

#ifdef ENABLE_LIMIT_TIME
if (Metin2Server_IsInvalid())
{
extern void ClearAdminPages();
ClearAdminPages();
exit(1);
return;
}
#endif
TPacketCGLogin3 * pinfo = (TPacketCGLogin3 *) c_pData;

if (!g_bAuthServer)
{
sys_err ("CInputAuth class is not for game server. IP %s might be a hacker.",
inet_ntoa(d->GetAddr().sin_addr));
d->DelayedDisconnect(5);
return;
}

// string 무결성을 위해 복사
char login[LOGIN_MAX_LEN + 1];
trim_and_lower(pinfo->login, login, sizeof(login));

char passwd[PASSWD_MAX_LEN + 1];
strlcpy(passwd, pinfo->passwd, sizeof(passwd));

sys_log(0, "InputAuth::Login : %s(%d) desc %p",
login, strlen(login), get_pointer(d));

// check login string
if (false == FN_IS_VALID_LOGIN_STRING(login))
{
sys_log(0, "InputAuth::Login : IS_NOT_VALID_LOGIN_STRING(%s) desc %p",
login, get_pointer(d));
LoginFailure(d, "NOID");
return;
}

if (g_bNoMoreClient)
{
TPacketGCLoginFailure failurePacket;

failurePacket.header = HEADER_GC_LOGIN_FAILURE;
strlcpy(failurePacket.szStatus, "SHUTDOWN", sizeof(failurePacket.szStatus));

d->Packet(&failurePacket, sizeof(failurePacket));
return;
}

if (DESC_MANAGER::instance().FindByLoginName(login))
{
LoginFailure(d, "ALREADY");
return;
}

DWORD dwKey = DESC_MANAGER::instance().CreateLoginKey(d);
DWORD dwPanamaKey = dwKey ^ pinfo->adwClientKey[0] ^ pinfo->adwClientKey[1] ^ pinfo->adwClientKey[2] ^ pinfo->adwClientKey[3];
d->SetPanamaKey(dwPanamaKey);

sys_log(0, "InputAuth::Login : key %u:0x%x login %s", dwKey, dwPanamaKey, login);

// BRAZIL_AUTH
if (LC_IsBrazil() && !test_server)
{
int result = auth_brazil(login, passwd);

switch (result)
{
case AUTH_BRAZIL_SERVER_ERR:
case AUTH_BRAZIL_NOID:
LoginFailure(d, "NOID");
return;
case AUTH_BRAZIL_WRONGPWD:
LoginFailure(d, "WRONGPWD");
return;
case AUTH_BRAZIL_FLASHUSER:
LoginFailure(d, "FLASH");
return;
}
}

TPacketCGLogin3 * p = M2_NEW TPacketCGLogin3;
thecore_memcpy(p, pinfo, sizeof(TPacketCGLogin3));

char szPasswd[PASSWD_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(szPasswd, sizeof(szPasswd), passwd, strlen(passwd));

char szLogin[LOGIN_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(szLogin, sizeof(szLogin), login, strlen(login));

// CHANNEL_SERVICE_LOGIN
if (Login_IsInChannelService(szLogin))
{
sys_log(0, "ChannelServiceLogin [%s]", szLogin);

DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",

szPasswd, szLogin);
}
// END_OF_CHANNEL_SERVICE_LOGIN
else
{
DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
"SELECT PASSWORD('%s'),password,securitycode,social_id,id,status,availDt - NOW() > 0,"
"UNIX_TIMESTAMP(silver_expire),"
"UNIX_TIMESTAMP(gold_expire),"
"UNIX_TIMESTAMP(safebox_expire),"
"UNIX_TIMESTAMP(autoloot_expire),"
"UNIX_TIMESTAMP(fish_mind_expire),"
"UNIX_TIMESTAMP(marriage_fast_expire),"
"UNIX_TIMESTAMP(money_drop_rate_expire),"
"UNIX_TIMESTAMP(create_time)"
" FROM account WHERE login='%s'",
szPasswd, szLogin);
}
}
Avatar utilizator
Petrinel
Nivel 4

Nivel 4
Mesaje: 539
Membru din: 31 Mar 2018, 00:58
Server: Fara
Regat: Jinno
Aprecieri: 319  
Mulţumiri: 101  
Discord: Copiază ID
Medalii

	// CHANNEL_SERVICE_LOGIN
	if (Login_IsInChannelService(szLogin))
	{
		sys_log(0, "ChannelServiceLogin [%s]", szLogin);

		DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
				"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
				"UNIX_TIMESTAMP(silver_expire),"
				"UNIX_TIMESTAMP(gold_expire),"
				"UNIX_TIMESTAMP(safebox_expire),"
				"UNIX_TIMESTAMP(autoloot_expire),"
				"UNIX_TIMESTAMP(fish_mind_expire),"
				"UNIX_TIMESTAMP(marriage_fast_expire),"
				"UNIX_TIMESTAMP(money_drop_rate_expire),"
				"UNIX_TIMESTAMP(create_time)"
				" FROM account WHERE login='%s'",

				szPasswd, szLogin);
	}
	// END_OF_CHANNEL_SERVICE_LOGIN
	else
	{
		// @fixme138 1. PASSWORD('%s') -> %s 2. szPasswd wrapped inside mysql_hash_password(%s).c_str()
		DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
				"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
				"UNIX_TIMESTAMP(silver_expire),"
				"UNIX_TIMESTAMP(gold_expire),"
				"UNIX_TIMESTAMP(safebox_expire),"
				"UNIX_TIMESTAMP(autoloot_expire),"
				"UNIX_TIMESTAMP(fish_mind_expire),"
				"UNIX_TIMESTAMP(marriage_fast_expire),"
				"UNIX_TIMESTAMP(money_drop_rate_expire),"
				"UNIX_TIMESTAMP(create_time)"
				" FROM account WHERE login='%s'",
				mysql_hash_password(szPasswd).c_str(), szLogin);
	}
schimba cu asta.
daca nu ai securitycode il scoti.
Pentru acest mesaj, Petrinel for the post:
SyopaRPG
Imagine
Afișează semnătura
Avatar utilizator
SyopaRPG
Nou Venit

Nou Venit
Mesaje: 49
Membru din: 21 Dec 2020, 22:43
Aprecieri: 51  
Mulţumiri: 1  
Medalii

Petrinel scrie: ↑10 Ian 2021, 22:35
	// CHANNEL_SERVICE_LOGIN
	if (Login_IsInChannelService(szLogin))
	{
		sys_log(0, "ChannelServiceLogin [%s]", szLogin);

		DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
				"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
				"UNIX_TIMESTAMP(silver_expire),"
				"UNIX_TIMESTAMP(gold_expire),"
				"UNIX_TIMESTAMP(safebox_expire),"
				"UNIX_TIMESTAMP(autoloot_expire),"
				"UNIX_TIMESTAMP(fish_mind_expire),"
				"UNIX_TIMESTAMP(marriage_fast_expire),"
				"UNIX_TIMESTAMP(money_drop_rate_expire),"
				"UNIX_TIMESTAMP(create_time)"
				" FROM account WHERE login='%s'",

				szPasswd, szLogin);
	}
	// END_OF_CHANNEL_SERVICE_LOGIN
	else
	{
		// @fixme138 1. PASSWORD('%s') -> %s 2. szPasswd wrapped inside mysql_hash_password(%s).c_str()
		DBManager::instance().ReturnQuery(QID_AUTH_LOGIN, dwKey, p,
				"SELECT '%s',password,securitycode,social_id,id,status,availDt - NOW() > 0,"
				"UNIX_TIMESTAMP(silver_expire),"
				"UNIX_TIMESTAMP(gold_expire),"
				"UNIX_TIMESTAMP(safebox_expire),"
				"UNIX_TIMESTAMP(autoloot_expire),"
				"UNIX_TIMESTAMP(fish_mind_expire),"
				"UNIX_TIMESTAMP(marriage_fast_expire),"
				"UNIX_TIMESTAMP(money_drop_rate_expire),"
				"UNIX_TIMESTAMP(create_time)"
				" FROM account WHERE login='%s'",
				mysql_hash_password(szPasswd).c_str(), szLogin);
	}
schimba cu asta.
daca nu ai securitycode il scoti.
Pai de ce sa schimb? Eu nu vreau sa modific sursa, vreau doar sa aflu cum trebuie sa criptez parola ca sa pot sa imi bag un cont in navicat sa pot intra pe server...
Închis
Răspunsuri
4
Vizualizări
438
Răspunsuri
3
Vizualizări
331
Răspunsuri
7
Vizualizări
540
Răspunsuri
9
Vizualizări
22367

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 70 vizitatori