Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   ICQ протакол (https://forum.antichat.xyz/showthread.php?t=115355)

Flenov 11.04.2009 07:26

ICQ протакол
 
Всем привет!
Это опять я и опять с вопросом.

Господа подскажите пожалуйста где можно прочитать про реализацию ICQ протакола через Delphi посредствам WinSock2?

Очень интересует процес подключения и смены пароля.
Заранее спасибо.

Буду благодарен за любой материал по теме))

Tigger 11.04.2009 08:31

Пиши в AOL

slesh 11.04.2009 09:58

бери снифер CommView 5.0 он умеет расшифровывать ICQ протокол.
Запускай его и начинай коннектится к аське и потом меняй пароль.
А потом в снифере посмотришь как строятся пакеты. Главная вешь - подключение делай небезопасное! Потому что при безопасном подключении пас передается в md5
(лишний гемор при реализации). А при обычном подключении пас ксорится типа так
Код:

xor_mas:array[1..16] of byte =($F3,$26,$81,$C4,$39,$86,$DB,$92,$71,$A3,$B9,$E6,$53,$7A,$95,$7c);
function xorpass(pass:string):string;
var
 x:integer;
 s:string;
begin
 s:='';
 for x:=1 to length(pass) do s:=s+chr(xor_mas[x] xor ord(pass[x]));
 result:=s;
end;


slesh 11.04.2009 10:25

Вообще протокол довольно простой и состоит примерно из такой структуру
Theader=packed record
hz1:byte; // у меня всегда 2Ah
channel_id:word;
sequence_number:word;
data_len:word;
end;
далее кодет код 00000001 (dword) - его динна 4 байта и входит в data_len
затем идут последовательно блоки данных примерно такого формата:
TData=packed record
type:word;
len:word;
data:array [0..len-1]; // в делфе такое не сделаешь это просто показываю какой длинны данные.
end;
Через снифер там дальше поймешь какие типы за что отвечают. Коды типов действеют и для принимаемых и для посылаемых данных
0001 - логин
0002 - пароль ксореный
0005 - адрес куда нужно коннектится после авторизации
0006 - куки (чаще всего 256 байт данных)
P.S при ответе на авторизацию сервер строит чуть другой пакет

Это всё для данных для авторизации. Для общения и других вещей(типа смена пароля) там чуть по другому уже идут запросы.

eLWAux 11.04.2009 11:23

линк по теме:
http://iserverd1.khstu.ru/oscar/

..можешь еще перехватывать wireshark'ом (:
http://www.wireshark.org/docs/dfref/i/icq.html
https://forum.antichat.net/showthread.php?t=97460

Gar|k 11.04.2009 11:33

писал поверку пары юин пасс на валидность на perl
в документации по протоколу все очень хорошо описано. А вообще вооружись сниффером (я люблю ettercap - с nixов с ним еще подружился).

Если надо могу выложить исходники perl скрипта.

eLWAux 11.04.2009 11:47

вон на перле:
https://forum.antichat.ru/thread102110.html
только после изменений протокола, там надо кое-что переписать..

Gar|k 11.04.2009 11:53

Ага, а я свой уже выложил )))

http://forum.antichat.ru/thread115377.html

Flenov 12.04.2009 03:22

А ещё вот вопросик интересный.

Возможно ли по протаколу ICQ проверить пароль от номера,
но так, чтобы если на этом номере в момент проверки кто-то сидит,
то его не выкинуло?

Gar|k 12.04.2009 12:27

нет это прописано в протаколе.... вот в скайпе хоть с 4 клиентов разом под одним юзером сиди ему ваще пох ))

а чела не просто выкенет а еще вылезет ошибка
типа на ваш номер подключились с другого компутера... ваще палевно

я ваще если чето вылетает или там отрубает от сервера сразу пасс меняю )


Время: 11:23