Бесплатный Авторегер Memori.ru

memori logoАвторегер для memori.ru ? Ну так вот он = )

[+] Регистрирует аккаунты на memori.ru
[+] Работа с antigate.com
[+] Автоматическая отправка отчётов о плохой капче
[+] Ручной ввод капчи
[+] Поддержка прокси
[+] Рандомный User-agent
[+] Log и progressbar в реальном времени
[+] Все настройки производятся через браузер
(не нужно лезть в файлы и редактировать их)
[+] Поддержка Ajax
(при вводе кода капчи страница не перезагружается)

Данный скрипт создавался довольно долго, т.к. можно сказать писался “фреймворк” для будущих работ. Если сравнивать данную программу с тем, что я писал раньше, то явно чувствуется прогресс (надеюсь в лучшую сторону). Добавлено очень много новых функций и возможностей, которые будут присутствовать и в разработке последующих проектов.

front memori

Капча

Программа поддерживает работу с сервисом “антикапчи”, что позволяет вам, имея оплаченный аккаунт на этом сайте, не предпринимать ни каких действий, а лишь наблюдать за процессом регистрации.

Если работники антикапчи случайно (а может и нет) ошиблись и ввели не тот код, что на картинке, то программа автоматически отправит отчёт об этом и ваши деньги не спишут (данную функцию можно отключить в настройках)

enter captcha memeori

Если же вы любитель вводить капчу самостоятельно, то и такая возможность имеется, нужно лишь активировать её в настройках

Настройки через браузер

settings memori

Раньше, для редактирования опций скрипта, приходилось подключаться к FTP и править файлы вручную для изменения настроек работы скрипта. В данном скрипте в этом нет необходимости, все настройки можно изменять через браузер (на вкладе Настройки). Значения переменных хранятся в файле config.php

Рандомный User-agent

В файле user_agent.txt хранится 907 разнообразных User-agent‘ов, при каждом обращении к серверу берётся и используется один их них. При регистрации с прокси + не рандомные логины + рандомный user_agent вы практически никак не выдаёте себя = )

Ajax

В программе используется технология Ajax. Для “юзабельности” применяются вкладки, с помощью которых можно намного увеличить свободное пространство на экране и пользователь сразу понимает, “что, где лежит” = )

Для большей наглядности, при работе программы показывается progressbar, по мере выполнения работы скрипта, он заполняется.

При вводе кода капчи вручную, страница не перезагружается, что намного удобнее при работе с программой.

Код

Файлов относительно много и выкладывать их код тут смысла нет, поэтому покажу лишь код основного файла core.php, именно он производит регистрацию аккаунтов.
Если будут вопросы/предложения по коду, буду рад выслушать

Скачать авторегер Memori.ru

