Не богуугодным делом ты занялся... неправославно это тырить своими троянами логиныпароли православных ботоводов.
Но если уж хочется, то...
Код:
procedure RequestAuthLogin(login,password: string);
var
data: array[0..175] of byte;
crypt_text: string;
begin
FillChar(data,Length(data),0);
crypt_text:=RSAEncrypt(login,password,RepairKey(RSA_key));
Move(crypt_text[1],data[1],128);
Move(GGAuthResponse,data[129],4);
data[149]:=8;
AddCheckSumm(Data,160);
SendPkt(Data,176);
end;
RSA_key получается из:
Код:
procedure LS_init(buff: array of byte; Len: integer);
begin
if Len<8 then exit;
Move(buff[3],SessionID,4);
if Len>=155 then begin
SetLength(RSA_key,128);
Move(buff[11],RSA_key[1],128);
ToLog('RSA Key changed');
end;
if Len>=171 then begin
SetLength(bf_key,16);
Move(buff[155],bf_key[1],16);
bf.Init(bf_key);
ToLog('BlowFish key changed');
end;
//sending AuthGG packet
AuthGameGuard;
end;
Следовательно, надо
1. нарыть
RSADecrypt (такой нет
т.к. шифрование необратимое , без закрытого ключа не работает)
2. перехватить
RSAkey из первого пакета от логин сервера в ответ на
Connect сокета, т.к. называемого
LS_Init
3. Перехватить 128 байт пакета
RequestAuthLogin, засунуть
crypted_text и
RSAKey в несуществующую функцию
RSADecrypt, b ждать несколько миллонов лет....
Ну и пруф в пределах форума :
ТЫК