Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.
  • Форумы
  •  » iMacros
  •  » iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

№108-11-2015 20:38:53

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 42.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.



========================================================================


  Обсуждение скриптов и вопросов связанных с борьбой с капчами.


========================================================================




Начну пожалуй. :)


reCaptcha 2 сохранение на компьютер.
Директорию C:\\CapNum\\, куда сохранять и  имя файла/капчи cap.jpg, естественно можете заменить на свои.


Выделить код

Код:

if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=script ATTR=src:*recaptcha*')>0){
        f1='FRAME NAME=undefined\n';
        iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); 
        iimPlayCode('WAIT SECONDS=5'); 
        iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm');
        f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n';
        iimPlayCode('ONDOWNLOAD FOLDER=C:\\CapNum\\ FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');

       }


Уменьшение картинки/капчи в размерах.

Тут есть много вариантов, приведу парочку.

Вариант 1

Использование сторонней программы.
Качаем convert.exe и распаковываем в папку куда сохраняются капчи (допустим C:\\CapNum\\).


Вот этот код уменьшит и обрежет картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg)

Выделить код

Код:

var Cc=Components.classes, Ci=Components.interfaces;
   var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);       
   var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg'];  
       file.initWithPath("C:\\CapNum\\convert.exe");       

       proc.init(file); proc.run(false, args, args.length);

Вариант 2

Использование PHP
Качаем вот это и распаковываем в папку  C:\\CapNum\\.
Создаём файлик 1.php в папке куда сохраняются капчи C:\\CapNum\\.

Скрипт  1.php

Выделить код

Код:

<?php
$img=imagecreatefromjpeg("C:/CapNum/cap.jpg");
$des=imagecreatetruecolor(200,300);
$col=imagecolorallocate($des, 0x00, 0x00, 0xFF);
 imagecopyresized($des, $img, 0, 0, 0, 0, 200, 300, 384, 510);
 imagestring($des, 5, 5,   70,  "1", $col);
 imagestring($des, 5, 73,  70,  "2", $col);
 imagestring($des, 5, 140, 70,  "3", $col);
 imagestring($des, 5, 5,   148, "4", $col);
 imagestring($des, 5, 73,  148, "5", $col);
 imagestring($des, 5, 140, 148, "6", $col);
 imagestring($des, 5, 5,   225, "7", $col);
 imagestring($des, 5, 73,  225, "8", $col);
 imagestring($des, 5, 140, 225, "9", $col);
 imagejpeg($des, 'C:/CapNum/cap2.jpg');
 imagedestroy($des);
 imagedestroy($img);
?>


Вот этот код, для запуска 1.php, уменьшит картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg).
И так же пронумерует все варианты ответов (маленькие картинки) от 1 до 9 .

Выделить код

Код:

var Cc=Components.classes, Ci=Components.interfaces;
   var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);       
   var args=['C:\\CapNum\\1.php'];  
       file.initWithPath('C:\\CapNum\\PHP\\PHP.exe');  // <--- Путь до PHP.exe

       proc.init(file); proc.run(false, args, args.length);



=====================================================
RECAPTCHA
=====================================================

скрипт рекапчи, с уменьшением размера картинки и отправлением на рукапчу для распознания
https://pastebin.mozilla.org/8868144

Выделить код

Код:

function resize(){
 var Cc=Components.classes, Ci=Components.interfaces, c, Path='C:\\CapNum\\';
 var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
 var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); 
 var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg'];               
     file.initWithPath(Path+"convert.exe");
     proc.init(file); proc.run(false, args, args.length);}

