ICQ - форум. Всё про ICQ.  

Вернуться   ICQ - форум. Всё про ICQ. > Мастерская > Программирование > Статьи

Результаты опроса: Продолжать ли мне писать статьи для асечки?
Да =) 27 96.43%
Нет =( 1 3.57%
Голосовавшие: 28. Вы ещё не голосовали в этом опросе

 
 
Опции темы Оценить тему
Старый 02.07.2009, 23:40   #1
Почти участник
 
Регистрация: 02.02.2008
Сообщений: 1,843

Репутация: 5599
По умолчанию Пишем бот для IPDbrute

Наверняка ты знаешь такую программу, как Storm 2008 (автор q1p), и наверняка ты задумывался над тем, как же она работает. Сегодня я расскажу как написать бот для брута. В этой статье не будет такого лирического отступления, как в предыдущей, скажу лишь, что писать бота мы будем для IPDbrute 2.

Основных функций у нашего бота будет 3:

• Отправка статистики по команде /stat
• Отправка гудов по команде /good
• Нажатие на кнопку CleanUp по команде /clean

Каким образом мы будем все это делать? Нам поможет великий и могучий WinAPI!
Рассмотрим очередность необходимых действий (для первой функции):

• Получаем хэндл главного окна брута
• Получаем хэндлы нужного нам поля статистики
• Используя эти хэндлы, получаем текст из этого поля
Осуществить наши наполеоновские планы нам помогут следующие функции:


PHP код:
hWnd FindWindow // с помощью этой функции ищем окно
(
LPCTSTR lpszClass// указатель имени класса
LPCTSTR lpszWindow // указатель имени окна
); 

PHP код:
HWND FindWindowEx // а с помощью этой – всё остальное
(
hWnd hwndParent// дескриптор родительского окна
hWnd hwndChildAfter// дескриптор дочернего окна
LPCTSTR lpszClass// указатель имени класса
LPCTSTR lpszWindow // указатель имени окна
); 
PHP код:
Long SendMessage //а эта нам поможет отправлять окну сообщения
(
hWnd Wnd,
WORD wParam,
Long lParam
); 

Имя окна – с этим все понятно. Но вот откуда нам знать класс? Все просто – нам поможет утилитка под названием Winspector. Объяснять, как ей пользоваться я не буду, сам догадаешься (там все интуитивно понятно) .


PHP код:
function TMainForm.GetStats(): String;
var
  
tmpH    THandle;
  
Buf     String;
  
BufSize Integer;
begin
  Result  
:=  '#ERROR';
  
bH      :=  0// обнуляем хэндл
  
bH      :=  FindWindow('#32770''IPDBrute2/udc2 Pro SE (C) 1980-2004 VKE'); // ищем главное окно
    
if bH 0 then //если не нашли – выходим из процедуры
      
Exit;
  
tmpH    :=  0
  
tmpH    :=  FindWindowEx(bH0'Edit'nil); // ищем Edit со статистикой
 
  
BufSize   := SendMessage(tmpHWM_GETTEXTLENGTH00); // узнаем длину текста
  
SetLength(BufBufSize); // расширяем строку
  
SendMessage(tmpHWM_GETTEXTBufSize+1LParam(@Buf[1])); //получаем текст
  
Result  :=  Buf// возвращаем текст
end
Так, с получением статистики разобрались. Теперь надо научиться делать клинап.

PHP код:
procedure TMainForm.CleanUp();
var
  
tmpH  :  THandle;
begin
  
if bH 1 then // если хэндл главного окна < 1 то выходим
    
Exit;
  
tmpH  :=  0;
  
FindWindowEx(bH0'Button''Cleanup'); // ищем кнопку
  
if tmpH 0 then // не нашли? Выходим =(
    
Exit;
  
SendMessage(tmpHWM_LBUTTONDOWN00);  //нажимаем левую кнопку
  
SendMessage(tmpHWM_LBUTTONUP00); // и не забываем отпустить ее =)
end
Ну и самое простое – получение гудов

PHP код:
function TMainForm.GetGood(): String;
var
  
SL  :  TStringList// стринглист
begin
  SL  
:=  TStringList.Create(); //создаем
  
SL.LoadFromFile('good.txt'); //загружаем 
  
Result  :=  SL.Text
  
SL.Free(); //освобождаем
end
Все, основные функции готовы. Осталось только отвечать хозяину =) Для этого нам понадобится TICQClient. Создавать его мы будем во время создания формы:

