ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[релиз] IcqMod DLL
  #1  
Старый 28.11.2009, 01:25
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию [релиз] IcqMod DLL

IcqMod DLL


Что это?
Это небольшая DLL для работы с аськой ) которая реализует основные функции для работы с протоколом.
Основные - это коннект, дисконнект, отправка и получение сообщений, запрос авторизации и отказ авторизовать.

Заче оно нужно?
1) Очень удобный модуль для ICQ спама
2) Очень удобный модуль для ICQ флуда
3) Возможность быстрого создания простых ICQ ботов
4) Использование в любом другом софте который использует ICQ протокол

В чем особенность?
1) чистый размер DLL - 6 килобайт
2) возможность использования в любом компилируемом языке
3) простота использования
4) поддержка socks4 и socks5
5) нет нужны юзать VCL и тому подобные вещи.
6) собственный двиг (не используется TICQClient)/ собственно по размеру это видно
7) в онлайн можно выводить сколько угодно номеров (в особенности если юзать прокси) при этом тормозить ничего не будет в отличии от использования VCL компонента TICQClient

Какие функции имеются?
ICQClose - закрытие соединение
ICQConnect - коннект к серваку
ICQSendMsg - посылка сообщения
ICQSendAuth - посылка запроса на авторизацию с передачей текста
ICQAuth - авторизовать UIN или отказать в авторизации
ICQReadMsg - проверка на наличие сообщения в очереди.

Технические особенность
1) максимальное кол-во параллельно работающих коннектов - неограничено, на сколько система позволит
2) максимальный размер входящего сообщения - 240 байт. Просто большие сообщения отправляются другим способом, который не поддерживается в dll
3) поддержка приема русских сообщений
4) оправка сообщений на рус языке требует предварительного конверта текста в UTF8. Англ и так прокатывает.
5) используется только WinSock2
6) написан на Си.
7) Скомпилен в VS 2008 Pro

Дополнительно
Т.к. судя по виду, эту либу будут использовать в основном для спама или флуда или в других программах которые будут приность прибыль людям, то исходники данной DLL выкладывать не буду. Тем кому они понадобятся могу продать за определенную плату.

Пример использования в Delphi
Пример реализации в делфи простого бота который будет выводить в консоль сообщение которые посылает юзвери и их UIN's
на запрос !TIME будет отослано текущее время.

Пример лежит в архиве
TimeBot.dpr - сам бот
IcqMod.pas - вспомогательный модуль описывающий константы и прототипы
IcqMod.dll - сама dll

Пример использования в C/C++
Примера не будет, просто в файле IcqMod.h описаны константы и прототипы функций. Кому нужно разберутся.

Подробное описание функций? констант и структур
Код:
  PROXY_INFO = packed record
    ProxyType : dword; // тип прокси
    ProxyIp : dword; //  адрес прокси
    ProxyPort : word; // порт прокси
  end;
  PPROXY_INFO = ^PROXY_INFO;
Данная структура описывает инфо о прокси.
Типы прокси:
PROXY_TYPE_SOCKS_4 = 1;
PROXY_TYPE_SOCKS_5 = 2;

заполняется так примерно:
proxy.ProxyType = PROXY_TYPE_SOCKS_5;
proxy.ProxyPort = 1222;
proxy.ProxyIp = inet_addr("127.0.0.1");
--------------------------------
Код:
  ICQ_CLIENT = packed record
    status : byte;
    sequence : word;
    sock : dword;
  end;
основная структура описывающая состояние работы. Заполняется функцией ICQConnect
В ней не стоит ничего менять, просто используете для работы. Единственная переменная за состоянием которой нужно следить - status она может принимать значение:
ICQ_CLIENT_STATUS_CONNECTED = 1; - связь установлена
ICQ_CLIENT_STATUS_DISCONNECTED = 2; - нет связи с сервером
--------------------------------
function ICQConnect(var client : ICQ_CLIENT; host : PAnsichar; port : word; login : PAnsichar; pass : PAnsichar; pproxy : PPROXY_INFO) : dword; stdcall; external ICQMOD_DLL;

подключение к серверу, где
client - переменная для хранения состояния
host - имя сервака типа login.icq.com
port - порт сервера (5190)
login - UIN
pass - пароль для UINа
pproxy - указатель на структуру описывающую прокси.
Если 0 значит не юзать прокси, если указана структура прокси, то берет из неё данные для коннекта