<?php
include ('config.php');
@set_time_limit(0);

  function post($url,$post,$refer,$ua,$proxy)
	{
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, trim($ua));
       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 login()
     {
         $letters = 'abcdefghijklmopkqrstuvwxyz';
         for ($p = 0; $p < 7; $p++)
           {
             $login .= $letters{rand(0, strlen($letters) - 1)};
           }
         return $login;
      }	

	 function logs($text,$progressbar,$captcha_form)
	  {
	    file_put_contents('style/log.html','<html><head><meta http-equiv="Refresh" content="1; URL=log.html"></head><body bgcolor="#ffffd5">'.$text.file_get_contents('style/log.html').'</body></html>');
	    file_put_contents('style/progress.html','<html><head><meta http-equiv="Refresh" content="1; URL=progress.html"><link type="text/css" href="theme/jquery-ui-1.7.2.custom.css" rel="stylesheet" /><script type="text/javascript" src="js/jquery-1.3.2.min.js"></script><script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script><script type="text/javascript">$(function(){$(\'#dialog\').dialog({autoOpen: '.$captcha_form.',width: 600});$("#progressbar").progressbar({value: '.$progressbar.'});});</script><style type="text/css">body{ font: 62.5% "Trebuchet MS", sans-serif; margin: 50px;}.demoHeaders { margin-top: 2em; }#dialog_link {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;}#dialog_link span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: -8px;}ul#icons {margin: 0; padding: 0;}ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left;  list-style: none;}ul#icons span.ui-icon {float: left; margin: 0 4px;}</style></head><body><div id="dialog_link"></div><div id="dialog" title="Ввод капчи"><p><center><img src="captcha.jpg"><p><form name="enter_captcha" action="../core.php" method="POST">Код:&nbsp;<input type="text" name="captcha_code" value="" /><br><p><input type="submit" value="OK"></form></p></center></div><div id="progressbar"></div></body></html>');
	  }

  /* Функция для распознавания капчи */
  function recognize($filename, $apikey, $is_verbose = true, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 1, $is_numeric = 0, $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].'|'.$captcha_id);
            }
        }

        return false;
    }
    }

    if ($_POST['captcha_code'])
     {
	  file_put_contents('style/captcha_code.capt',trim($_POST['captcha_code']));
	  echo '<meta http-equiv="Refresh" content="0; URL=style/progress.html">';
	  exit;
     }

	echo '<br>
	    <form name="captcha_form" action="core.php" method="POST">
		  <font color="#FF4500">Количество регистраций:&nbsp;<input type="text" name="ammount" value="" /><br><p>
		  <font color="#FF4500">Пароль:&nbsp;&nbsp;&nbsp;<input type="text" name="password" value="" /><br>(Оставьте пустым для рандомного)<br><p>
		  <font color="#FF4500">Рандомный логин:&nbsp;<input type="checkbox" name="login_rand" /><br><p>
		  <font color="#FF4500">Работать с прокси:&nbsp;<input type="checkbox" name="proxy_true" /><br><p>
		  <font color="#FF4500">Debug - режим:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="debug" /><br><p>
             <input type="submit" value="Начать">
        </form>';

	if($_POST['ammount'])
	 {
	  $p = 0;
	  $l = 0;
	  $end_result = 0;
	  $login_array = file('txt/'.$login);
	  $proxy_array = file('txt/'.$proxy);
	  $ua_array = file('txt/user_agent.txt');
	  $count_login = count($login_array);
	  $count_proxy = count($proxy_array);
      logs('['.date('H:i:s').'] <font color="#32CD32">Начало работы</font><br><br>',0,'false');

	 /* Пока не достигнем нужного количества аккаунтов, не заканчиваем регистрацию */
     for ($e = 0; $end_result <= trim($_POST['ammount'])-1; $e++)
	  {
	   $activation[1] = null;

	   /* User-agent */
	   if($user_agent == 'on')
	    {
		 $ua = $ua_array[rand(0,905)];
		}
		else
		 {
		  $ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4';
		 }

	  /* Прокси */
	  if($_POST['proxy_true'])
	   {
         while($proxy_check[1] != 'e')
		  {
		if($p != count($proxy_array))
        {
		 /* Выходим из аккаунта и проверяем прокси */
	     $result = post('http://memori.ru/logout/',null,'http://memori.ru/',$ua,$proxy_array[$p]);
          if(preg_match('#le>M(.*?)m#i',$result,$proxy_check))
		   {
		     $proxy = $proxy_array[$p];
			 $p++;
			 logs('['.date('H:i:s').'] <font color="#32CD32">'.$proxy.'</font><br>',10,'false');
		   }
		   else
		   {
		    logs('['.date('H:i:s').'] <font color="#FF0000">'.$proxy_array[$p].'</font><br>',10,'false');
			$p++;
		   }
		  }
		 else
		 {
		  logs('['.date('H:i:s').'] <font color="#FF0000">Закончились прокси</font><br>',100,'false');
		  logs('['.date('H:i:s').'] <font color="#FA8072">Зарегистрировано: <font color="#CD0000"><b>'.$end_result.'</b></font></font><br><br>',100,'false');
		  exit;
		 }
		 }
		  $proxy_check[1] = '';
	   }
	   else
	   {
		  $proxy = null;
		  post('http://memori.ru/logout/',null,'http://memori.ru/',$ua,$proxy);
	   }

	 /* Пароль */
	 if ($_POST['password'])
	  {
	   $password = trim($_POST['password']);
	  }
	  else
	  {
	   $password = rand(123456,7777777);
	  }

	 /* Если нужен рандомный логин */
	 if($_POST['login_rand'])
	  {
       $login = login();
	  }
	  else
	  {
     $login_check[1] = 'я';
	 while($login_check[1] != null)
	  {
	 if($l != $count_login)
      {
	   /* Проверяем login на занятость */
	   $result = post('http://memori.ru/register/','login='.trim($login_array[$l]),'http://memori.ru/register/',$ua,$proxy);

	   if(preg_match('#е зан(.*?)т#i',$result,$login_check))
	   {
	    logs('['.date('H:i:s').'] <font color="#FF0000">Логин '.$login_array[$l].' занят</font><br>',10,'false');
		$l++;
	   }
	   else
	   {
	   if(preg_match('#логин нельз(.*?) и#i',$result,$login_check))
	    {
		 logs('['.date('H:i:s').'] <font color="#FF0000">Логин '.$login_array[$l].' занят</font><br>',10,'false');
		 $l++;
		}
		else
		{
	     logs('['.date('H:i:s').'] <font color="#32CD32">'.$login_array[$l].'</font><br>',40,'false');
		 $login_check[1] = null;
		 $login = trim($login_array[$l]);
		 $l++;
		}
	   }
	   }
	  else
	  {
	   logs('['.date('H:i:s').'] <font color="#FF0000">Закончились логины</font><br>',100,'false');
	   logs('['.date('H:i:s').'] <font color="#FA8072">Зарегистрировано: <font color="#CD0000"><b>'.$end_result.'</b></font></font><br><br>',100,'false');
	   exit;
	  }
	  }
	  $login_check[1] = '';
	  }

	 /* Начинаем регистрацию */
	$result = post('http://memori.ru/register/',null,'http://memori.ru/registration/',$ua,$proxy);

	/* Получаем значения */
	preg_match('#en" value="(.*?)"#i',$result,$token);

	if($token[1] != null)
	{
	 logs('['.date('H:i:s').'] <font color="#32CD32">Получили страницу регистрации</font><br>',60,'false');
	}
	else
	{
	 logs('['.date('H:i:s').'] <font color="#FF0000">Страница регистрации не загружена</font><br><br>',100,'false');
	 exit;
	}

	/* Создаём картинку капчи */
	file_put_contents('style/captcha.jpg',post('http://memori.ru/captcha/',null,'http://memori.ru/registration/',$ua,$proxy));	

	/* Распознаём её */
	if ($captcha_input == 'on')
	 {
	  logs('['.date('H:i:s').'] <font color="#32CD32">Введите код капчи</font><br>',70,'true');
	  while(!file_exists('style/captcha_code.capt'))
	  {
	  }
	  $text[0] = file_get_contents('style/captcha_code.capt');
	  unlink('style/captcha_code.capt');
	 }
	 else
	 {
	   if ($ac_key == null)
	    {
	     logs('['.date('H:i:s').'] <font color="#FF0000">Не задан ключ antigate.com</font><br><br>',100,'false');
		 exit;
		}
		else
		{
	     $text = explode('|',recognize(getcwd()."/style/captcha.jpg",$ac_key,false));
		}
	 }
	logs('['.date('H:i:s').'] <font color="#32CD32">Регистрируем аккаунт</font><br>',95,'false');

	if ($_POST['debug'])
	 {
	  /* Регистрируем аккаунт */
	  echo $result = post('http://memori.ru/register/','login='.$login.'&email='.$login.'@antireg.ru&password='.$password.'&password_confirm='.$password.'&captcha='.$text[0].'&inviter=&token='.$token[1],'http://memori.ru/registration/',$ua,$proxy);
     }
	 else
	 {
	  $result = post('http://memori.ru/register/','login='.$login.'&email='.$login.'@antireg.ru&password='.$password.'&password_confirm='.$password.'&captcha='.$text[0].'&inviter=&token='.$token[1],'http://memori.ru/registration/',$ua,$proxy);
	 }

	/* Если капчу ввели не верно */
	if(preg_match('#совп(.*?)дает#i',$result))
	  {
	   logs('['.date('H:i:s').'] <font color="#FF0000">Код капчи не верен!</font><br>',95,'false');

		/* Отправляем отчёт о плохой капче */
		if(($reportbad == 'on') && ($captcha_input != 'on'))
	     {
		  file_get_contents('http://antigate.com/res.php?key='.$ac_key.'&action=reportbad&id='.$text[1]);
		  logs('['.date('H:i:s').'] <font color="#FF0000">Отчёт о плохой капче отправлен!</font><br>',95,'false');
		 }
	  }
	  else
	  {
	    while($activation[1] == null)
		 {
		  /* Проверяем почту */
	      $email = post('http://'.$login.'.antireg.ru',null,'http://antireg.ru/',$ua,$proxy);
	      if(preg_match('#u=(.*?)"#i',$email,$activation))
	       {
		    /* Активируем аккаунт */
		    $email = post('http://antireg.ru/go?u='.$activation[1],null,'http://antireg.ru/',$ua,$proxy);
			logs('['.date('H:i:s').'] <font color="#FA8072">Зарегистрирован '.$login.'</font><br>',100,'false');

			/* Сохраняем результат */
		    $fh = fopen('txt/'.$accounts, "a+");
	        $success - fwrite($fh, $login.$divider.$password."\r\n");
	        fclose($fh);
			$end_result++;
		   }
		  else
		  {
		   logs('['.date('H:i:s').'] <font color="#32CD32">Ждём письма</font><br>',95,'false');
		   sleep($sleep);
		  }
		 }
	  }
	 }
	 logs('['.date('H:i:s').'] <font color="#FA8072">Зарегистрировано: <font color="#CD0000"><b>'.$end_result.'</b></font></font><br><br>',100,'false');
	 }
	/* geforse.name */
?>

Пользуйтесь на здоровье (:

ВАЖНО: Скрипт писал не я — это перепечатка статьи. Автор по линку источник.

Источник: Авторегер Memori.ru

Оставьте комментарий