var key='тут ключик от рукапчи';
var bit='тут биткоин кошель';


        f1='FRAME NAME=undefined\n';
     if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){
        iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); 
        iimPlayCode('WAIT SECONDS=5');
        iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM');
     if(iimGetExtract().indexOf('checked="true')<0){   
        iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm');
        f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n';
         if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ 
     for(a=1; a<9; a++){ 
         if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-image-tile-33')>0) break; else
            iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0');} 
            iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');

            iimPlayCode('WAIT SECONDS=2');
            resize();  // <--- Уменьшаем картинку
            iimPlayCode('WAIT SECONDS=2');
            iimPlayCode('TAB OPEN\nTAB T=2');

      /*** -= Отправляем на распознавание =- ***/

              for(sk=0; sk<=9; sk++){ 
                 iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/');
                 iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key);
                 iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg');
                 iimPlayCode('SET !TIMEOUT 80\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*');
                 iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT');  
                 if(iimGetExtract().search(/\d/)!=-1){     
                 c=iimGetExtract().match(/\d+/g).join(''); 
                 iimDisplay(c);
            if(iimGetExtract().indexOf("ERROR")<0)  break;}}}                                                  
                 iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');    
            if(Number(c)>0){
                for(k=0; k<c.length; k++){
                    iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');}
                    iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться
                    iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0');
                    iimPlayCode('WAIT SECONDS=2');}}
        iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM');
        if(iimGetExtract().indexOf('checked="true')>0){  
            iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); // <--- Водим биткоин кошель
            iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться
            iimPlayCode('WAIT SECONDS=1');}}



=====================================================
SOLVEMEDIA
=====================================================

Пытаемся взломать или ищем флеш капчу.
Солвемедия ломается без проблем, если у вас динамический IP.
После каждого распознавания капчи, нужно менять IP, чистить куки и желательно подменять узер агент, т.е. версию операционки и браузера.

Сначала качаем вот это и распаковываем в папку  C:\CapNum\


Обратите внимание, я в скрипте ввёл свои сокращения (мне так удобнее) t0 t3
И если будете копировать только кусок скрипта то и шапку копируйте.

https://pastebin.mozilla.org/8867297

Выделить код

Код:

var Cc=Components.classes, Ci=Components.interfaces,a,b,c,d,e,f=0,refka='1AWqZ3ke9z8eSvZWFPeHTY8a3jmQNWKhSa';
 var cok=Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager);  
 var prf=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
 var str=Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
 var alt=Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService);
 var t0='SET !TIMEOUT_STEP 0\n', t3='SET !TIMEOUT 30\n'; 
  
 kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();"; 
 Path='C:\\CapNum\\solve\\'; 

 bit='биткоин кошель'; 

 //for(;;){  
   del_cookis(); 
   
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nSET !TIMEOUT 30\nURL GOTO=crypto4free.net?r='+refka);
   a=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:*our*address*'); 
   b=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:Ваш*адрес:');
   c=iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=ID:faucet-label'); 
   d=iimPlayCode(t0+'TAG POS=1 TYPE=div ATTR=ID:adcopy-outer');  
   e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*');
 if((a>0||b>0||c>0) && d>0 && e<0) solve();
   weit(361);
 //}

/***************************************************/
function solve(){ var txt='', w=0;
   for(q=0; q<2; q++){  
       if(iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*')>0) break;
   for(z=0; z<20; z++){ 
       /* Если грязная капча обновляем */
      if(iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=SRC:*api.solvemedia.com/papi/media?c=*')>0) reload(); 
      else{ z=100; 
   for(w=0; w<=60; w++){  
      /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){
      /* Если ломаемая капча извлекаем текст и нижний код пропускаем */
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0){
         iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog  EXTRACT=TXT'); txt=iimGetLastExtract();}
      /* Если флеш капча, сохраняем на комп и запускаем функцию flesh() и нижний код пропускаем */    
else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ 
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0) weit(10);
         iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
         iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); flesh();}         
      /* Если обычный канвас (капча с ровными буквами), сохраняем на комп и запускаем функцию canvas() */   
else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){  
         iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*slog CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); canvas();}w=100;}}}}
         
          /* Если ничего из верхнего не помогло, грязная капча */
         if(w!=100){
         iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=IMG ATTR=SRC:http://api.solvemedia.com/papi/media?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1);       
         ...
        // Тут отправка на сервис распознавания
         ...
         }
         
         txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");  
         
        if(txt!='' && txt.length>5){
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit);
         iimPlayCode(t0+'TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit);
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT="'+txt+'"');weit(1);
      if(iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*')<0)
         iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:*Get*');} else reload();
      if(iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:alert*alert*&&TXT:*satoshi*sen*')>0) q=10;}}
         
 
           
         /***-= Обрабатываем флеш капчу =-***/  
function flesh(){ iimDisplay('Обрабатываем флеш капчу');
       iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"');  
   var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\flesh.vbs"];
   var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);   
       file.initWithPath("C:\\Windows\\System32\\wscript.exe"); 
       proc.init(file); proc.run(false, args, args.length); weit(15); 
       iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1);
       iimPlayCode('TAB CLOSE');}         

         /***-= Обрабатываем канвас капчу =-***/  
function canvas(){ iimDisplay('Обрабатываем канвас капчу');
       iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); 
   var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\canvas.vbs"];
   var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);   
       file.initWithPath("C:\\Windows\\System32\\wscript.exe"); 
       proc.init(file); proc.run(false, args, args.length); weit(15); 
       iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1);
       iimPlayCode('TAB CLOSE');}         
       
          /***-= Удаляем куки =-***/
 function del_cookis(){  iimDisplay('Удаляем куки');
    var iter=cok.enumerator;
    while (iter.hasMoreElements()){var cookie=iter.getNext();
    if(cookie instanceof Ci.nsICookie){
    cok.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);}}}  

         /***-= Обновление капчи =-***/