PHP код:
procedure TMainForm.FormCreate(SenderTObject);
begin
  Master  
:=  '210091'// задаем номер хозяина
  
ICQ     :=  TICQClient.Create(nil); //создаем компонент
  
ICQ.OnMessageRecv :=  MessgRecv// привязываем к событию свой обработчик
  
ICQ.UIN       :=  12111// задаем номер бота
  
ICQ.Password  :=  'HackMe'// пароль
  
ICQ.Login(); //логинимся
end
Обработка полученных сообщений:

PHP код:
procedure TMainForm.MessgRecv(SenderTObjectMsgUINString);
begin
  
if UIN <> Master then // если нам написал не хозяин - игнорируем
    
Exit;
  if 
Pos('/stats'Msg) > 0 then //насяльнике просит статистику?
    
ICQ.SendMessage(MasterGetStats()) // тааа, насяяльнике
  
else
  if 
Pos('/clean'Msg) > 0 then // не, не статистику?? Клинапама насяльнике хочет?
  
begin
    CleanUp
(); //вешельме
    
ICQ.SendMessage(Master'CleanUp done!'); // тааа, насяяяльнике
  
end else
  if 
Pos('/good'Msg) > 0 then //Засем ругаешься? Гуууды?
    
ICQ.SendMessage(MasterGetGood()) // Тааааа!
  
else
    
ICQ.SendMessage(Master'Unknown command!'); // Насяльнике гамно, гамно, гамно….
end
Ну вот собственно и все. Эта статья получилась гораздо короче предыдущей, но, я надеюсь, понравится тебе не меньше ;) Полный код ждет тебя в аттаче, вместе с тремя скриншотами.
Статья писалась эксклюзивно для асечки, за 2,5 часа «в нетрезвом состоянии под музыку в стиле ро… транс и рэп» © WebKill =)

Огромное спасибо следующим людям:
q1p
metal
Ostway

Amper_dlph
(Вроде так его на асечке звать )
Miracle
Миниатюры
Нажмите на изображение для увеличения
Название: Winspector - 1.JPG
Просмотров: 193
Размер:	186.9 Кб
ID:	12762   Нажмите на изображение для увеличения
Название: Winspector - 2.JPG
Просмотров: 178
Размер:	185.3 Кб
ID:	12763   Нажмите на изображение для увеличения
Название: Winspector - 3.JPG
Просмотров: 180
Размер:	192.2 Кб
ID:	12764  
Вложения
Тип файла: rar bfb.rar (6.1 Кб, 157 просмотров)

Последний раз редактировалось RankoR; 02.07.2009 в 23:57.
RankoR вне форума  
Старый 02.07.2009, 23:44   #2
Участник
 
Аватар для SPYDER
 
Регистрация: 23.07.2006
Сообщений: 1,758

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

veyron 6 - три с половиной тысячи строк
7ой, который не вышел, застопорился на шести тысячах, так и осталось
конечно, код простой и для новичков - показательный, для серьезного проекта не годится
__________________
Приобрету 5 до 150$ включительно.
Красивый номер по красивой цене для себя любимого можно купить здесь.
6543-10 [inv] = 2500 рублей
Голоса Вконтакте
SPYDER вне форума  
Старый 02.07.2009, 23:47   #3
Почти участник
 
Регистрация: 02.02.2008
Сообщений: 1,843

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

SPYDER, это же пример )) кому надо - допишет )
RankoR вне форума  
 

Опции темы
Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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


Часовой пояс GMT +3, время: 17:03.


Перевод: zCarot
Форум Асечников © Asechka.RU

Новости Сочи