|
Новичок
Регистрация: 08.07.2007
Сообщений: 4
Провел на форуме: 28544
Репутация:
0
|
|
да нет... тут идет вызов только стандартных функций МД5 крипта, все остальное - нужная последовательность действий...
вот делфовый код из исходников крысы...
но не понятно все-же...
например что такое
MD5Digest : TMD5Digest;
MD5Context : TMD5Context;
и откуда оно берется
procedure TicqSession.parseAuthKey(snac:string);
var
I : Integer;
MD5Digest : TMD5Digest;
MD5Context : TMD5Context;
key : String;
sendKey : String;
begin
i := 1;
key := getWNTS(snac, i);
FillChar(MD5Digest, sizeOf(TMD5Digest), 0);
// for I := 0 to 15 do
// Byte(MD5Digest[I]) := 0;
MD5Init(MD5Context);
MD5UpdateBuffer(MD5Context, PChar(key), length(key));
MD5UpdateBuffer(MD5Context, PChar(pwd), length(pwd));
MD5UpdateBuffer(MD5Context, PChar(AIM_MD5_STRING), length(AIM_MD5_STRING));
MD5Final(MD5Digest, MD5Context);
sendKey := '';
for I := 0 to 15 do
sendKey := sendKey + MD5Digest[I];
// sendFLAP( LOGIN_CHANNEL, #0#0#0#1
if saveMD5Pwd then
key := TLV($4C, '')
else
key := '';
sendSNAC( $17, $02,
TLV(1, myinfo.uinAsStr)
+TLV($25, sendKey)
// By Rapid D
+TLV(3, 'ICQ Inc. - Product of ICQ (TM).2003b.5.56.1.3916.85')
+TLV($16, word($010A))
+TLV($17, word($0002))
+TLV($18, word($0038))
+TLV($19, word($0001))
+TLV($1A, word($0f4c))
+TLV($14, integer($55))
+TLV($E,'us')
+TLV($F,'en')
+key
);
notifyListeners(IE_loggin);
end;
может кто-то знает алгоритм подготовки icq хеша?
автор программы icq.message.logger утверждает что это md5 (соль + пароль + константа), но мне кажется он сложнее... судя по этим функциям на Си и Делфи
|