Протокол ICQ.
Личные заметки по протоколу ICQv7.
От 2 ноября 2001г.
Некоторые примечания:
* unk = неизвестно
* связь осуществляется по протоколу FLAP (можете найти информацию об этом в
документации по протоколу AIM)
* если указано, связь осуществляется по протоколу SNAC, через FLAP (AIM
протоколы тоже)
* для ввода пароля используются следующие байты: F3,26,81,C4,39,86,DB,92,71,A3,B9,E6,53,7 A,95,7 C
* LE обозначает порядок чисел в конце строки
* BE обозначает порядок чисел в конце строки
* BYTE - это 8-разрядное целое число
* WORD - это 2-байтовое целое число (BE)
* DWORD - это 4-байтовое целое число (BE)
* TIME_T - это DWORD, формат времени unix
* IPADDR - это четверка байтов A,B,C,D, где пунктиром обозначено A.B.C.D
* COLOR - это четверка байтов: R,G,B,N, где N не используется (вам следует
установите его равным нулю)
* СТРОКА - это последовательность символов (ascii) без указания начальной длины
или нулевого значения в конце.
* UIN - это 4-байтовое целое число (LE), которое кодирует номер uin.
* B-UIN - это строка, которой предшествует байт: байт указывает длину
строка и значение string сообщают номер uin
* UINLIST - это необработанная последовательность B-UIN
* NTS - строка с нулевым завершением
* LNTS - это слово (LE), предшествующее NTS: слово указывает длину
строки NTS (включая нулевой символ)
* DLS - это строка (LE), предшествующая dword
* подтип сообщения - это БАЙТ:
КОД |
ФОРМАТ |
ЗНАЧЕНИЕ |
01 |
обычный |
сообщение |
02 |
? |
чат |
03 |
? |
файл |
04 |
url-сообщение |
url |
06 |
сообщение от пользователя |
авторизация
запрос |
07 |
обычный |
отказано в авторизации |
08 |
пусто |
авторизация
дана |
0C |
пользователь-сообщение |
пользователь
добавил вас |
0E |
электронная почта-сообщение |
Электронная почта Express |
13 |
контакты-сообщение |
контакты |
1A |
пусто |
контакты-req |
E? |
обычный |
автоматический запрос сообщения
(E8 удален, E9 занят, EA na, EB dnd, EC f4c) |
*
msg-флаги - это байт:
00 = обычный
80 = множественный
03 = специальный (используется для автоматического запроса сообщений)
* код ошибки - это СЛОВО:
00 00 ошибки нет
00 01 неверный uin
00 05 неверный пароль
00 18 превышена скорость
00 1D (вероятно) вы пытаетесь восстановить соединение слишком быстро, подождите секунду
и повторите попытку
* пользователь-это имя пользователя в сообщении: ник, имя, фамилия, адрес электронной почты, номер телефона.
сообщение
* url-сообщение - это LNTS: сообщение содержит url
* контакты-это SMS-сообщение: контакты # FE, ваш ник, ваш личный ник, ваш личный ник, ваш личный ник...
* email-сообщение - это LNTS: имя, адрес электронной почты, текст без символов
* смещение по Гринвичу - это байт со знаком, который указывает на отрицательные полчаса по Гринвичу
0 (например, -3 = GMT+1:30)
*
коды статуса - это двойное слово: флаги СЛОВ + статус СЛОВ
Флаги СЛОВ
Прямое подключение 2000 только для списка контактов
1000 прямое подключение по запросу
0002 показать ip? (licq использует его в невидимом состоянии)
0001 веб-программное обеспечение
Статус СЛОВА (иногда я видел, что бит 3 установлен, или бит 9 находится в невидимом состоянии)
0000 онлайн
0020 free4chat
0001 в гостях
0004 нет в живых
0005 нет в живых
0010 занят
0011 занято
0013 день выхода
0100 невидимо
*
коды статуса приема
обычно принимается 0 (используйте этот ответ для автоматического запроса сообщения)
9 не принято, занято
A не принято, нет в наличии
4 принято, но в отъезде
E принято, но нет
C внесено в список контактов (не мигает в трее)
* приоритет
коды
00 00 = файл-ответ
01 00 = обычный
02 00 = срочная отправка
04 00 = отправить в список контактов (не мигать в трее)
* информация о прямом подключении
IPADDR - мой ip-адрес, часто второй сетевой ip-адрес, оставьте 0, если нет прямого подключения
Порт DWORD, на котором прослушиваются соединения, оставьте 0, если нет прямого подключения
БАЙТ 04
Версия протокола WORD (licq 0006, icq2000 0007, icq2001 0008)
4 БАЙТА unk
8 БАЙТ 00 00 00 50 00 00 00 00 03
ВРЕМЯ не указано, обычно это недавнее время
ВРЕМЯ не истекло, обычно совсем недавно
ВРЕМЯ не истекло, обычно совсем недавно
СЛОВО 0
* wp-short-request-info
Первый запрос
Последний запрос
Ник пользователя LNTS
* wp-полная информация о запросе
wp-краткая информация о запросе
Адрес электронной почты пользователя LNTS
Минимальный возраст для записи в WORD (ФАЙЛ) - 0, если он отключен
Максимальный возраст, указанный в слове (ФАЙЛЕ), равен 0, если оно отключено.
Пол в байтах (0= отключено, другое=смотрите таблицу).
Язык в байтах (0=отключено, другое=смотрите таблицу).
Город, в котором оно находится.
Штат, в котором оно находится.
СЛОВО страна (0=отключено, другое=смотрите таблицу)
Название компании LNTS
Отдел LNTS
Должность в LNTS
Поле рода занятий в байтах (0=отключено)
Категория прошедшей информации о СЛОВЕ (0=отключено, другое=смотрите таблицу)
Список значений
Категория интересов СЛОВА (0=отключено, другое=смотрите таблицу)
Конкретные интересы слова (через запятую)
Принадлежность к WORD/организации (0=отключено, другое=смотрите таблицу)
Список литературы ниже
Категория домашней страницы WORD
Список литературы ниже
Только БАЙТЫ-онлайн-пользователи, (0=выключено, 1=включено)
* wp-информация о результатах
Длина слова в этой записи (вы не можете полагаться на поля, если запись короче)
UIN в его uin
ВАШ ник
Имя пользователя
Фамилия пользователя
Адрес электронной почты ПОЛЬЗОВАТЕЛЯ
БАЙТ авторизации (0=требуется, 1=всегда)
Статус БАЙТА (00 в автономном режиме, 01 в режиме онлайн, 02 не поддерживается в Сети)
БАЙТ неизвестен, обычно 0
Пол БАЙТА
Возраст БАЙТА
9 БАЙТ unk, 0
* главная страница-информация
Ник LNTS
Первый номер
Последний номер
Адрес электронной почты
Город
Штат
Телефон
факс
Улица LNTS
Номер сотовой связи LNTS (если строка, доступная для отправки SMS, содержит окончание "SMS")
Почтовый индекс LNTS
СЛОВО "страна" (LE)
БАЙТ gmt
Неизвестный БАЙТ, обычно 0
* информация о работе
Указанный город
Указанный штат
Кодовое слово 0
Указанная улица
Указанный почтовый индекс
СЛОВО страна (LE)
Название компании LNTS
Компания LNTS-отдел
Компания LNTS-должность
СЛОВО 0 (LE?)
Компания LNTS-веб
-страница
* домашняя страница-дополнительная информация
Возраст байта
БАЙТ 0
Пол БАЙТА
Домашняя страница LNTS
Год рождения слова (LE)
Месяц рождения БАЙТА
День рождения БАЙТА
БАЙТ lang1
БАЙТ lang2
БАЙТ lang3
* информация о работе
Город, в котором вы работаете
Штат, в котором вы работаете
Фамилия, имя, отчество
Фамилия, имя, отчество
Адрес, на котором вы работаете
Почтовый индекс LNTS
СЛОВО unk, 2700
Название компании LNTS
LNTS unk
Должность LNTS
СЛОВО unk, 0500
LNTS unk
* дополнительная информация по электронной почте
Количество БАЙТ (адресов)
для количества раз
БАЙТ неизвестен, обычно 00
LNTS-адрес
* личные интересы-в
КОЛИЧЕСТВО категорий, на которые нужно подписаться
для # времени
Категория СЛОВ (6800 => Компьютеры, 7100 => Музыка)
Специфичные для LNTS
* прошлая справочная информация
012F01 университет
Специфика LNTS
>>