function reload(){iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);}  
     
         /***-= Ожидание =-***/
function weit(s){iimPlayCode('WAIT SECONDS='+s);}


to be continued...:)

Отредактировано PRESIDENT (19-04-2016 18:30:59)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№165215-01-2020 08:15:25

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

InfSub пишет

olushka84Попробуйте заменить e.name в строке errorText: e.name, на пустую строку или иной текст, есть предложение, что ругается на переменную "е" именно в этой строке

В общем попробовала, и все еще раз настроила в боте разгадку на Рукапчу. Бот не вылетает. Но видать все равно что-то не так, и срабатывает catch и в свойстве hasError объекта out, возвращается true. В результате бот мне сообщает, что через текущий сервис Рекапчу разгадать не удалось (ну я так задумала).

dim222 пишет

olushka84Помнится проблемы с json у Капмонстра были.

Вот, вот мне кажется сюда копать наверное надо. Так как бот у меня запросы бот парсит именно через json (вроде я правильно выразилась).
Кстати, объект для разгадки Рекапчи, у меня сделан на основе кода от Nagibaki:

скрытый текст
https://nagibaka.ru/js-imacros-lessons-for-beginners/recognition-recaptcha2-image-lesson-14/

Отсутствует

 

№165315-01-2020 12:13:58

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Продолжу. В общем опытным путем установила, что статус запроса (xhr.status) равен 200, по идее так и должно быть. Потом проверила, что какой ответ мне возвращается. И оказалось что xhr.responseText равен ERROR. Интересно куда копать дальше?

скрытый текст

Выделить код

Код:

try {
            xhr.send(params);
            iimDisplay(xhr.status);
//ВОТ ТУТ СТАТУС ПОКАЗЫВАЕТ 200
            iimPlayCode('PAUSE');
            if (xhr.status != 200) {
                out = {
                    isSolved: false,
                    hasError: true,
                    errorText: xhr.statusText,
                    answer: ''
                };
            } else {
                var res = xhr.responseText;
//А ВОТ ТУТ В КОНСОЛЬ ВЫВОДИТ ERROR
                window.console.log(res);
                iimPlayCode('PAUSE');
                var res = JSON.parse(xhr.responseText);
                if (res.status == 1) {
                    checkSolution(res.request, anticaptchingKeys);
                } else {
                    out = {
                        isSolved: false,
                        hasError: true,
                        errorText: xhr.statusText,
                        answer: ''
                    };
                }
            }

        } catch (e) {
            out = {
                isSolved: false,
                hasError: true,
                errorText: '',
                answer: ''
            };

        }


UPD! После отправки запроса вывела объект XMLHttpRequest в консоль. Вот что показывает:

