Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
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);
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');}}
Сначала качаем вот это и распаковываем в папку C:\CapNum\
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);}
Отредактировано PRESIDENT (19-04-2016 18:30:59)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Народ, а в принципе можно избавиться от
капчей с дорожными знаками и указателями улиц.?
Я вот пробовал играться юзерагентами-помогает но не на все 100%.
перешел на Мозила 27.01, стало еще меньше но проскакивают.
Отсутствует
Народ, а в принципе можно избавиться от
капчей с дорожными знаками и указателями улиц.?
А зачем избавляться именно от этих дорожных знаков и улиц? По идее от любой капчи надо избавляться, а не только от этой - в этом и состоит идея взлома самой капчи.
И что в этих дорожных знаках и улицах не так? Зачем надо именно от них избавляться? А от другой капчи, что, не надо избавляться, что ли?
Отсутствует
А зачем избавляться именно от этих дорожных знаков и улиц?
Отредактировано Egorushka1974 (19-02-2016 12:26:09)
Отсутствует
Подскажите а как отлавливать такие кнопки?
Отредактировано Egorushka1974 (19-02-2016 15:12:43)
Отсутствует
попробуй так
Благодарю, разобрался) А вот и как же уменьшить количество ошибок, в поиске через гугл? Исключением капч по тематике?
Отсутствует
А вот и как же уменьшить количество ошибок, в поиске через гугл? Исключением капч по тематике?
Отредактировано Egorushka1974 (19-02-2016 20:40:22)
Отсутствует
Подскажите... кусок кода из первого поста, приведенный под спойлером, должен нажимать и сохранять такую
var t0='SET !TIMEOUT_STEP 0\n'; for(w=0; w<=60; w++){ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0){ weit(10); if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay&&TXT:')>0){ weit(1); iimPlayCode('ONDOWNLOAD FOLDER=* FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay&&TXT: CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); }}} function weit(s){iimPlayCode('WAIT SECONDS='+s);}
Отсутствует
sabio
iimPlayCode('TAG POS=1 TYPE=AREA ATTR=SHAPE:rect&&COORDS:0,0,300,150&&ALT:&&TITLE:&&HREF:#'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=SHAPE:*&&HREF:http://api.solvemedia.com/papi/action?c=*&&TARGET:* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=SHAPE:*&&HREF:https://api-secure.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=TARGET:*&&HREF:https://api-secure.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:http://pixel.solvemedia.com/c/* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Отредактировано Koks (22-02-2016 21:08:34)
Отсутствует
sabio
скрытый текстВыделить кодКод:
iimPlayCode('TAG POS=1 TYPE=AREA ATTR=SHAPE:rect&&COORDS:0,0,300,150&&ALT:&&TITLE:&&HREF:#'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=SHAPE:*&&HREF:http://api.solvemedia.com/papi/action?c=*&&TARGET:* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=SHAPE:*&&HREF:https://api-secure.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=TARGET:*&&HREF:https://api-secure.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:http://pixel.solvemedia.com/c/* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Спасибо. А как сохранять только черную полосу с текстом
Отредактировано sabio (22-02-2016 22:30:07)
Отсутствует
sabio
/***-= Конвертор обработка медиа капчи =-***/ function cap(){ 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:\\tmp\\scripts_solve\\'+n+'.php']; //<--- Путь до PHP скрипта file.initWithPath('C:\\tmp\\PHP\\PHP.exe'); // <--- Путь до PHP.exe конвертера for(k=0; k<85; k++){ //<---Ищем фрейм Флешь капчи if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+k+'\nTAG POS=1 TYPE=DIV ATTR=ID:playTxt')>0){ iimPlayCode('WAIT SECONDS=10\nONDOWNLOAD FOLDER=C:\\tmp\\ FILE=image'+n+'.jpg WAIT=YES\nFRAME F='+k+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); var mmsm=1; iimPlayCode('TAG POS=1 TYPE=A ATTR=ID:adcopy-page-return');break;}} for(kr=0; kr<85; kr++){ //<---Ищем фрейм Флешь капчи if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+kr+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ iimPlayCode('WAIT SECONDS=10\nONDOWNLOAD FOLDER=C:\\tmp\\ FILE=image'+n+'.jpg WAIT=YES\nFRAME F='+kr+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=ID:overlay'); break;}} proc.init(file); proc.run(false, args, args.length);} //Конвертируем капчу
Отсутствует
gepavlik
Отредактировано PRESIDENT (10-03-2016 20:01:43)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
sabio
скрытый текстВыделить кодКод:
/***-= Конвертор обработка медиа капчи =-***/ function cap(){ 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:\\tmp\\scripts_solve\\'+n+'.php']; //<--- Путь до PHP скрипта file.initWithPath('C:\\tmp\\PHP\\PHP.exe'); // <--- Путь до PHP.exe конвертера for(k=0; k<85; k++){ //<---Ищем фрейм Флешь капчи if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+k+'\nTAG POS=1 TYPE=DIV ATTR=ID:playTxt')>0){ iimPlayCode('WAIT SECONDS=10\nONDOWNLOAD FOLDER=C:\\tmp\\ FILE=image'+n+'.jpg WAIT=YES\nFRAME F='+k+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); var mmsm=1; iimPlayCode('TAG POS=1 TYPE=A ATTR=ID:adcopy-page-return');break;}} for(kr=0; kr<85; kr++){ //<---Ищем фрейм Флешь капчи if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+kr+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ iimPlayCode('WAIT SECONDS=10\nONDOWNLOAD FOLDER=C:\\tmp\\ FILE=image'+n+'.jpg WAIT=YES\nFRAME F='+kr+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=ID:overlay'); break;}} proc.init(file); proc.run(false, args, args.length);} //Конвертируем капчу
Ваш вариант не "нажимает" и соответственно не сохраняет видеокапчу о которой я писал выше... во всяком случае у меня.
iimPlayCode('TAG POS=1 TYPE=AREA ATTR=SHAPE:rect&&COORDS:0,0,300,150&&ALT:&&TITLE:&&HREF:#');
Отсутствует
а вот как
Исследуй элемент и составь нужный тег.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
sabio
Отредактировано Koks (24-02-2016 15:20:53)
Отсутствует
Koks
Я немножко не об этом спрашивал... меня интересует как сохранить капчу без видеоряда
...обрезать сторонней программой и удалять ненужные символы я знаю как
Отсутствует
Винда 8, мозила 35, аймакрос последний.
Народ, кто нибудь, запустил скрипт Солвемедиа из первого поста?
У меня если не нашел флэшкапчу или КАНВАСЫ, то после окончания цикла поиска
вылетает из скрипта и дает ошибку:
И периодически вылетает на solve.php при преобразовании капчи КАНВАСЫ.
Отредактировано Egorushka1974 (25-02-2016 16:44:30)
Отсутствует
var Cc=Components.classes, Ci=Components.interfaces, refka='15mg7N8fBikAe2BE57pi89FZf3uKJYe25g'; 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',a,b,c,d,e,f=0; kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();"; Path='C:\\CapNum\\solve\\'; bit='Биткоин кошель'; // На примере одного краника // Тут надеюсь понятно, заход на сайт и всевозможные проверки. // Например есть ли поле для ввода кошелька, на отсутствие всяких предупреждений и таймера. for(u=1;u<3;u++){ 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);} //<---Если всё норм вызываем/запускаем функцию solve() что она делает смотрим ниже. /*************************************************/ function solve(){ 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) reload(); //<--- если грязная капча, то обновляем. Нам нужен флеш или ломаемый канвас else if(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++){ 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();w=99;} else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iP(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay&&TXT:')>0){ //<---Если флеш капча if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0) weit(10); //<---то жмём кнопку плей и ждём 10 сек что бы капча сгенерировалась. Иногда кнопки плей нету, поэтому вначале стоит проверка if iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay&&TXT: CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); //<--- Скриним сохраняем на комп капчу iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); cap(); weit(15); w=99;} //<---Жмём кнопку ретурн то падже (вернутся на страницу) иногда такого нет. И вызываем функцию cap() что за функция смотрим ниже if(w==99){ //<---Если капча найдена и обработана,выше задавалось w=99; этим сразу и цикл прекращался и сюда метка делалась iimPlayCode('SET !DATASOURCE '+Path+'otvet.txt\nSET !DATASOURCE_LINE 1\nSET !EXTRACT {{!COL1}}'); //<---извлекаем ответ txt=iimGetExtract().replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");}}}} //<---из ответа обрезаем все личние символы, типа скобок точек минусов и т.д., оставляем только буквы if(txt!='' && txt.length>5){ //<--- Проверяем если полученный ответ, после всех наших обрезаний не пустой о больше 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;}} // Запуск пхп скрипта, который очищает и обрабатывает капчу и сразу запускает распознавалку tesseract.exe function cap(){ var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\cap.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);} // Ну и ниже стандартный набор функций function reload(){ del_cookis(); iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);} /***-= Удаляем куки =-***/ 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 weit(s){iimPlayCode('WAIT SECONDS='+s);}
Отредактировано InfSub (12-03-2016 22:18:48)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
Да все в общем понятно,
только я и в личку тебе писал и здесь запостил,
если скрипт не нашел ни флеш капчи, ни слога ни канвасов,
то он спотыкается на переменной txt код ошибки я приводил.
и php преобразователь капчей периодически спотыкается при преобразовании канвасов.
и прошу немного увеличить размер техта, сделать больше свободного поля, после преобразования флеш капчи,
на ресурсе по распознаванию, не корректно иногда распознается вполне читаемая капча.
Вот в общем то и все. Логика скрипта понятна, но есть такие нюансы.
Отредактировано Egorushka1974 (25-02-2016 21:36:54)
Отсутствует
Здравствуйте! Подскажите как сохранить множество капч-картинок в папку?
Вот примерный код сохранения капчи, но сохраняет только одну капчу, вернее одна картинка в папке. А надо так, чтоб картинки (капчи) переименовывались. И таким образом надо насохранять несколько тысяч капч (для обучения распознавалки).
Что в коде надо добавить чтоб, например, единица приплюсовывалась и переименовывалось название? Например: ...capcha.png267, capcha.png268, capcha.png269, capcha.png270... и т.д.
URL GOTO=http://www.captcha.ru/captcha2/ ONDOWNLOAD FOLDER=c:\kapcha FILE=capcha.png WAIT=YES TAG POS=1 TYPE=IMG ATTR=SRC:http://www.captcha.ru/captcha2/* CONTENT=EVENT:SAVEPICTUREAS
Отредактировано dvitkovs (26-02-2016 10:22:03)
Отсутствует
dvitkovs
=Math.floor(Math.random()*99999999999);
iimPlayCode('... FOLDER=c:\\kapcha FILE='+
+'.png WAIT=YES...
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
dvitkovs
скрытый текстТы всё равно это будешь на JS в цикле делать.
Вот новой капче и присваивай номер цикла.
или просто рандомный номер капчи.cap
=Math.floor(Math.random()*99999999999);
iimPlayCode('... FOLDER=c:\\kapcha FILE='+cap
+'.png WAIT=YES...
Благодарю!
Отсутствует
PRESIDENT
Огромное тебе братишка что работаем вместе написал скрипт на .999dice.com
/**-- Скрипт на кнопку 999dice.com --**/ var key1 ='57575757757575757757575757'; /**-- Ключ от рукапчи --**/ var key2 ='6565656565656565656'; /**-- Ключ от 9 kw --**/ var url = 1 ; /**-- Выбор сервиса определения капчи если 1 - рукапча , если 2 - 9 kw --**/ var log = 'сюда логин в казино'; /**-- Логин --**/ var pass = 'сюда твой пароль в казино'; /**-- Пароль --**/ //==================================================================================================================================================================================== iimPlayCode('URL GOTO=https://www.999dice.com/'); iimPlayCode('wait seconds=2\nTAG POS=1 TYPE=A ATTR=HREF:javascript:;'); iimPlayCode('wait seconds=2\nTAG POS=1 TYPE=DIV ATTR=TXT:Аккаунт'); iimPlayCode('wait seconds=1\nTAG POS=1 TYPE=INPUT:TEXT ATTR=ID:AccountTabLoginUsername CONTENT='+log); iimPlayCode('wait seconds=1\nTAG POS=1 TYPE=INPUT:PASSWORD ATTR=ID:AccountTabLoginPassword CONTENT='+pass); iimPlayCode('wait seconds=1\nTAG POS=1 TYPE=SPAN ATTR=ID:AccountTabLogin'); iimPlayCode('wait seconds=1\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:ctl21'); iimPlayCode('wait seconds=2\nTAG POS=1 TYPE=DIV ATTR=TXT:Чат'); iimPlayCode('wait seconds=2\nTAG POS=1 TYPE=A ATTR=HREF:javascript:;'); /***-= Ожидание =-***/ function weit(s){iimPlayCode('WAIT SECONDS='+s);} for (;;){ for(w=0; w<1; w++){ iimDisplay('Ожидаем кнопку'); weit(3) ; iimPlayCode('FILEDELETE NAME=C:\\tmp\\image.jpg'); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=SPAN ATTR=TXT:BTC<SP>|<SP>Doge<SP>|<SP>LTC')>0){ weit(3) ; iimPlayCode('ONDOWNLOAD FOLDER=C:\\tmp\\ FILE=image.jpg WAIT=YES\nTAG POS=1 TYPE=IMG ATTR=ID:recaptcha_challenge_image CONTENT=EVENT:SAVEITEM'); /**-- Если в миню выбрали 1й сервис, отсылаем капчу на Rucaptcha для распознавания . Если в миню 2й то отсылаем на на www.9kv --**/ if(Number(url)<=1){/**-- Если в миню выбрали данный сервис, отсылаем капчу на Rucaptcha для распознавания --**/ iimPlayCode('wait seconds=0\nTAB OPEN\nTAB T=2'); iimDisplay('Отправляем Капчу на распознавание'); 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=' + key1); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT=C:\\tmp\\image.jpg'); iimPlayCode('SET !TIMEOUT 100\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 2\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT');} // <-------- Получаем ответ с rucaptcha.com if(Number(url)>=2){/**-- Если в миню выбрали данный сервис,отсылаем капчу на www.9kv для распознавания --**/ iimPlayCode('wait seconds=0\nTAB OPEN\nTAB T=2'); iimDisplay('Отправляем Капчу на распознавание'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=9kw.eu/grafik/form.html'); iimPlayCode('TAG POS=1 TYPE=INPUT FORM=ACTION:* ATTR=NAME:apikey CONTENT=' + key2); iimPlayCode('TAG POS=1 TYPE=INPUT FORM=ACTION:* ATTR=NAME:prio CONTENT=10'); iimPlayCode('TAG POS=1 TYPE=INPUT FORM=ACTION:* ATTR=NAME:file-upload-01 CONTENT=C:\\tmp\\image.jpg'); iimPlayCode('TAG POS=1 TYPE=INPUT FORM=ACTION:* ATTR=NAME:source CONTENT=imacros'); iimPlayCode('TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:* ATTR=NAME:nomd5 CONTENT=YES'); iimPlayCode('SET !TIMEOUT 100\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 300\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:result EXTRACT=txt'); }// <-------- Получаем ответ с www.9kv txt = iimGetExtract(); iimDisplay(iimGetExtract()); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=ID:recaptcha_response_field2 CONTENT="' + txt + '"');weit(1) ; /**-- Ввод данных с сервиса --**/ iimPlayCode('SET !TIMEOUT_STEP 1\nTAG POS=1 TYPE=SPAN ATTR=ID:CollectRainButton2'); weit(10) ; /**-- Нажимаем кнопу ввода --**/ iimPlayCode('WAIT SECONDS=1\nTAG POS=1 TYPE=INPUT:TEXT ATTR=ID:ChatTabText CONTENT="1.5 K Мало кнопа "'); iimPlayCode('WAIT SECONDS=3\nTAG POS=1 TYPE=SPAN ATTR=ID:ChatTabSendButton'); var bal = 'http://rucaptcha.com/res.php?key=' + key1 + '&action=getbalance'; iimPlayCode('SET !TIMEOUT_STEP 0\nTAB OPEN\nTAB T=2\nURL GOTO=' + bal + '\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT\nTAB T=1\nTAB CLOSEALLOTHERS'); var balans = iimGetLastExtract(); iimDisplay('Баланс = ' + balans + ' руб. Ожидаем кнопку'); weit(50) ; // iimPlayCode('WAIT SECONDS=1\nTAG POS=1 TYPE=INPUT:TEXT ATTR=ID:ChatTabText CONTENT="Не идет игра сегодня хоть убей"'); // iimPlayCode('WAIT SECONDS=3\nTAG POS=1 TYPE=SPAN ATTR=ID:ChatTabSendButton'); weit(5) ; } } }
Отсутствует
PRESIDENT
Может быть и глупый вопрос но ответьте пожалуйста
Так можно сделать, это будет работать?
for(j=0; j<60; j++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+j+'\nTAG POS=1 TYPE=DIV ATTR=ID:playTxt')>0){ weit(15); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nFRAME F='+j+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); j=99;} for(w=0; w<60; w++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS='+w+' TYPE=IMG ATTR=ID:adcopy-puzzle-image-imag')>0){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=captcha.jpg WAIT=YES\nTAG POS='+w+' TYPE=IMG ATTR=ID:adcopy-puzzle-image-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); weit(1); w=99;} if(w==99){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('TAB CLOSE');}} if(j==99){ iimPlayCode('TAB OPEN\nTAB T=2'); cap(); iimPlayCode('SET !TIMEOUT 30\nURL GOTO=file:///'+Path+'captcha.txt'); iimPlayCode('TAB CLOSE');}}
Отредактировано Koks (26-02-2016 21:05:46)
Отсутствует
Koks
А для чего эти две ифа ?
if(k==99){
if(w==99){
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
я хотел чтобы он видеокапчу рассказывал автономно
а грязную отправлял на сервер ручного распознавания
Отредактировано Koks (26-02-2016 20:36:51)
Отсутствует