Функция возвращает код состояния:
ICQ_CONNECT_STATUS_OK = $FFFFFFFF; // подключился удачно
ICQ_CONNECT_STATUS_RECV_ERROR = $FFFFFFFE; // ошибка чтения данных
ICQ_CONNECT_STATUS_SEND_ERROR = $FFFFFFFD;// ошибка отправки данных
ICQ_CONNECT_STATUS_CONNECT_ERROR = $FFFFFFFC;// ошибка коннекта к серваку
ICQ_CONNECT_STATUS_AUTH_ERROR = $FFFFFFFB; // не смог авторизоваться. Или пас не подходит или превышен лимит
-----------------
function ICQReadMsg(var client : ICQ_CLIENT; UIN : PAnsichar; msg : PAnsichar; var msglen : integer) : dword; stdcall; external ICQMOD_DLL;

Проверка на сообщение.
client - описание состояния
UIN - адрес буфера куда будет помещен UIN человека от которого пришло сообщение. желательно чтобы был 10 байт.
msg - адрес буфера куда будет записано сообщение.
msglen - переменная в которую будет записана длинна сообщения.

Функция возвращает:
0 - сообщения нет
1 - сообщение получено.

Данная функция извлекает данне из сокета если они есть. И если это сообщение то парсит его.
----------------
function ICQAuth(var client : ICQ_CLIENT; UIN : PAnsichar; AuthOk : dword) : dword; stdcall; external ICQMOD_DLL;


Авторизация номера.
client - описание состояния
UIN - номр человека которого нужно авторизовать
AuthOk - флаг авторизации:
0 - послать команду - в авторизации отказано
1 - авторизовать человека.
---------------------
procedure ICQClose(var client : ICQ_CLIENT); stdcall; external ICQMOD_DLL;

закрывает соединение
--------------------

function ICQSendAuth(var client : ICQ_CLIENT; UIN : PAnsichar; msg : PAnsichar) : dword; stdcall; external ICQMOD_DLL;

Отсылка запроса на авторизацию.
UIN - кому отсылается
msg - текст который будет присутствовать в запросе
---------------------
function ICQSendMsg(var client : ICQ_CLIENT; UIN : PAnsichar; msg : PAnsichar) : dword; stdcall; external ICQMOD_DLL;

Посылка сообщения
UIN - кому
msg - текст сообщения

На последок всякая инфа
Как будет работать DLL - хз. тестил на локальном компе. Сообщениями обменивался с QIP Infium на рус и англ языке. всё было норм.

При написании DLL некоторые вещи были подсмотрены в TICQClient (запросы на отсылку сообщений и работу с авторизаций) Чтение сообщений и коннект подсмотренный с CommView и php классе работы с аськой. Так что сильно прошу не пинать ))

И главное - не спамте мою аську :'(

(С) SLESH 2009
Вложения
Тип файла: rar Demo.rar (4.7 Кб, 85 просмотров)
 
Ответить с цитированием

  #2  
Старый 28.11.2009, 01:30
Аватар для Irdis
Irdis
Участник форума
Регистрация: 06.02.2006
Сообщений: 177
Провел на форуме:
1576821

Репутация: 88
Отправить сообщение для Irdis с помощью ICQ
Thumbs up

слеш крут!

Последний раз редактировалось Irdis; 28.11.2009 в 01:36..
 
Ответить с цитированием

  #3  
Старый 28.11.2009, 01:35
Аватар для antiWM
antiWM
Новичок
Регистрация: 07.09.2009
Сообщений: 18
Провел на форуме:
236617

Репутация: 0
По умолчанию

Цитата:
И главное - не спамте мою аську :'(
забили))) большой респект, спс.
 
Ответить с цитированием

  #4  
Старый 28.11.2009, 01:35
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Вообще DLL написана на Си но спокойно компилится и как СИ код и как С++ так что норм.
А на делфи в основном демки делаю потому, что когда тестирую какуюто DLL то побыстрому в дельфе это делаю.

