ICQ протакол

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Flenov, 11 Apr 2009.

  1. Flenov

    Flenov Member

    Joined:
    22 Nov 2008
    Messages:
    20
    Likes Received:
    17
    Reputations:
    0
    deleted
     
    #1 Flenov, 11 Apr 2009
    Last edited: 29 Jan 2015
  2. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    Пиши в AOL
     
    1 person likes this.
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    бери снифер CommView 5.0 он умеет расшифровывать ICQ протокол.
    Запускай его и начинай коннектится к аське и потом меняй пароль.
    А потом в снифере посмотришь как строятся пакеты. Главная вешь - подключение делай небезопасное! Потому что при безопасном подключении пас передается в md5
    (лишний гемор при реализации). А при обычном подключении пас ксорится типа так
    Code:
     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;
    
     
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вообще протокол довольно простой и состоит примерно из такой структуру
    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 при ответе на авторизацию сервер строит чуть другой пакет

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

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    линк по теме:
    http://iserverd1.khstu.ru/oscar/

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

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    писал поверку пары юин пасс на валидность на perl
    в документации по протоколу все очень хорошо описано. А вообще вооружись сниффером (я люблю ettercap - с nixов с ним еще подружился).

    Если надо могу выложить исходники perl скрипта.
     
    _________________________
    #6 Gar|k, 11 Apr 2009
    Last edited: 11 Apr 2009
  7. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    вон на перле:
    https://forum.antichat.ru/thread102110.html
    только после изменений протокола, там надо кое-что переписать..
     
  8. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Ага, а я свой уже выложил )))

    http://forum.antichat.ru/thread115377.html
     
    _________________________
  9. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    нет это прописано в протаколе.... вот в скайпе хоть с 4 клиентов разом под одним юзером сиди ему ваще пох ))

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

    я ваще если чето вылетает или там отрубает от сервера сразу пасс меняю )
     
    _________________________
    #9 Gar|k, 12 Apr 2009
    Last edited: 12 Apr 2009
  10. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    исследуй протокол в поиске уязвимостей)
    может тебе повезет ;)
     
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А ты попробуй подконнектится на этот порт ;)
     
  12. B@ton

    B@ton New Member

    Joined:
    18 Jul 2007
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    на форуме http://www.asechka.ru/ все уже расписано.