XMLHttpRequest { onreadystatechange: null, readyState: 4, timeout: 60000, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://rucaptcha.com/in.php", status: 200, statusText: "OK", responseType: "", response: "ERROR" }

Отредактировано olushka84 (15-01-2020 12:30:59)

Отсутствует

 

№165415-01-2020 16:39:41

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Короче, насколько я поняла ответы от Капмонстра не надо парсить из Json, а обращаться к ним как к свойствам объекта. Вроде подвижки появились...

UPD: В общем и целом проблема решилась. Как я и говорила, ответы от Капмонстра не нужно парсить как Json. Обращаюсь к запросам как к свойствам объекта, остальное дело техники.

Отредактировано olushka84 (16-01-2020 15:33:47)

Отсутствует

 

№165517-01-2020 17:58:04

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Ребят, а такой вопрос: у меня в боте много настроек, логинов и паролей к кранам. Все они записываются в переменные. Скажите имеет ли смысл вместо кучи переменных, просто завести объект, и все данные прописывать в свойства объекта? Т.е. будет ли это экономнее по ресурсам... Или без разницы, и это вопрос удобства и личного выбора?

Отсутствует

 

№165617-01-2020 21:54:20

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: unknown 0.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
Зависит от ваших хотелок, в принципе правильнее в объект, но совершенно не факт что это сильно прибавит производительности, хотя, конечно если вы наплодили пару сотен или тысяч переменных, то конечно же удобнее и менее ресурсоемко сделать обьект


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№165719-01-2020 08:19:01

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

InfSub
Ок, спасибо большое. В общем и целом, на все настройки, логины, пароли: 88 глобальных переменных. Все остальные локальные в функциях.

Отсутствует

 

№165819-01-2020 11:16:22

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 79.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
посмотрите пример с функцией "кофеварка", если не ошибаюсь на

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


можно сделать по аналогии


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№165923-01-2020 20:18:00

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 78.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

InfSub
Спасибо огромное за полезную информацию!

Отсутствует

 

№166009-02-2020 08:54:30

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 79.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Всем привет, кто нибудь имел опыт с разгадкой Рекапчи V3 на кранах? Именно через datasitekey? С отправкой запроса вроде все понятно, и даже получаю ответ с сервиса распознавания (Капча гуру). В отличии от рекапчи V2 не очень понятно, куда полученный токен вставлять?

Отсутствует

 

№166109-02-2020 19:21:42

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Yandex 20

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
Могу предположить что.......
нужно получить  доступ к функции  из загруженного в текущую страницу скрипта и в качестве параметра вставить token....
Типа  такого "window.content.document.defaultView.wrappedJSObject.claim(token);" Ну это не точно... нужно смотреть код. Сам с v3 не работал..

Отредактировано dim222 (09-02-2020 19:22:27)

Отсутствует

 

№166219-04-2020 13:16:18

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 80.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Всем доброго времени суток!! Я снова с вами на связи... Подскажите пожалуйста, кто-нибудь имел опыт разгадки таких антиботов:

скрытый текст
Screenshot-2.jpg

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

InfSub

Отсутствует

 

№166319-04-2020 14:59:44

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Yandex 20

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
У вас же имеется Капмонстер. Варианты ответа не плохо гадаются встроенным модулем "Universal".

Отсутствует

 

№166419-04-2020 17:20:10

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 80.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dim222 пишет

olushka84
У вас же имеется Капмонстер. Варианты ответа не плохо гадаются встроенным модулем "Universal".

Спасибо огромное. Т.е. нужно отправлять этот антибот как картинку капчи? Интересно как ответ придет от монстра?

Отсутствует

 

№166519-04-2020 18:56:43

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Yandex 20

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84 пишет

Т.е. нужно отправлять этот антибот как картинку капчи?

Да. Но я на писал про картинки на которые надо нажимать. Модуль довольно не плохо их распознает. Что касается основной картинки , там все сложнее.

olushka84 пишет

Интересно как ответ придет от монстра?

Ответом будет то что на картинке.

Добавлено 19-04-2020 19:03:27
olushka84
Кажется такой код будет правильным для отправки картинки на сервер капмонстра, проверьте.

скрытый текст

Выделить код

Код:

var X = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");

	x=new X();		
		x.open('GET', 'file:///полнй путь к файлу', false);
		x.responseType = 'blob';
		x.send(null);
		blob = x.response;
		var formData = new window.FormData();
		formData.append('method', 'post');
		formData.append('imacros', 'true');
		formData.append('key', 'ключ к капмонстру');
		formData.append('CapMonsterModule', 'ZennoLab.Universal');
		formData.append('file', blob);
	x = new X();
		x.open('POST','http://сервер капмонстра/in.php',false);
		x.send(formData);
	
		answers = x.response;

Отредактировано dim222 (19-04-2020 19:05:12)

Отсутствует

 

№166619-04-2020 19:23:51

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 80.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

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

Отсутствует

 

№166719-04-2020 19:57:39

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Yandex 20

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
Можете скинуть сайт. Я вам логику пропишу с пояснениями.

Отсутствует

 

№166819-04-2020 20:08:03

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 80.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dim222 пишет

olushka84
Можете скинуть сайт. Я вам логику пропишу с пояснениями.

скрытый текст

Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Буду очень вам благодарна...

Отсутствует

 

№166920-04-2020 07:07:05

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Yandex 20

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

olushka84
Здесь я расписал логику.

скрытый текст

Выделить код

Код:

let card_Antibot = window.document.querySelector('form div.card img').src,
		antibot = window.document.querySelectorAll('.antibotlinks a img'),
		arr_Answer = [];

/* Скачиваем  основную картинки; */
	iimPlayCode(`
	SET !TIMEOUT_STEP 3
	ONDOWNLOAD FOLDER=D:\\doge-faucet\\ FILE=card_antibot.png WAIT=YES
	TAG POS=1 TYPE=IMG ATTR=SRC:` + card_Antibot + ` CONTENT=EVENT:SAVEPICTUREAS
	WAIT SECONDS=2
	`);	

/* Здесь отправляем её на распознавание и присваиваем ответ к переменной */
    let answer = 'здесь ответ распознавания картинки';
	
/* Здесь разбиваем строку ответа на массив */
	answerOCR = answer.split(',');

/* Здесь в цикле сохраняем каждую картинку и отправляем на распознавание, после чего добавляем в массив "arr_Answer" */
	antibot.forEach(function(item, i, arr) {
        /* сохраняем */
		iimPlayCode(`
		SET !TIMEOUT_STEP 3
		ONDOWNLOAD FOLDER=D:\\doge-faucet\\ FILE=antibot_` + i + `.png WAIT=YES
		TAG POS=1 TYPE=IMG ATTR=SRC:` + item.src + ` CONTENT=EVENT:SAVEPICTUREAS
		WAIT SECONDS=2
		`);
		
		/* отправляем на распознавание и добавляем к массиву */
        arr_Answer.push('здесь ответ распознавания картинки');
	});
	
	
	/* Ну а теперь кликаем нужные картинки по порядку */
	for (let search of answerOCR) {
		
		arr_Answer.forEach(function(item, i, arr) {
			
			if (search == item)
				window.document.querySelectorAll('.antibotlinks a')[i].click();
		});		
	}


код публикуется в тегах code под спойлером


InfSub

Отсутствует

 

№167020-04-2020 07:46:41

olushka84
Участник
 
Группа: Members
Зарегистрирован: 14-01-2020
Сообщений: 16
UA: Chrome 80.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dim222 пишет

olushka84
Здесь я расписал логику.

О, огромное спасибо. С меня причитается. В личку отпишусь вам.

Отсутствует

 

№167112-06-2020 14:29:37

googlenoob
Участник
 
Группа: Members
Зарегистрирован: 21-01-2017
Сообщений: 43
UA: Chrome 81.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Собрал конструкцию, может, есть, что похожее то извиняюсь! XEvil не как не хотел гадать капчу Yandex в этом варианте гадает.

скрытый текст

Выделить код

Код:

FILEDELETE NAME=C:\CAPCHA\yandex.png

WAIT SECONDS=3

ONDOWNLOAD FOLDER=C:\CAPCHA FILE=yandex.png

TAG POS=1 TYPE=IMG ATTR=SRC:https://yandex.*/captchaimg* CONTENT=EVENT:SAVEITEM

Отсутствует

 

№167206-08-2020 18:48:44

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 84.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

перенесено в отдельную тему: Флейм: Обход Капчи это разве не преступление


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№167307-08-2020 20:41:42

Герман
Участник
 
Группа: Members
Зарегистрирован: 15-07-2018
Сообщений: 38
UA: Chrome 84.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Приветствую! Товарищи, помогите пожалуйста разобраться в чём причина непонятной ошибки возникающей при работе вроде бы рабочего скрипта. Этот скрипт имеется в свободном доступе и вылажен на сайте Нагибаки. Скрипт по 100%-ному распознаванию рекапчи-2 через сайткей.

ссылка на статью
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

ссылки публикуются под спойлером, а тегах noindex

сам скрипт

Выделить код

Код:

var Nagibaka = {
 
 
	/**
	 *  Solve Google reCaptcha v.2 with rucaptcha.com service
	 *
	 *  @author: Nagibaka<nagibaka.ru>
	 *  @date: 18.01.2017
	 *  @version : 1.0
	 *  
	 *  @param {String} ruCaptchaKey [API key from rucaptcha.com]
	 *  @return {JSON} [Object with info about success or errors]
	 */
	fuckReCaptcha2: function (ruCaptchaKey) {
	
		iimPlayCode('SET !EXTRACT_TEST_POPUP NO');
		iimPlayCode('SET !ERRORIGNORE YES');
		iimPlayCode('SET !TIMEOUT_STEP 0');		
 
		var out = {
			isSolved: false,
			hasError: false,
			errorText: "no text"
		};
 
		var reqCount = 0;
 
 
		function checkSolution (gkey, rucapKey) {
 
			if (reqCount > 14) {  // 14 * 5 = 70 second timeout
 
				out = {
					isSolved: false,
					hasError: true,
					errorText: "Rucaptcha timeout error."
				};
 
				return;
 
			}
 
			iimPlayCode('WAIT SECONDS=5');	
 
			var XMLHttpRequestT = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
			var xhr = new XMLHttpRequestT();
			var url = "http://rucaptcha.com/res.php?key=" + ruCaptchaKey + "&action=get&id=" + gkey + "&json=1"
			xhr.open('GET', url, false);
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
			xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
 
			xhr.timeout = 60000;
			
			
			// processing results
			try {
 
				xhr.send();
 
				if (xhr.status != 200) {
					out = {
						isSolved: false,
						hasError: true,
						errorText: xhr.statusText
					};		
				} else {					
					var res = JSON.parse(xhr.responseText);
					if (res.status == 1) {
						window.document.querySelector('.g-recaptcha-response').style = "";
						window.document.querySelector('.g-recaptcha-response').textContent = res.request;					
						out = {
							isSolved: true,
							hasError: false,
							errorText: "Success!"
						};
						
					} else {
						reqCount++;
						checkSolution (gkey, ruCaptchaKey)
					}	
				}			
 
			} catch (e) {				
				out = {
					isSolved: false,
					hasError: true,
					errorText: e.name
				};
				
			}
 
 
		}
 
 
		
		if (window.document.querySelector('.g-recaptcha') == null) {
			return {
				isSolved: false,
				hasError: true,
				errorText: "Recaptcha not found on page."
			};
		}
 
		var dataSiteKey = window.document.querySelector('.g-recaptcha').getAttribute('data-sitekey');
		var domen = window.location.host;
	
		var params = "key=" + ruCaptchaKey + "&method=userrecaptcha&googlekey=" + dataSiteKey + "&pageurl=" + domen + "&json=true&header_acao=1";
 
		var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
		var xhr = new XMLHttpRequest();
		xhr.open('POST', "http://rucaptcha.com/in.php", false);
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
		xhr.timeout = 60000;
 
		try {
 
			xhr.send(params);
 
			if (xhr.status != 200) {
				out = {
					isSolved: false,
					hasError: true,
					errorText: xhr.statusText
				};		
			} else {				
				var res = JSON.parse(xhr.responseText);
				if (res.status == 1) {
					checkSolution(res.request, ruCaptchaKey);
				} else {
					out = {
						isSolved: false,
						hasError: true,
						errorText: xhr.statusText
					};
				}		
			}			
 
		} catch (e) {			
			out = {
				isSolved: false,
				hasError: true,
				errorText: e.name
			};
			
		}
 
		return out;
 
	}
 
};
 
 
 
// Пример использования на сайте https://www.google.com/recaptcha/api2/demo
iimPlayCode('SET !TIMEOUT 30\r\nURL GOTO=https://www.google.com/recaptcha/api2/demo');
 
var result = Nagibaka.fuckReCaptcha2("XXXXX");	
window.console.log(result);
 
// Check if captcha solved
if (result.isSolved) {
	window.document.querySelector('#recaptcha-demo-submit').click();
} else {
	window.console.log(result.errorText)
}

И что получаеста? А получается, если этим скриптом работать через сайт распознавани капчи "Капча-гуру" (captcha.guru) с API ключом, то скрипт гадает капчу и нажимает на субмит на демо-сайте рекапчи (на котором и работает) и вроде все нормально (хотя нюансы есть). А вот ежели вместо гуру-капчи использовать "капмонстра" (приобрел я капмонстра на пару дней), то при запуске скрипта вылезает ошибка в строке скрипта 144. Пишет

TypeError: e is undefined, line 144 (Error code: -991)

и скрипт сразу останавливается не отработав как положено. То есть не работает так как с сайтом "капча-гуру". Подскажите, кто в теме, в чём может быть причина? Ведь капмонстр в хост-файл прописует адреса как надо, автоматически, я проверял. То есть он перехватывает отправку капчи. И самое интересное, что капмонстр капчу реально перехватывает, то есть сайткей, и разгадует. То есть капмностр работотает, а вот скрипт не очень.
Тут была одна Оля (или Олечка), которая уже заводила подобную тему, да куда-то слилась она, хотел у ней спросить подсказки. Но может и так кто-то в теме и может подсказать в чём ошибка скрипта, из-за чего он выдайт ошибку?

ошибка
8ZfdMOV.png



InfSub

Отредактировано InfSub (07-08-2020 20:54:01)

Отсутствует

 

№167407-08-2020 21:03:25

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: unknown 0.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Герман
Закоментируйте строку 144 или замените переменную e.name на пару одинарных кавычек.
Она не несёт какого-то серьезного функционала, только информационный

Добавлено 07-08-2020 21:09:39

Герман пишет

А вот ежели вместо гуру-капчи использовать "капмонстра"

А кто-то оптимизировал скрипт под капмонстра, чтобы он корректно работал? Нагибака же написал под какую систему разгадывания каптч этот скрипт. Возьмите и отладьте под себя (под капмонстра)

Отредактировано InfSub (07-08-2020 21:09:39)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№167507-08-2020 21:14:54

Герман
Участник
 
Группа: Members
Зарегистрирован: 15-07-2018
Сообщений: 38
UA: Chrome 84.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

InfSub пишет

Нагибака же написал под какую систему разгадывания каптч этот скрипт.

Под сайт рукапча Нагибалка писал своего скрипта. Ну так в файле хост прописываются IP адреса любых сайтов и происходит переадресация. Я вот на сайт капчагуру посылал капчу используя скрипт Нагибаки. Ничего не менял, просто в хост-файле прописал нужные IP адреса. Точно так же и капмонстр делает, прописывает в хост-файл нужные адреса (локальный адрес). И капчу капмонстр перехватывает. И разгадывает. Но скрипт к этому времени уже закрывается с ошибкой. То есть практически сразу закрывается.

Отредактировано Герман (07-08-2020 21:15:22)

Отсутствует

 

№167607-08-2020 21:16:30

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: unknown 0.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Герман
Логично, значит не так, а с определенными изменениями в работе

Добавлено 07-08-2020 21:17:50
Герман
Я вам уже выше написал как обойти ошибку.

Отредактировано InfSub (07-08-2020 21:17:50)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]