Вот пример на Си как работать через прокси
Код:
	WSADATA ws;
	ICQ_CLIENT cl;
	char UIN[10];
	char msg[4096];
	int msglen;
	PROXY_INFO proxy;

	WSAStartup(0x202, &ws);	

	proxy.ProxyType = PROXY_TYPE_SOCKS_5;
	proxy.ProxyPort = 1222;
	proxy.ProxyIp = inet_addr("127.0.0.1");

	ICQConnect(&cl, "login.icq.com", 5190, "UIN", "PASS", &proxy);
	ICQSendMsg(&cl, "454042", "hello slesh");
	
	printf("Conn ok\n");
	ICQAuth(&cl, "454042", 1);
// матаем цикл пока есть коннект
	while (cl.status == ICQ_CLIENT_STATUS_CONNECTED)
	{
		if (ICQReadMsg(&cl, UIN, msg, &msglen)) // если есть сообщение
		{
			printf("UIN=%s\nMSG=%s\n", UIN, msg); // выведем сообщение
			ICQSendMsg(&cl, UIN, "Yes"); //  пошлем слово YES
		}
		Sleep(1); // маленькая пауза чтобы не вешать систему
	}
	
	printf("finish");
	getch();
 
Ответить с цитированием

  #5  
Старый 28.11.2009, 01:37
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

в демке работы в С++/С просто привел как юзать функции. т.е. не проверял результат выполнения их

Насчет исходников - я уже описал. Выкладывать в паблике както не охото. Потому что потом быстро они будут встроены во всякие другие проги. А так придется таскать DLL и юзать ограниченный набор функций.

Имея на руках эти исходники и исходники компонента TICQClient можно в легкую расширить возможности.

Последний раз редактировалось slesh; 28.11.2009 в 01:41..
 
Ответить с цитированием

  #6  
Старый 28.11.2009, 01:53
Аватар для Chrome~
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

slesh, крутой релиз, ты мастер! Спасибо тебе!
Количество ICQ спамеров и флудеров явно теперь увеличиться.

Цитата:
Вы должны добавить репутацию кому-то еще, прежде чем сможете снова добавить ее slesh.
 
Ответить с цитированием

  #7  
Старый 28.11.2009, 02:30
Аватар для ~Shapaev~
~Shapaev~
Новичок
Регистрация: 24.10.2009
Сообщений: 26
Провел на форуме:
306200

Репутация: 10
По умолчанию

Офигенный релиз , большой тебе респект и + конечно.
Цитата:
Количество ICQ спамеров и флудеров явно теперь увеличиться.
100%

И насчет исходников , может будешь давать людям с репутацией ? Мало ли возможно кто - то захочет расширить функционал.

Последний раз редактировалось ~Shapaev~; 28.11.2009 в 02:33..
 
Ответить с цитированием

  #8  
Старый 28.11.2009, 02:41
Аватар для ErrorNeo
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

Цитата:
Сообщение от ~Shapaev~  
И насчет исходников , может будешь давать людям с репутацией ? Мало ли возможно кто - то захочет расширить функционал.
кроме слеша у нас таких на форуме все равно нет.*

слэш крут...
 
Ответить с цитированием

  #9  
Старый 28.11.2009, 03:13
Аватар для t04
t04
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
Провел на форуме:
246020

Репутация: 105
По умолчанию

slesh откровенно сказать то мне не оч понравился релиз этой dll, просто спамеры за...колебали, ты хорошо подумал прежде чем давать код в руки публики? Может стоит убрать по крайней мере функцию запроса авторизации?

Цитата:
Сообщение от slesh  
Код:
    Sleep(1); // маленькая пауза чтобы не вешать систему
Я бы сделал 100-500 мс. зачем лишний раз прогонять цикл, с такой микро паузой.

Последний раз редактировалось t04; 28.11.2009 в 04:04..
 
Ответить с цитированием

  #10  
Старый 28.11.2009, 03:53
Аватар для 0ldbi4
0ldbi4
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме:
584699

Репутация: 69
По умолчанию

отлично, буду СИ изучать вспомню а пока + за старания! Хотя я уверен такому профессионалу это не многова стоило..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сырая загрузка DLL(скрытая) slesh Авторские статьи 16 17.03.2010 16:34
[релиз] Micro Web Server DLL slesh С/С++, C#, Delphi, .NET, Asm 10 28.11.2009 01:50
Возможности Динамических библиотек в Delphi dzumohu4 С/С++, C#, Delphi, .NET, Asm 8 12.08.2009 17:31
Inject DLL в процесс из kernel-mode slesh Авторские статьи 4 12.05.2009 02:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