понедельник, 25 июля 2011 г.

ICQ Module

ICQ Module
Зачем это нужно?
Если вы хотите сделать программу использующую протокол обмена мгновенными сообщениями ICQ и не хотите разбираться с тонкостями реализации данного протокола, то проект "ICQ Module" как раз то, что вам нужно!
"ICQ Module" - это подключаемая библиотека, реализующая полноценную поддержку ICQ протокола в вашей программе.

Техническое описание ICQ модуля:
  • Поддержка ICQ протокола 11 версии (используется в клиенте QIP 2010).
  • Модуль написан на языке программирования Delphi 2010.
  • Вывод данных из модуля в основную программу производится в формате XML.
  • Использование не ограниченного количества подключенных к основной программе модулей.
  • Расширяемый список команд для управления модулем.
  • Поддержка подключения через Proxy.
Примеры использования ICQ модуля:

ICQ Crash Server

ICQ Crash Server
Зачем это нужно?
Программа "ICQ Crash Server" создана для тестирования различных ICQ клиентов на устойчивость к максимальной нагрузке. Это нужно чтобы сделать вывод о качестве оптимизации кода тестируемого ICQ клиента.
"ICQ Crash Server" - это маленький локальный ICQ сервер к которому может подключаться ICQ клиент.

Принцип работы программы "ICQ Crash Server":
Запускается программа "ICQ Crash Server" и в настройках тестируемого ICQ клиента, необходимо прописать адрес локального ICQ сервера: 127.0.0.1 и порт: 5190
Затем подключить ICQ клиент в онлайн обычным способом. Потом нажать в программе "ICQ Crash Server" кнопку "Старт сообщений" и подключенный к локальному серверу клиент начнет получать большое количество входящих сообщений с большой скоростью. Многие клиенты "зависают" или выдают ошибку ещё в самом начале возрастающей на них нагрузки, а некоторые клиенты с качественной оптимизацией обработки входящего трафика продолжают работать продолжительное время.

Результаты тестов:

Jabber Crash Server

Зачем это нужно?
Программа "Jabber Crash Server" создана для тестирования различных Jabber клиентов на устойчивость к максимальной нагрузке. Это нужно чтобы сделать вывод о качестве оптимизации кода тестируемого Jabber клиента.
"Jabber Crash Server" - это маленький локальный Jabber сервер к которому может подключаться Jabber клиент.

Принцип работы программы "Jabber Crash Server":
Запускается программа "Jabber Crash Server" и в настройках тестируемого Jabber клиента, необходимо прописать адрес локального Jabber сервера: 127.0.0.1 и порт: 5222. Затем подключить Jabber клиент в онлайн обычным способом. Потом нажать в программе "Jabber Crash Server" кнопку "Старт сообщений" и подключенный к локальному серверу клиент начнет получать большое количество входящих сообщений с большой скоростью. Многие клиенты "зависают" или выдают ошибку ещё в самом начале возрастающей на них нагрузки, а некоторые клиенты с качественной оптимизацией обработки входящего трафика продолжают работать продолжительное время.

Скачать программу можно в разделе хранения файлов.

Кража пароля через "Черный вход"

Этот метод широко распространен и на данный момент является основным методом кражи паролей у пользователей компьютеров. Компьютер заражается программой - вирусом, которая сканирует файлы пользователя на наличие хранящихся в них паролей от учетных записей: Email, ICQ, Jabber и других. Затем эта вредоносная программа, используя текущее соединение с интернет, передает собранные на компьютере жертвы пароли в чужие руки.


Основные способы заражения компьютера вредоносной программой:
  • Через USB Flash накопители. Многие вирусы сейчас используют для своего распространения механизм автозапуска файлов при подключении внешнего накопителя.
  • Через интернет сайты. В сети много сайтов, которые пытаются заразить компьютеры своих посетителей различными способами.
  • Через не проверенные программы, которые сам пользователь устанавливает на свой компьютер.
Рекомендации по предотвращению вышеописанных способов попадания на ваш компьютер вредоносных программ - вирусов:
  • Создать в корне всех разделов своих жестких дисков и внешних накопителей папку с именем autorun.inf это защитит ваши носители информации от записи в корень диска одноименного файла autorun.inf, который как раз и используется для запуска вредоносных файлов на вашем компьютере в момент подключения или открытия носителя информации. Подробнее об этом способе защиты вы можете прочитать в сети. Также в сети описаны способы отключения встроенного в операционные системы механизма автозапуска файлов прописанных в файле autorun.inf.
  • Установить себе на компьютер антивирусную программу с актуальными антивирусными базами.
  • Установить себе на компьютер программу блокировки нежелательного интернет трафика.
  • Многие вирусы, которые попадают на компьютеры через интернет сайты, используют для своего проникновения и запуска технологию JavaScript и виртуальную машину Java. Также они используют систему автоматической установки плагинов в браузерах, маскируясь под плагины. Поэтому если вы не уверены в надежности сайта, который вы собираетесь посетить, рекомендую вам отключить в вашем браузере такие функции как поддержка JavaScript, плагинов и виртуальной машины Java.
  • Если вам прислали картинку или видео файл, сначала убедитесь, что это именно картинка, а не замаскированный вирус под файл с графическим изображением.
  • Не устанавливайте на свой компьютер не проверенных программ из ненадежных источников. Очень часто эти программы написаны с целью, наградить своего пользователя нежелательными для него функциями в виде кражи вашей конфиденциальной информации.

Описание структуры пакета данных ICQ протокола

Описание ICQ протокола читайте на этом сайте: http://www.imadering.com/icqprotocol

ICQ протокол относится к роду бинарных. То есть данные внутри пакета могут содержать как текстовые символы так и символы из бинарного диапазона.
Поэтому далее в описании я буду приводить отображение бинарных символов в формате HEX (то есть каждый бинарный символ будет помечаться двумя символам в шестнадцатеричном исчислении) и будет помечен специальным цветом.

Легенда цветов:
  • HEX данные красным цветом
  • Текстовые данные синим цветом
  • Комментарии зеленым цветом
  • ^ этим символом помечаются неизвестные данные
Любой пакет данных в ICQ протоколе начинается с ключа длинной 1 байт: 2a
Затем идет номер канала (всего в ICQ протоколе 5 каналов) длинной 1 байт. Например: 01
Потом следует номер пакета. Его значение всегда должно увеличиваться на +1 с каждым новым пакетом данных. Таким образом сервер проверяем количество полученных и отправленных пакетов данных для этого сеанса связи. Максимальное значение для этого счетчика от 1 до 65535 и длинна 2 байта.
Затем следует длинна передаваемых данных в этом пакете. Максимальное значение длинны данных от 1 до 65535 и длинна 2 байта.
Эти параметры присутствуют в начале каждого пакета данных передаваемых от сервера к клиенту и, наоборот, в протоколе ICQ.

Пример пакета:
2a013cb2000400000001 // Пример данных в HEX формате пакета приветствия от сервера при подключении

Разбор пакета:
2a // Ключ пакета
01 // Номер канала
3cb2 // Счетчик пакета (значение: 15538)
0004 // Длинна данных (значение: 4 байта)
00000001 // Данные передаваемые в пакете длинной 4 байта

Список расшифровки каналов пакета:
01: Установка нового соединения
02: Основной канал передачи данных после установки соединения
03: Ошибки пакетов
04: Закрытие соединения
05: Поддержка соединения