aka_kludge | Дата: Четверг, 29.10.2009, 20:14 | Сообщение # 1 |
Admin
Группа: Администраторы
Сообщений: 1058
Награды: 2
Репутация: 25
Статус: Offline
| [+] Отправляет SMS по базе номеров [+] Поддержка proxy [+] Поддержка antigate.com [+] Log – в реальном времени [+] “Рандомизация” сообщений из базы
|
|
| |
aka_kludge | Дата: Четверг, 29.10.2009, 20:14 | Сообщение # 2 |
Admin
Группа: Администраторы
Сообщений: 1058
Награды: 2
Репутация: 25
Статус: Offline
| Сообщения Ваши сообщения нужно сохранять в файл message.txt (1 строка = 1 сообщение), чем их больше, тем лучше, но не забывайте об ограничении сообщения (70 символов кирилицой или 160 символов транслитом) Номера телефонов Телефоны сохраняйте в файле phone.txt в формате xxxyyyyyy (х - префикс, у – номер), не нужно писать 8 или +7 Настройки Настройки скрипта производятся в файле index.php $_SESSION['phone'] = 'phone.txt'; // База телефонов $_SESSION['message'] = 'message.txt'; // Сообщения (1 строка - 1 сообщение) $_SESSION['proxy'] = 'proxy.txt'; // Прокси $_SESSION['ac_key'] = ''; // Ключ antigate.com
|
|
| |
aka_kludge | Дата: Четверг, 29.10.2009, 20:17 | Сообщение # 3 |
Admin
Группа: Администраторы
Сообщений: 1058
Награды: 2
Репутация: 25
Статус: Offline
| index.php Code
<?php @set_time_limit(0); session_start(); //-----------------// $_SESSION['phone'] = 'phone.txt'; // База телефонов $_SESSION['message'] = 'message.txt'; // Сообщения (1 строка - 1 сообщение) $_SESSION['proxy'] = 'proxy.txt'; // Прокси $_SESSION['ac_key'] = ''; // Ключ antigate.com //-----------------// if (!file_exists("log.html")) { $fh = fopen("log.html", "w+"); $success - fwrite($fh, '<html><head><meta http-equiv="Refresh" content="1; URL=log.html"></head><body><font color="#FFA500"><b>Автор программы не несёт ответственности за её использование</b></font><br></body></html>'); fclose($fh); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html"> <title>Рассылка SMS | geforse.name</title> <link rel="shortcut icon" href="http://www.beeline.ru/favicon.ico" type="ico"> <link rel="stylesheet" type="text/css" href="http://www.beeline.ru/css.wbh?id=676e78b8-78ff-40e4-a48d-97fc303e7699&name=default" media="all"> </head><body><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%"> <tbody><tr> <td align="center" valign="top"> <table border="0" cellpadding="0" cellspacing="0" width="995"> <tbody><tr> <td width="217"><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="35" width="217"></td> <td width="170"><a href="" class="top"> SMS рассылка </a></td> <td width="220"></td> <td width="78"></td> </tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" width="981"> <tbody><tr> <td width="210"><a href="http://www.beeline.ru/"><img src="http://www.beeline.ru/media/jdesign/pic_logo.gif" alt="Билайн - живи на яркой стороне" border="0" height="100" width="210"></a></td> </tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" width="981"> <tbody><tr> <td valign="top" width="190"><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="50" width="190"><br> <?php if (is_file($_SESSION['phone'])) { echo '<strong>'.$_SESSION['phone'].' <font color="#32CD32">доступен ('.count(file($_SESSION['phone'])).')</font></strong><br>'; } else { echo '<strong>'.$_SESSION['phone'].' <font color="#FF0000">не доступен</font></strong><br>'; } if (is_file($_SESSION['message'])) { echo '<strong>'.$_SESSION['message'].' <font color="#32CD32">доступен ('.count(file($_SESSION['message'])).')</font></strong><br>'; } else { echo '<strong>'.$_SESSION['message'].' <font color="#FF0000">не доступен</font></strong><br>'; } if (is_file($_SESSION['proxy'])) { echo '<strong>'.$_SESSION['proxy'].' <font color="#32CD32">доступен ('.count(file($_SESSION['proxy'])).')</font></strong><br>'; } else { echo '<strong>'.$_SESSION['proxy'].' <font color="#FF0000">не доступен</font></strong><br>'; } echo '<strong>Баланс: <font color="#32CD32">'.file_get_contents('http://antigate.com/res.php?key='.$_SESSION['ac_key'].'&action=getbalance').'</font></strong>'; ?> </td> <td width="20"><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="1" width="20"><br></td> <td valign="top" width="576"> <div class="page-header">Отправить SMS</div><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="20" width="1"><br><div class="text"></div> <table border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td class="center"> <table style="width: 570px;" border="0" cellpadding="0" cellspacing="0"> <form action="http://www.beeline.ru/sms/index.wbp" method="POST" name="sendsms" id="sendsms" onsubmit="preparemessage();"></form><input name="send" value="" type="hidden"><input name="smstext" value="" type="hidden"><tbody><tr> </tr> <tr> <td colspan="3"> <table style="width: 570px;" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td align="left" valign="top"></td> <td align="left" valign="top"></td> <td><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="1" width="40"></td> <td colspan="2" valign="top" width="250"><img src="http://www.beeline.ru/media/jdesign/blank.gif" alt="" height="1" width="250"><br></td> </tr> <tr> <td></td> </tr> </tbody></table> </td> </tr> <tr> <td colspan="3"> <table style="width: 570px;" border="0" cellpadding="0" cellspacing="0"> </table><iframe src="log.html" width="500" frameborder="0"></iframe><br></td> </tr> <tr> </tr> <tr> <td colspan="3" nowrap="nowrap" valign="top"> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </td> <td width="15"><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="1" width="15"><br></td> </tr> </tbody></table> <br><br><br><iframe src="core.php" frameborder="0" width="50%" height="200"></iframe> <img src="http://www.beeline.ru/media/jdesign/blank.gif" height="90" width="1"><br><table border="0" cellpadding="0" cellspacing="0" width="981"> <tbody><tr> </tr> </tbody></table><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="38" width="1"><br><table border="0" cellpadding="0" cellspacing="0" width="981"> <tbody><tr> </tr> </tbody></table><img src="http://www.beeline.ru/media/jdesign/blank.gif" height="48" width="1"><br><table border="0" cellpadding="0" cellspacing="0" width="981"> <tbody><tr> <td align="right" width="214"><img src="http://www.beeline.ru/media/jdesign/pic_vl.gif" height="10" hspace="15" width="1"><a href="http://geforse.name" alt="блог не хакера" target="_blank">geforse.name</a></td> </tr> </tbody></table><br><br><br><br></td> </tr> </tbody></table> <!--geforse.name--> </body></html>
|
|
| |
aka_kludge | Дата: Четверг, 29.10.2009, 20:19 | Сообщение # 4 |
Admin
Группа: Администраторы
Сообщений: 1058
Награды: 2
Репутация: 25
Статус: Offline
| core.php Code <?php @set_time_limit(0); session_start(); function post($url,$post,$refer,$proxy) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook"); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook"); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); return $result; } function logs($text) { file_put_contents("log.html","<html><head><meta http-equiv=\"Refresh\" content=\"1; URL=log.html\"></head>".$text.file_get_contents("log.html")); } /* Функция для распознавания капчи */ function recognize($filename, $apikey, $is_verbose = true, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 0, $is_numeric = 1, $min_len = 0, $max_len = 0) { if (!file_exists($filename)) { if ($is_verbose) echo "file $filename not found\n"; return false; } $postdata = array( 'method' => 'post', 'key' => $apikey, 'file' => '@'.$filename, //полный путь к файлу 'phrase' => $is_phrase, 'regsense' => $is_regsense, 'numeric' => $is_numeric, 'min_len' => $min_len, 'max_len' => $max_len, ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://antigate.com/in.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); $result = curl_exec($ch); if (curl_errno($ch)) { if ($is_verbose) echo "CURL returned error: ".curl_error($ch)."\n"; return false; } curl_close($ch); if (strpos($result, "ERROR")!==false) { if ($is_verbose) echo "server returned error: $result\n"; return false; } else { $ex = explode("|", $result); $captcha_id = $ex[1]; if ($is_verbose) echo "captcha sent, got captcha ID $captcha_id\n"; $waittime = 0; if ($is_verbose) echo "waiting for $rtimeout seconds\n"; sleep($rtimeout); while(true) { $result = file_get_contents('http://antigate.com/res.php?key='.$apikey.'&action=get&id='.$captcha_id); if (strpos($result, 'ERROR')!==false) { if ($is_verbose) echo "server returned error: $result\n"; return false; } if ($result=="CAPCHA_NOT_READY") { if ($is_verbose) echo "captcha is not ready yet\n"; $waittime += $rtimeout; if ($waittime>$mtimeout) { if ($is_verbose) echo "timelimit ($mtimeout) hit\n"; break; } if ($is_verbose) echo "waiting for $rtimeout seconds\n"; sleep($rtimeout); } else { $ex = explode('|', $result); if (trim($ex[0])=='OK') return trim($ex[1]); } } return false; } } echo ' <form name="captcha_form" action="core.php" method="POST"> <font color="#FF4500">Количество смс: <input type="text" name="ammount" value="" /><br>
<font color="#FF4500">Работать с прокси: <input type="checkbox" name="proxy_true" /><br>
<font color="#FF4500">Debug - режим: <input type="checkbox" name="debug" /><br>
<input type="submit" value="Начать"><br><br> </form>'; if($_POST['ammount']) { /* Присваиваем начальные данные */ $p = 0; $end_result = 0; $proxy_array = file($_SESSION['proxy']); $phone_array = file($_SESSION['phone']); $message_array = file($_SESSION['message']); $count_message = count($message_array); $count_phone = count($phone_array); $count_proxy = count($phone_array); logs('['.date('H:i:s').'] <font color="#32CD32">Начало работы</font><br><br>'); /* Пока не достигнем нужного количества SMS, не заканчиваем отпраку */ for ($e = 0; $e <= trim($_POST['ammount'])-1; $e++) { if($e != $count_phone) { if($_POST['proxy_true']) { while($proxy_check[1] != 'т') { if($p != $count_proxy) { /* Получаем страницу */ $result = post('http://www.beeline.ru/sms/index.wbp',null,'http://www.beeline.ru/sms/index.wbp',$proxy_array[$p]); if(preg_match('#E>О(.*?)п#i',$result,$proxy_check)) { $proxy = $proxy_array[$p]; $p++; logs('['.date('H:i:s').'] <font color="#32CD32">'.$proxy.'</font><br>'); } else { logs('['.date('H:i:s').'] <font color="#FF0000">'.$proxy_array[$p].'</font><br>'); $p++; } } else { logs('['.date('H:i:s').'] <font color="#FF0000">Закончились прокси</font><br>'); logs('['.date('H:i:s').'] <font color="#FA8072">Отправлено: <font color="#CD0000"><b>'.$end_result.'</b></font> SMS.</font><br><br>'); exit; } } $proxy_check[1] = ''; } else { $proxy = null; post ('http://www.beeline.ru/sms/index.wbp',null,'http://www.beeline.ru/sms/index.wbp',$proxy); } /* Создаём капчу */ file_put_contents('captcha.jpg',$result = post('http://www.beeline.ru/mamimg.aspx',null,'http://www.beeline.ru/sms/index.wbp',$proxy)); /* Распознаём её */ logs('['.date('H:i:s').'] <font color="#32CD32">Ждём кода капчи</font><br>'); $text=recognize(getcwd()."/captcha.jpg",$_SESSION['ac_key'],false); $prefix = substr($phone_array[$e],0,3); $to = substr($phone_array[$e],3); $message = urlencode($message_array[rand(0,$count_message)]); logs('['.date('H:i:s').'] <font color="#32CD32">Отправляем SMS</font><br>'); /* Отправляем SMS */ if($_POST['debug']) { echo $result = post('http://www.beeline.ru/sms/index.wbp','send=&smstext='.$message.'&smstoprefix='.trim($prefix).'&smsto='.trim($to).'&dirtysmstext='.$message.'&confirm_key=&confirmcode='.$text.'&x=63&y=4','http://www.beeline.ru/sms/index.wbp',$proxy); } else { $result = post('http://www.beeline.ru/sms/index.wbp','send=&smstext='.$message.'&smstoprefix='.trim($prefix).'&smsto='.trim($to).'&dirtysmstext='.$message.'&confirm_key=&confirmcode='.$text.'&x=63&y=4','http://www.beeline.ru/sms/index.wbp',$proxy); } /* Проверяем всё ли прошло успешно */ if(preg_match('#оче(.*?)е#i',$result,$sms)) { logs('['.date('H:i:s').'] <font color="#FA8072">SMS отправлено!</font><br>'); $end_result++; } else { if(preg_match('#Неве(.*?)н#i',$result,$sms)) { logs('['.date('H:i:s').'] <font color="#FF0000">Неверный код подтверждения!</font><br>'); } else { logs('['.date('H:i:s').'] <font color="#FF0000">Отправить SMS не удалось</font><br>'); } } } else { logs('['.date('H:i:s').'] <font color="#FF0000">Закончились номера телефонов</font><br>'); logs('['.date('H:i:s').'] <font color="#FA8072">Отправлено: <font color="#CD0000"><b>'.$end_result.'</b></font> SMS.</font><br><br>'); exit; } logs('['.date('H:i:s').'] <font color="#FA8072">Отправлено: <font color="#CD0000"><b>'.$end_result.'</b></font> SMS.</font><br><br>'); } } /* geforse.name */ ?>
|
|
| |