взлом математической капчи

Тема в разделе "Как сделать...", создана пользователем kactetus, 27 мар 2010.

Статус темы:
Закрыта.
  1. kactetus

    kactetus митя is here )

    Регистр.:
    26 авг 2007
    Сообщения:
    441
    Симпатии:
    278
    У кого нибудь есть готовое решение по взлому математической капчи.
     
  2. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    обычно ответ математической каптчи записывается в куки;)
     
  3. kactetus

    kactetus митя is here )

    Регистр.:
    26 авг 2007
    Сообщения:
    441
    Симпатии:
    278
    Генерируется java скриптом в куках ничего нет.
    PHP:
    <script language="javascript">
    document.write("5 + 2 =");
    </script>
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    PHP:
    <?
    $code = <<<FOO
    <script language="javascript">
    document.write("5 + 2 =");
    </script> 
    FOO;

    preg_match_all('/write\("(.*?)\s="\);/'$code$matches);
    eval(
    '$result = '.$matches[1][0].';');
    echo 
    $result;
    ?> 
     
    kactetus нравится это.
  5. kactetus

    kactetus митя is here )

    Регистр.:
    26 авг 2007
    Сообщения:
    441
    Симпатии:
    278
    polyetilen спасибо. А как вырезать из html кода если имеется много входений document.write
     
  6. -=BlackSmoke=-

    -=BlackSmoke=-

    Регистр.:
    4 авг 2009
    Сообщения:
    280
    Симпатии:
    49
    kactetus, тогда в 2 прохода. Первым прег матчем вырезаешь часть страницы, напрмиер, <div id="addcomment">(.*?)</div>. Результат подставляешь во второй preg_match.

    P.S. А зачем тут preg_match_all, капча же одна?
     
  7. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    может там какой нибудь уникальный id или тег, или форма тогда
    PHP:
    <?
    $code = <<<FOO

    <div id="not_captcha">
    <script language="javascript">
    document.write("5 + 2 =");
    </script>
    </div> 

    <div id="CAPTCHA">
    <script language="javascript">
    document.write("5 + 2 =");
    </script>
    </div> 

    FOO;

    preg_match('/id="captcha"(.+?)write\("(.+?)="\);/si'$code$matches);

    if(
    $matches[2]){
        eval(
    '$result = '.$matches[2].';');
        echo 
    $result;
    }
    ?>
     
Статус темы:
Закрыта.