• XSS.stack #1 – первый литературный журнал от юзеров форума

Hors

xHorSx

floppy-диск
Пользователь
Регистрация
29.10.2010
Сообщения
2
Реакции
0
Выкладываю свой класс для работы с ICQ (протокол OSCAR). Может быть кому-нибудь пригодится.

Класс написан с использованием чистого Windows API и поэтому программы на его основе имеют очень небольшой размер.

Функционал класса небольшой:

* Логин к серверу ICQ
* Смена статуса
* Отправка сообщений
* Приём сообщений

Но для решения простых задач, например написания ботов, он вполне подойдет. С его помощью к примеру была написана программа скрытого администрирования с управлением через ICQ.

Как использовать класс.

Объявить класс SICQ, а затем методом SetWindowsHandle() установить дескриптор окна, которое будет получать сообщения. Формат сообщений описан подробно в документации: http://hors.googlecode.com/files/Documentation.pdf
Обработчики этих сообщений необходимо реализовать самому. Для программистов имевших дело с чистым WinAPI и С/C++/assembler это не составит особого труда.

Важно: класс использует Windows Socket функции, поэтому перед использованием класса в программе нужно загрузить WinSocket Library:


PHP:
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) 
{
          printf("WSAStartup failed with error: %d\n", err);
              return 1;
}
а по окончанию работы её выгрузить

PHP:
WSACleanup();

Или же использовать _LoadWS, _UnloadWS из Net.h/Net.cpp

Пример использования класса: http://hors.googlecode.com/files/SimpleClient.zip

Отладка.

Если скомпилировать приложение на основе этого класса в отладочной конфигурации(DEBUG), то приложение во время своего выполнения будет слать отладчику отладочные сообщения. Например количество отосланных/принятых байт, типы пакетов, содержимое пакетов.

Например:

Close Socket
BOS Server connection
Create Socket
Connect
Server IP: 64.12.25.162
Server port: 5190
Recv 6(6) bytes
Recv 4(4) bytes
----------[recv]---------------
Packet Size 10(A) bytes
0000|2A01F20600040000
0008|0001
-------------------------------
It's Hello Packet
Create Cookies Packet
Send 270(10E) bytes
Можно для этого также использовать утилиту DbgView. http://technet.microsoft.com/en-us/s.../bb896647.aspx

Лицензия.

Класс можно свободно использовать в коммерческих или некоммерческих целях, с открытым исходным кодом или нет. Вы используете этот класс и программы написанные с его помощью на свой страх и риск, автор не несет никакой ответственности за возможные последствия или отсутствие оных.

Контакт.

Если есть вопросы или предложения по улучшению кода, то horsicq (at) gmail. com


Страница проекта: http://code.google.com/p/hors/
Документация: http://hors.googlecode.com/files/Documentation.pdf
Пример работы: http://hors.googlecode.com/files/SimpleClient.zip
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх