Online captcha-herkenningsprogramma. Herkenning captcha-bescherming

Goedendag, dames en heren.

Automatische captcha-herkenningsdiensten kunnen in een groot aantal verschillende situaties helpen. Ze vergemakkelijken bijvoorbeeld enorm het werk van programma's voor verzamelen semantische kern– Kay Collector, SlovoYob, enz., toepassingen voor het controleren van tekst op uniciteit en herschrijven – AntiPlagiaat.

Bij grote volumes Als u dezelfde tekst of vragen gebruikt, kunt u elke 10 seconden een captcha-prompt tegenkomen. Niet erg handig, toch? Anti-captcha ontneemt u de noodzaak om dezelfde cijfers en letters handmatig in te voeren. Dit wordt gedaan door andere mensen die geld verdienen door ze op te lossen. U hoeft alleen te betalen voor diensten die automatische captcha-invoer bieden.

De meeste programma's die samenwerken met onlinediensten (Wordstat, Google Analytics, enz.) vereisen constante captcha-invoer. Het is niet bevorderlijk voor dergelijke online projecten om bots mee te laten werken, dus proberen ze dit met alle macht te bestrijden.

Maar hoe zit het met eenvoudige webmasters die besluiten semantiek te verzamelen of gegevens van analyseservices te ontleden? Handmatig doen? Geen erg redelijke beslissing, vooral omdat er nu veel programma's zijn voor het decoderen van captcha, en deze zijn gratis.

Echte mensen lossen de captcha op en ontvangen daarvoor een beloning. Ze werken in een speciaal venster, waarvan het script de captcha van uw programma rechtstreeks naar hen doorstuurt. Indien correct ingevoerd, vindt automatisch aanvullen plaats. Uw aanvraag verloopt soepel en u heeft er geen omkijken meer naar.

Captcha-herkenningssites bieden hun medewerkers een vast tarief per captcha. U, als klant, moet storten een bepaald bedrag in evenwicht brengen. Langzaam zal het afnemen.

Automatische invoerdiensten vergen geen grote investeringen. 300 - 400 roebel voor enkele maanden, of zelfs zes maanden, zal voldoende zijn. Maar het hangt ook af van de hoeveelheid gebruik.

Met behulp van speciale codes of gegevens van een account op zo'n site kun je integreren de juiste toepassing met bediening.

Lijst met online services voor captcha-herkenning

Als u ook wilt dat uw hulpprogramma's in de "automatische" modus werken, moet u vertrouwd raken met deze lijst. Hier zal ik ter overweging de meest populaire sites presenteren die u zullen helpen de noodzaak om captcha handmatig in te voeren, weg te nemen.

RuCaptcha

RuCaptcha is een populair project dat het probleem van het werken met veel applicaties oplost. De prijzen zijn hier hoger dan in andere, met 10 roebel, maar de kwaliteit en snelheid van het werk komen hiermee overeen.

Het kan werken met alle soorten robotverificatie, dus u hoeft zich geen zorgen te maken als er plotseling een nieuwe captcha van Google opduikt, waarbij u enkele verkeersborden moet selecteren, enz.. RuCapcha-gebruikers kunnen het gemakkelijk binnen een paar minuten afhandelen. notulen.

Anders is de service vergelijkbaar met de anderen. Eenvoudige API, integratie met vrijwel elk programma en, belangrijker nog, - groot aantal artiesten. Veel mensen weten het vrije tijd, waardoor gewone gebruikers worden geholpen.

2Captcha

Engelstalige bron, zeer vergelijkbaar met RuCapcha. Gemiddelde prijs voor 1000 keer raden - een halve dollar. Op basis hiervan kunnen we tot de conclusie komen dat de prijzen hetzelfde zijn als op de GOS-markt.

2Captcha werkt prima met Google. In de regel zijn er Engelssprekende werknemers die zich puur specialiseren in Google-captcha's. Er kan een probleem optreden met Russische opties (van dezelfde Yandex). Maar ik denk dat daar ook een artiest zal zijn.

Anti-captcha

Anti Captcha is een moderne dienst (voorheen Antigate) die diensten levert voor het automatisch oplossen van symbolen. Het project heeft de meest vereenvoudigde API, een groot aantal artiesten en lage prijzen.

Relatief goedkope prijzen en hoogwaardige service zullen u zeker niet onverschillig laten. De site is beroemd op de Runet en daarom is de gemiddelde tijd om symbolen op te lossen slechts 10 - 15 seconden. Dat wil zeggen, je hoeft bijna helemaal niet te wachten totdat je captcha is opgelost.

Het project is geschikt voor herkenning direct in de browser. Een wederzijds nuttige optie die beginners kan helpen geld te verdienen en tegelijkertijd het werk van professionals gemakkelijker kan maken.

Welke dienst u kiest, is aan u om te beslissen. Elk heeft zijn eigen voor- en nadelen. Eén ding kan gezegd worden: elk project heeft al genoeg gewerkt lange tijd. U hoeft niet bang te zijn dat u wordt misleid, dat uw geld wordt gestolen of dat er virussen naar uw pc worden gestuurd. Dit zal zeker niet gebeuren, maar dat kan niet over anderen worden gezegd.

Wees voorzichtig bij het kiezen van een anti-captcha-service. Het RuNet staat vol met vervalsingen die fraude plegen. Als u plotseling besluit een goedkoper, onbekend project te proberen, kunt u het beste de recensies hierover raadplegen voordat u het gebruikt. Het is heel goed mogelijk dat dit een phishing-bron is die geld inzamelt van goedgelovige gebruikers.

Instructies voor het werken met services

Als u eenmaal voor een online anti-captcha-service heeft gekozen, moet u deze op de een of andere manier gebruiken. Meestal hebben dergelijke diensten dat wel speciale sleutels– u ontvangt ze in uw account, waarna u ze in een speciaal veld in de aanvraag invult. Als onderdeel van het materiaal van vandaag zal ik naar RuCapcha kijken.

Laten we naar het gedeelte 'API voor webmaster' gaan, waar we zoiets als dit zien.

Er is hier een veld “captcha KEY” – dat is wat we nodig hebben. We kopiëren deze sleutel en gaan naar de anti-captcha-instellingen van ons programma.

Vink het vakje “Gebruik anti-captcha-service” aan, selecteer de service in de vervolgkeuzelijst en steek de sleutel in. Klaar! Nu zal onze applicatie de captcha automatisch “oplossen” met behulp van de juiste service. Er is geen verdere actie van u vereist. Vul uw account op de site tijdig aan.

De instellingen in al deze programma's zijn vrijwel hetzelfde. En in Key Collector, en in SlovoYob, en in elke andere applicatie, zal alles er ongeveer uitzien zoals ik heb beschreven.

Conclusie

Nu weet u hoe u tekeninvoer kunt omzeilen en diverse controles“Ben jij geen robot?” gebruik van onlinediensten. Handig oefenen en eenvoudige implementatie. Je kunt captcha voor altijd uit je leven verwijderen door slechts af en toe je saldo aan te vullen. In de regel wordt er heel weinig geld aan dergelijke projecten uitgegeven, maar er is veel voordeel.

In dezelfde Key Collector kan deze captcha heel vaak crashen, waardoor u uw werk niet kunt doen. En dus hebben we het programma met de dienst verbonden, zijn we begonnen met het verzamelen van de semantische kern, en kunnen we verder met onze zaken. Hetzelfde geldt voor andere hulpprogramma's die constante invoer van tekens vereisen.

Op deze pagina zal ik je vertellen over een andere vorm van geld verdienen op internet: captcha invoeren voor geld. Ik heb een lijst opgesteld met de meest populaire sites om geld te verdienen door captcha in te voeren. Deze diensten kunnen ook nuttig zijn om mee te werken diverse programma's anti-captcha gebruiken.

Ik denk dat het geen zin heeft om te vertellen wat een captcha is :) we zien dit ding overal. Maar waarschijnlijk weten niet veel mensen wat ze hieraan verdienen.

Geld verdienen door captcha in te voeren

Nou ja, als je voor sommigen software (programma) hebt gebruikt automatische acties op internet is er meestal overal een menu-item voor het invoeren van de anti-captcha-sleutel.

Deze sleutel wordt tijdens de betaling door captcha-herkenningsdiensten uitgegeven. De sleutel ziet er meestal uit als een reeks letters en cijfers. Deze sleutel steek je in het programma en de dienst herkent je voor het bedrag dat je gestort hebt.

Dus wie denk je dat deze idioten in deze diensten herkent 🙂, een paar beheerders?.. En hoeveel zouden ze kunnen herkennen?.. Natuurlijk niet. Ze werven werknemers die zitten en puzzels oplossen en betaald krijgen.

Als u geïnteresseerd bent in dit soort inkomsten, kies dan een dienst voor uzelf, u kunt ze natuurlijk allemaal doen en aan de slag gaan.

Om naar de dienst te gaan, klikt u op de afbeelding .

Lijst met captcha-herkenningsdiensten

  1. De meest geavanceerde en multifunctionele.


  • Mogelijkheid om op uw telefoon op te lossen.
  • De kosten voor de klant bedragen vanaf 14 roebel. voor 1000 captcha's.
  • Betaling - kaarten, betalingssystemen.
  • Voor een werknemer - van 10 - 30 roebel. voor 1000 opgeloste captcha's, afhankelijk van het bedrag dat de klant inzet.
  • Opname naar WebMoney vanaf 30 roebel.

2. Een analoog van de eerste alleen in het Engels en in dollars.

  • De prijs van anti-captcha bedraagt ​​$0,5-1,2 per 1000 captcha's.
  • De kosten voor het oplossen van captcha bedragen ongeveer $ 0,4.
  • Opname naar WebMoney vanaf $ 0,5.

3. Nog een burgerlijke dienst om geld te verdienen met captcha.

  • Bij registratie dient u de code “0808” in te voeren.
  • Betaalt tussen $ 0,8 en 1,5 per oplossing.
  • Opname van $ 3 naar WebMoney.

4.

Deze browserextensie lost captcha automatisch op elke website op.

  • Voor Chroom.
  • Firefox.
  • Safari.

5.

  • De prijs voor de klant is vanaf 14 roebel. voor 1000 captcha's.
  • Veel manieren.
  • Voor een werknemer - van 1 - 10 kopeken.
  • Opname naar WebMoney vanaf 10 roebel.

6.

  • Vanaf $ 1 per 1000 captcha's.
  • Geen inkomen.

7.

  • Vanaf 0,7$ /1000.
  • Voor een werknemer - van 1 - 10 kopeken. Het werk wordt uitgevoerd op het domein - kolotibablo.com.

8.

  • Vanaf $ 1,29 voor 1000 captcha's.
  • Er zijn geen werknemers.

9.

Deze dienst biedt betaling voor het oplossen van captcha’s door derden.

Je installeert bijvoorbeeld een captcha op je website of links op internet.

Bekijk de video waarin u alle mogelijkheden vertelt.

Ik zal deze technieken demonstreren op een experimentele captcha. Als proefpersoon heb ik gekozen voor de captcha van een zekere Rafontes, die ik tegenkwam toen ik materiaal zocht voor het vorige artikel.

Voorbeeld van een gegenereerde captcha:

Ik moest een andere achtergrond gebruiken, omdat de auteur de originele niet heeft geplaatst (of ik kon deze niet vinden), maar dit heeft geen invloed op het resultaat.

Voorbewerken

Als gevolg van deze actie krijgen we het meest bebouwde gebied monochroom beeld met tekst.

Allereerst hebben we nodig scheid achtergrond van tekst. We analyseren de afbeelding en de code voor het genereren van afbeeldingen. De eerste fouten zijn duidelijk:

  • Gebruikt één kleur voor de gehele codetest
  • De kleur voor de tekst wordt gegenereerd in respectievelijk het bereik rand(0, 200), 0, rand(0, 200), voor R GB (het is voldoende om alleen kleuren in dit bereik te selecteren)
  • Achtergrond met veel verschillende kleuren (heeft geen invloed op de statistieken van de meest gebruikte kleur)

Op basis van deze feiten analyseren we nu de kleur van elke pixel in de hele afbeelding en selecteren we de meest gebruikte pixel. Het bleek 8C0074(in hex-vorm). We hebben er een kleine fout van gemaakt en deze kleur en de kleuren die er enigszins op lijken, geselecteerd, rekening houdend met de fout. We schilderen alle geselecteerde met zwart, de rest met wit. Het blijkt deze foto:

Zoals u kunt zien, hebben we de tekst vrijwel zonder vervorming ontvangen. Het is waar dat er nog maar één regel over is, maar we hebben een lastig trimalgoritme (meer hierover hieronder), waar deze regel geen invloed op heeft.

Nu selecteer het gebied met de code.
Omdat onze tekst de donkerste plek is, proberen we deze plek algoritmisch te vinden. Eerst definiëren we de horizontale grenzen:

Nu definiëren we de verticale grenzen:

De lijn is hier gebleven omdat dat gebied door de functie nog steeds als een zeer donker gebied wordt ervaren. Maar nu, op basis van deze grenzen, verfijnen we ze in een tweede cirkel, horizontaal:

Waarom is deze regel nu verwijderd, vraagt ​​u zich af? Omdat er nu minder “pixelkolommen” werden geanalyseerd, en bij analyse door het algoritme, bleek dat er in dit gebied te veel kolommen zijn met één zwarte pixel, en daarom is dit ruis. Laten we nu de verticale rand verduidelijken:

Omdat het definitiegebied kleiner is geworden, is die lijn die ruis was, onvoldoende geworden donkere vlek en werd volledig verwijderd. Dus we kregen een sectie met tekst. Natuurlijk selecteert dit algoritme soms niet helemaal correct gewenste gebied. Maar volgens mijn tests bedraagt ​​het aantal onjuiste definities niet meer dan 5%, wat eigenlijk kan worden verwaarloosd.

Segmentatie

Nu is het onze taak om de resulterende afbeelding op te splitsen in aparte ruimtes met symbolen.

Natuurlijk kunt u berekenen, zoeken naar karaktergrenzen, enz. Maar als u de generatiecode opnieuw analyseert, kunt u nog een fout ontdekken.

  • De ruimte tussen elk teken is altijd 15 pixels

Natuurlijk gaan ze vanwege de grootte van de symbolen soms verder dan vijftien pixels, dan moet je nog een of twee pixels van het aangrenzende symbool afbijten. Maar dit is niet kritisch. Laten we het beeld in het algemeen opsplitsen:

Zoals we kunnen zien, is er rond sommige symbolen een leeg gebied. Maar we hebben nog steeds het symbool zelf nodig. We gebruiken de bijsnijdfunctie voor elk teken en passen de resulterende afbeeldingen in rechthoeken van 17x27:

Het zijn deze afbeeldingen die individueel ter erkenning worden ingediend.

Herkenning

We zullen herkenning uitvoeren ZONDER nieuwerwetse neurale netwerken. Waarom? De beslissende rol werd gespeeld door het feit dat er geen enkele waardige bibliotheek voor Windows is. We zullen conventionele karaktermaskerherkenning gebruiken.

Om dit te doen, hebben wij toegang tot broncodes, genereer een aantal zwart-witafbeeldingen voor elk symbool met verschillende rotatiehoeken (van twee tot vier graden), en verschillende maten lettertype (van 20pt tot 30pt). Elke resulterende afbeelding past, zoals je al geraden had, in een rechthoek van 17x27. Elk resulterend beeld wordt een masker genoemd.

Voor elke letter heb ik 10-15 maskers gegenereerd. In principe is dit voldoende, maar als je het aantal maskers vergroot, kun je het herkenningspercentage verhogen.

Over het algemeen worden alle afbeeldingen die naar de invoer worden verzonden, vergeleken met maskers, en op basis hiervan bepaalt het algoritme welk masker het beste bij ons beeld past, en trekt een conclusie over welk personage op de afbeelding is geschreven.

Resultaten

Voor de test heb ik 200 karakters met veel ruis verkregen door een afbeelding te genereren en deze in symbolen te verdelen. En ik heb de test programmatisch uitgevoerd. En aandacht!
Resultaat: Successen: 172 Fouten: 28 Percentage: 86%
Dat wil zeggen dat elk teken in de captcha met succes wordt herkend met een waarschijnlijkheid van 86% !

Een beetje wiskunde. Laten we het waarschijnlijkheidspercentage van succesvolle captcha-herkenning berekenen:
Voor captcha's van 4 tekens: 0,86^4= 54%
Voor captcha's van 5 tekens: 0,86^5= 47%

Gemiddeld elke seconde De captcha wordt met succes herkend.

Houd er rekening mee dat elke captcha ongeveer 1 seconde duurt en dat er gemiddeld 2 seconden nodig zijn voor succesvolle herkenning. Dit is een zeer uitstekend resultaat.

Bronnen

Het script genereert en herkent de captcha zelf. Een voorbeeld van het script in de afbeelding, gegeven als voorbeeld door de auteur van de captcha:

(Afbeelding is klikbaar)

Waarschijnlijk moesten veel internetgebruikers, in ieder geval ooit, een captcha invoeren de gebruikelijke manier definities automatisch programma ben jij een robot of een mens? Het komt dus voor dat u een hele reeks afbeeldingen moet definiëren en dat u geen tijd wilt verspillen aan het invoeren van elk ervan.

    • Criteria voor het kiezen van een programma voor captcha-herkenning
    • Rol gratis programma's om captcha’s en hun verschillen te omzeilen

Als u met een dergelijk probleem wordt geconfronteerd, is er een oplossing: online services waarmee u niet hoeft uit te geven extra tijd captcha's invoeren. Het is geen geheim dat wanneer gebruikersherkenningsprogramma's worden verbeterd (die bepalen of het een persoon of een robot is), ook programma's die de beveiliging kunnen kraken en captcha automatisch kunnen herkennen, worden verbeterd. Er zijn dure programma's zoals OCR, die uitstekend werk leveren. Maar zie je, wie wil er veel geld uitgeven om foto's te herkennen? Sinds hopeloze situaties gebeurt niet, ook in dit geval wordt een oplossing gevonden - gratis onlineservice, en het is vermeldenswaard dat hij niet de enige is. Hieronder gaan we dieper in op de beschikbare opties.

Criteria voor het kiezen van een programma voor captcha-herkenning

Als u bezig bent met een activiteit waarbij constante herkenning van codes vereist is, is het zinvol om een ​​dure versie van het programma aan te schaffen; als u het betreffende proces niet zo vaak hoeft uit te voeren, moet u deze niet weggooien een grote som contant geld, voor zoiets gratis dienst, wat niet moeilijk te gebruiken is.

Er zijn tientallen van dergelijke services en de gebruiker heeft de mogelijkheid om ze allemaal te gebruiken, dus er zal genoeg zijn om uit te kiezen.

Om te doen juiste keuze Van een dergelijke verscheidenheid aan programma's moet rekening worden gehouden met de volgende aspecten:

  • Allereerst moet de dienst die u kiest volledig gratis zijn. Dit criterium is het belangrijkste, dus zorg ervoor dat er op dit gebied geen beperkingen zijn;
  • de geselecteerde service moet tekst in het Russisch kunnen "raden" zonder dit criterium is het onwaarschijnlijk dat u het proces van het invoeren van captcha's automatisch kunt maken;
  • het aantal captcha’s dat automatisch kan worden bepaald, moet onbeperkt zijn.

Bekijk de video - Hoe in te schakelen captcha-herkenning en via antigate, rucaptcha, captcha24, captchabot op DelphiXE5

Lijst met gratis programma's voor het omzeilen van captcha's en hun verschillen

Laten we dus eens kijken naar wat er beschikbaar is gratis opties, volgende in de rij online Google-service Schijf. Om het betreffende programma te kunnen gebruiken, moet u zich registreren; deze gang van zaken staat de gebruiker te wachten in bijna alle diensten met een soortgelijk doel. In dat geval. Als je ooit eerder hebt gemaakt. Bijvoorbeeld een blog op blogspot, dan moet je je registreren in dit geval zal niet nodig zijn. Het is hier mogelijk automatische invoer dergelijke captcha: PDF, JPG, PNG en GIF. Opgemerkt moet worden dat de grootte van de bestanden voor herkenning niet meer dan 2-3 MB mag zijn.

Onlinedienst OCR Convert. Hier hoeft de gebruiker zich niet te registreren. Captcha-formaten die worden ondersteund zijn de volgende: JPEG, GIF, BMP. Opgemerkt moet worden dat de opgeslagen bestanden de vorm hebben van URL-links, waarvan de extensie in TXT-formaat is. Hier kan de gebruiker tegelijkertijd 5-7 documenten uploaden.

i2OCR-service. Om captcha’s te kunnen herkennen, moet je je eerst registreren. Er kunnen niet meer dan 10 bestanden en documenten tegelijkertijd worden geüpload. Het gebruik van deze service is handig en eenvoudig. De formaten die het herkent zijn: GIF, PBM, PGM, PPM.

Eten verschillende manieren Voor CAPTCHA omzeilen, waarmee sites worden beveiligd. Ten eerste zijn er speciale diensten, die goedkope handarbeid gebruiken en aanbieden om 1000 captcha's op te lossen voor letterlijk $ 1. Als alternatief kun je proberen te schrijven intelligent systeem, die volgens bepaalde algoritmen zelf herkenning zal uitvoeren. Dit laatste kan nu worden geïmplementeerd met behulp van een speciaal hulpprogramma.

CAPTCHA oplossen

Het herkennen van CAPTCHA is meestal een niet-triviale taak. Het is noodzakelijk om veel verschillende filters op de afbeelding toe te passen om vervormingen en ruis te verwijderen, die ontwikkelaars willen gebruiken om de bescherming te versterken. Vaak is het nodig om een ​​leersysteem te implementeren dat hierop is gebaseerd neurale netwerken(dit is overigens niet zo moeilijk als het lijkt) om een ​​acceptabel resultaat te bereiken bij de geautomatiseerde oplossing van captcha's. Om te begrijpen waar ik het over heb, is het beter om het archief te openen en de prachtige artikelen “Cracking CAPTCHA: theorie en praktijk” te lezen. Laten we uitzoeken hoe captcha’s worden verbroken” en “Laten we kijken en herkennen. Captcha-filters hacken" van respectievelijk #135- en #126-nummers. Vandaag wil ik je vertellen over de ontwikkeling van TesserCap, die de auteur een universele CAPTCHA-oplosser noemt. Een merkwaardig iets, wat je ook zegt.

Kijk eerst naar TesserCap

Wat heeft de auteur van het programma gedaan? Hij keek naar hoe het probleem van het geautomatiseerd oplossen van CAPTCHA’s doorgaans wordt benaderd en probeerde deze ervaring in één tool samen te vatten. De auteur merkte op dat om ruis uit een afbeelding te verwijderen, dat wil zeggen om het moeilijkste probleem bij het herkennen van captcha's op te lossen, dezelfde filters het vaakst worden gebruikt. Het blijkt dat als je implementeert handig hulpmiddel, waarmee u filters op afbeeldingen kunt toepassen zonder complexe wiskundige transformaties, en dit kunt combineren met een OCR-systeem voor tekstherkenning, kunt u een volledig functioneel programma krijgen. Dit is in feite wat Gursev Singh Kalra van McAfee deed. Waarom was dit nodig? De auteur van het hulpprogramma besloot op deze manier te controleren hoe veilig captcha's van grote bronnen zijn. Voor het testen hebben we de internetsites geselecteerd die volgens de bekende statistische dienst het meest worden bezocht. Kandidaten voor deelname aan tests waren onder meer monsters als Wikipedia, eBay en de captcha-provider reCaptcha.

Indien overwogen in algemene schets Het werkingsprincipe van het programma is vrij eenvoudig. De originele captcha komt het beeldvoorverwerkingssysteem binnen, dat de captcha zuivert van alle ruis en vervorming en de resulterende afbeelding via een transportband overbrengt naar het OCR-systeem, dat de tekst erop probeert te herkennen. TesserCap heeft een interactieve grafische interface en heeft de volgende eigenschappen:

  1. Heeft universeel systeem beeldvoorbewerking, die voor elke individuele captcha kan worden geconfigureerd.
  2. Bevat de Tesseract-herkenningsengine, die tekst extraheert uit een vooraf geparseerde en voorbereide CAPTCHA-afbeelding.
  3. Ondersteunt het gebruik van verschillende coderingen in het herkenningssysteem.

Denken, algemene betekenis Het is duidelijk, dus ik raad u aan om te kijken hoe het eruit ziet. De veelzijdigheid van het hulpprogramma kon niet anders dan leiden tot een complicatie van de interface, waardoor het programmavenster tot een lichte verdoving kon leiden. Dus voordat u direct overgaat tot het herkennen van captcha's, raad ik u aan de interface en ingebouwde functionaliteit ervan te begrijpen.


Voorbewerking en extractie van afbeeldingen
tekst uit captcha

Over

We konden het niet laten om op zijn minst een paar woorden te zeggen over de auteur van het prachtige TesserCap-hulpprogramma. Zijn naam is Gursev Singh Kalra. Hij is hoofdadviseur voor de professionele servicesdivisie van Foundstone, onderdeel van McAfee. Gursev heeft gesproken op conferenties als ToorCon, NullCon en ClubHack. Hij is de auteur van de tools TesserCap en SSLSmart. Daarnaast ontwikkelde hij verschillende tools voor de interne behoeften van het bedrijf. Favoriete programmeertalen zijn Ruby, Ruby on Rails en C#. De professionele dienstendivisie van Foundstone®, waar hij werkt, biedt organisaties deskundige diensten en training, en biedt voortdurende en effectieve bescherming hun bezittingen te beschermen tegen de ernstigste bedreigingen. Het Professional Services-team bestaat uit erkende beveiligingsexperts en ontwikkelaars met uitgebreide ervaring in het werken met internationale bedrijven en overheidsinstanties.

Interface. Hoofdtabblad

Nadat we het programma hebben gestart, krijgen we een venster te zien met drie tabbladen: Hoofdmenu, Opties, Beeldvoorverwerking. Het hoofdtabblad bevat bedieningselementen die worden gebruikt om de CAPTCHA-afbeeldingstest te starten en te stoppen, teststatistieken te genereren (hoeveel zijn er geraden en hoeveel niet), te navigeren en een afbeelding te selecteren voor voorbewerking. Het URL-invoerveld (controle #1) moet de exacte URL bevatten die de webapplicatie gebruikt om captcha's op te halen. De URL kan worden verkregen door aan de rechterkant van de CAPTCHA-afbeelding te klikken, de paginacode te kopiëren of te bekijken en de URL te extraheren uit het src-attribuut van de afbeeldingstag ..site/common/rateit/captcha.asp?. Naast de adresregel staat een element dat het aantal captcha's specificeert dat moet worden gedownload om te testen. Omdat de applicatie slechts twaalf afbeeldingen tegelijk kan weergeven, biedt deze besturingselementen voor het pagina-voor-pagina bladeren door gedownloade captcha's. Zo kunnen we tijdens grootschalige tests door de gedownloade captcha’s bladeren en de resultaten van hun herkenning bekijken. Met de Start- en Stop-knoppen kunt u respectievelijk het testen starten en stoppen. Na het testen moet u de resultaten van de beeldherkenning evalueren en ze allemaal als juist of onjuist markeren. Welnu, de laatste, belangrijkste functie dient om elk beeld over te brengen naar een voorverwerkingssysteem, waarin een filter wordt ingesteld dat ruis en vervorming uit het beeld verwijdert. Om de afbeelding naar het voorbewerkingssysteem over te brengen, klikt u op de gewenste afbeelding klik met de rechtermuisknop muis en contextmenu selecteer Verzenden naar beeldpreprocessor.

Interface. Tabblad Opties

Het tabblad Opties bevat verschillende elementen bedieningselementen om TesserCap te configureren. Hier kunt u een OCR-systeem selecteren, webproxyparameters instellen, beeldomleiding en voorverwerking inschakelen, aangepaste HTTP-headers toevoegen en ook het tekenbereik voor het herkenningssysteem opgeven: cijfers, letters in kleine letters, brieven binnen hoofdletter, speciale karakters.

Nu over elke optie in meer detail. Allereerst kun je kiezen voor een OCR-systeem. Standaard is er maar één beschikbaar: Tesseract-ORC, dus u hoeft zich hier geen zorgen te maken over de keuze. Nog een heel interessante kans programma's - het selecteren van een reeks karakters. Laten we bijvoorbeeld een captcha van de site nemen - het is duidelijk dat deze geen enkele letter bevat, maar alleen uit cijfers bestaat. Dus waarom hebben we extra symbolen nodig die de waarschijnlijkheid alleen maar vergroten? onjuiste herkenning?. Maar wat als u hoofdletters kiest? Zal het programma een captcha kunnen herkennen die bestaat uit hoofdletters elke taal? Nee, dat kan hij niet. Het programma haalt een lijst met tekens die voor herkenning worden gebruikt configuratiebestanden, gelegen in \Program Files\Foundstone Free Tools\TesserCap 1.0\tessdata\configs. Laat me het uitleggen met een voorbeeld: als we de opties Numeriek en Kleine Letters selecteren, zal het programma toegang krijgen tot het lagere numerieke bestand, te beginnen met de tessedit-parameter verkoold witte lijst. Dit wordt gevolgd door een lijst met tekens die zullen worden gebruikt om de captcha op te lossen. Standaard bevatten bestanden alleen letters Latijns alfabet, dus om het Cyrillische alfabet te herkennen moet je de lijst met tekens vervangen of aanvullen.

Nu iets over waar het Http Request Headers-veld voor nodig is. Op sommige websites moet je bijvoorbeeld inloggen om de captcha te kunnen zien. Om ervoor te zorgen dat TesserCap toegang krijgt tot de captcha, moet het programma worden verzonden naar HTTP-verzoek headers zoals Accept, Cookie en Referrer, enz. Met behulp van een webproxy (Fiddler, Burp, Charles, WebScarab, Paros, enz.) kunt u de verzonden verzoekheaders onderscheppen en deze invoeren in het invoerveld Http Request Headers. Een andere optie die zeker van pas zal komen is Follow Redirects. Het punt is dat TesserCap standaard geen omleidingen volgt. Als de test-URL een omleiding moet volgen om de afbeelding te krijgen, moet u deze optie selecteren.

Welnu, er is nog één laatste optie over: het in-/uitschakelen van het beeldvoorverwerkingsmechanisme, dat we verder zullen overwegen. Standaard is de voorbewerking van afbeeldingen uitgeschakeld. Gebruikers configureren eerst de voorbewerkingsfilters voor afbeeldingen op basis van de CAPTCHA-afbeeldingen die worden getest en activeren vervolgens deze module. Alle CAPTCHA-afbeeldingen die worden geladen nadat u de optie Voorbewerking van afbeeldingen inschakelen hebt ingeschakeld, worden voorbewerkt en vervolgens naar het Tesseract OCR-systeem gestuurd voor tekstextractie.

Interface. Tabblad Voorbewerking van afbeeldingen

Welnu, we hebben het meest interessante tabblad bereikt. Dit is waar filters worden geconfigureerd om verschillende ruis en onscherpte uit captcha's te verwijderen, die de taak van het herkenningssysteem zoveel mogelijk proberen te compliceren. Het proces van het opzetten van een universeel filter is uiterst eenvoudig en bestaat uit negen stappen. In elke fase van de voorbewerking van de afbeelding worden wijzigingen in de afbeelding weergegeven. Bovendien beschikt de pagina over een verificatiecomponent waarmee u de juistheid van captcha-herkenning kunt beoordelen wanneer een filter wordt toegepast. Laten we elke fase in detail bekijken.

Fase 1. Kleurinversie

In dit stadium worden de pixelkleuren voor CAPTCHA-afbeeldingen omgekeerd. De onderstaande code laat zien hoe dit gebeurt:

For(elke pixel in CAPTCHA) ( if (invertRed is waar) nieuw rood = 255 – huidig ​​rood if (invertBlue is waar) nieuw blauw = 255 – huidig ​​blauw if (invertGreen is waar) nieuw groen = 255 – huidig ​​groen )

Het omkeren van een of meer kleuren opent vaak nieuwe mogelijkheden voor het valideren van de CAPTCHA-afbeelding die wordt getest.

Fase 2. Kleurverandering

Op deze stap U kunt de kleurcomponenten voor alle pixels in een afbeelding wijzigen. Elk numeriek veld kan 257 (-1 tot 255) mogelijke waarden bevatten. Voor de RGB-componenten van elke pixel worden, afhankelijk van de waarde in het veld, de volgende acties uitgevoerd:

  1. Als de waarde -1 is, verandert de overeenkomstige kleurcomponent niet.
  2. Als de waarde niet -1 is, veranderen alle gevonden componenten van de opgegeven kleur (rood, groen of blauw) volgens de waarde die in de velden is ingevoerd. Een waarde van 0 verwijdert de component, een waarde van 255 stelt de maximale intensiteit in, enz.

Fase 3: Grijswaarden (Grijswaarden)

In de derde stap worden alle afbeeldingen omgezet naar grijswaardenafbeeldingen. Dit is de enige verplichte stap in de beeldconversie die niet mag worden overgeslagen. Afhankelijk van de geselecteerde knop wordt een van de volgende handelingen uitgevoerd: volgende stappen, geassocieerd met de kleurcomponent van elke pixel:

  1. Gemiddeld -> (Rood + Groen + Blauw)/3.
  2. Menselijk -> (0,21 * Rood + 0,71 * Groen + 0,07 * Blauw).
  3. Gemiddelde van minimale en maximale kleurcomponenten -> (Minimaal (Rood + Groen + Blauw) + Maximaal (Rood + Groen + Blauw))/2.
  4. Minimum -> Minimum (Rood + Groen + Blauw).
  5. Maximaal -> Maximaal (Rood + Groen + Blauw).

Afhankelijk van de intensiteit en verdeling van de kleurcomponent van de CAPTCHA kan elk van deze filters het geëxtraheerde beeld verbeteren voor verdere verwerking.


Fase 4: Gladmaken en slijpen

Om het moeilijker te maken om tekst uit CAPTCHA-afbeeldingen te extraheren, wordt er ruis aan toegevoegd in de vorm van stippen van één en meerdere pixels, vreemde lijnen en ruimtelijke vervormingen. Wanneer een afbeelding vloeiender wordt gemaakt, neemt de willekeurige ruis toe, die vervolgens wordt verwijderd met behulp van bucket- of cutoff-filters. In het numerieke veld Passes moet u aangeven hoe vaak u het bijbehorende afbeeldingsmasker moet toepassen voordat u naar de volgende stap gaat. Laten we eens kijken naar de anti-aliasing- en verscherpingsfiltercomponenten. Er zijn twee typen afbeeldingsmaskers beschikbaar:

  1. Vaste maskers. Standaard heeft TesserCap zes van de meest populaire afbeeldingsmaskers. Deze maskers kunnen het beeld verzachten of verscherpen (Laplace-transformatie). Wijzigingen worden onmiddellijk weergegeven nadat u een masker hebt geselecteerd met de bijbehorende knoppen.
  2. Aangepaste afbeeldingsmaskers. De gebruiker kan ook aangepaste beeldverwerkingsmaskers instellen door waarden in de numerieke velden in te voeren en op de knop Masker opslaan te klikken. als de som van de coëfficiënten in deze vensters kleiner is dan nul, wordt er een fout gegenereerd en wordt het masker niet toegepast. Als u een vast masker selecteert, hoeft u de knop Masker opslaan niet te gebruiken.

Fase 5. Introductie van grijstinten

In dit stadium van de beeldverwerking kunnen de pixels gekleurd worden breed bereik grijstinten. Dit filter geeft de grijsschaalverdeling van 20 buckets/bereiken weer. Het percentage pixels gekleurd in grijstinten in het bereik van 0 tot 12 wordt gespecificeerd in bucket 0, het percentage pixels gekleurd in grijstinten in het bereik van 13 tot 25 wordt gespecificeerd in bucket 1, enz. De gebruiker kan kiezen een van de volgende opties voor elk grijswaardenbereik:

  1. Laat het zoals het is.
  2. Vervangen door wit.
  3. Vervangen door zwart.

Met deze opties heeft u controle verschillende bereiken grijstinten, en ook ruis verminderen/verwijderen door grijstinten te veranderen in wit of zwart.

Fase 6. De grenswaarde instellen

Dit filter brengt de afhankelijkheid van de grijsniveauwaarde van de frequentie van voorkomen in kaart en vraagt ​​u een grenswaarde te selecteren. Het werkingsprincipe van het cut-off filter wordt hieronder in pseudo-code weergegeven:

If (de grijswaardenwaarde van pixels<= Cutoff) pixel grayscale value = (0 OR 255) ->afhankelijk van welke optie is geselecteerd (<= или =>: stel elke pixel in met een waarde<=/=>Drempel op 0. Resterend op 255)

De grafiek toont de gedetailleerde verdeling van CAPTCHA-pixels op kleur en helpt ruis te verwijderen met behulp van grijsniveau-clipping.

Fase 7: Hakken

Na het toepassen van smoothing, clipping, bucket en andere filters kunnen CAPTCHA-afbeeldingen nog steeds ruis vertonen met punten van één of meerdere pixels, vreemde lijnen en ruimtelijke vervormingen. Het principe van het clippingfilter is als volgt: als het aantal aangrenzende pixels gekleurd in een bepaalde grijstint kleiner is dan de waarde in het getallenveld, kent het clippingfilter ze een waarde toe van 0 (zwart) of 255 (wit). naar keuze van de gebruiker. In dit geval wordt de CAPTCHA zowel horizontaal als verticaal geanalyseerd.

Stap 8: De randbreedte wijzigen

Volgens de auteur van het hulpprogramma heeft hij tijdens het eerste onderzoek en de ontwikkeling van TesserCap herhaaldelijk opgemerkt dat wanneer CAPTCHA-afbeeldingen een dikke randlijn hebben en de kleur ervan verschilt van de hoofd-CAPTCHA-achtergrond, sommige OCR-systemen de tekst niet kunnen herkennen. Dit filter ontworpen voor het verwerken en wijzigen van grenslijnen. Grenslijnen met een breedte gespecificeerd in het numerieke veld zijn zwart of wit gekleurd, afhankelijk van de keuze van de gebruiker.

Stap 9: Grijze inversie

Dit filter doorloopt elke pixel en vervangt de grijsniveauwaarde door een nieuwe, zoals weergegeven in de onderstaande pseudocode. Er wordt grijsinversie uitgevoerd om de afbeelding passend te maken kleurinstellingen OCR-systemen.

Voor (elke pixel in CAPTCHA) nieuwe grijswaardenwaarde = 255 – huidige grijswaardenwaarde

Stap 10: Captcha-herkenning controleren

Doel deze fase- breng het voorbewerkte CAPTCHA-beeld ter herkenning over naar het OCR-systeem. De knop Oplossen neemt de afbeelding na het grijswaardeninversiefilter, stuurt deze naar het OCR-systeem om de tekst te extraheren en geeft de geretourneerde tekst weer in grafische interface. Als de herkende tekst overeenkomt met de tekst op de captcha, betekent dit dat we het filter voor voorbewerking correct hebben ingesteld. Nu kunt u naar het tabblad Opties gaan en de optie Voorverwerking van afbeeldingen inschakelen inschakelen om alle daaropvolgende gedownloade captcha's te verwerken.

Herken captcha’s

Nou ja, misschien hebben we alle opties van dit hulpprogramma overwogen, en nu zou het leuk zijn om wat captcha te testen op kracht.


Resultaat van captcha-analysewebsite met voorlopig
beeldverwerking. Afgaande op de resultaten, het filter
kon het niet vinden

Laten we dus het hulpprogramma starten en naar de website van het tijdschrift gaan. We zien een lijst met het laatste nieuws, ga naar het eerste dat we tegenkomen en scroll naar de plek waar je je reactie kunt achterlaten. Ja, het is niet zo eenvoudig om een ​​opmerking toe te voegen (natuurlijk, anders hadden ze alles al lang geleden gespamd) - je moet een captcha invoeren. Laten we eens kijken of dit geautomatiseerd kan worden. Kopieer de URL van de afbeelding en plak deze in adresbalk TesserCap. We geven aan dat je 12 captcha’s moet downloaden en op Start moet klikken. Het programma laadde gehoorzaam 12 afbeeldingen en probeerde ze te herkennen. Helaas werden alle captcha's niet herkend, zoals blijkt uit de inscriptie -Failed- eronder, of werden ze verkeerd herkend. Over het algemeen is het sindsdien niet verrassend vreemd geluid en vervormingen werden niet verwijderd. Dit is wat we nu gaan doen. Klik met de rechtermuisknop op een van de 12 geladen afbeeldingen en stuur deze naar het voorverwerkingssysteem (Send To Image Preprocessor). Nadat we alle 12 captcha's zorgvuldig hebben onderzocht, zien we dat ze alleen cijfers bevatten, dus gaan we naar het tabblad Opties en geven aan dat alleen cijfers moeten worden herkend (tekenset = cijfers). Nu kunt u naar het tabblad Beeldvoorbewerking gaan om filters te configureren. Ik zal meteen zeggen dat ik na het spelen met de eerste drie filters ("Color Inversion", "Color Change", "Gray Gradation") geen enkel positief effect zag, dus liet ik alles daar standaard staan. Ik koos voor Smooth Mask 2 en stelde het aantal passages in op één. Ik heb het filter Grijswaardenbuckets overgeslagen en rechtstreeks naar de knipinstellingen gegaan. Ik heb de waarde 154 gekozen en aangegeven dat de pixels die kleiner zijn op 0 moeten worden gezet, en de pixels die groter zijn op 255. Om van de resterende pixels af te komen, heb ik hakken ingeschakeld en de randbreedte gewijzigd naar 10. Het had geen zin om het laatste filter in te schakelen, dus klikte ik meteen op Oplossen.

Op de captcha had ik het nummer 714945, maar het programma herkende dit als 711435. Dit is, zoals je kunt zien, volkomen onjuist. Hoe hard ik ook mijn best deed, uiteindelijk kon ik de captcha niet goed herkennen. Ik moest experimenteren met pastebin.com, die ik zonder problemen kon herkennen. Maar als u ijveriger en geduldiger bent en erin slaagt om captcha's correct herkend te krijgen vanaf de site, ga dan onmiddellijk naar het tabblad Opties en schakel Beeldvoorverwerking inschakelen in. Ga vervolgens naar Main en download, door op Start te klikken, een nieuwe batch captcha's, die nu door uw filter worden voorbewerkt. Nadat het programma is uitgevoerd, markeert u de correct/onjuist herkende captcha's (knoppen Markeren als juist/Markeren als onjuist). Vanaf nu kun je meekijken samenvattende statistieken op herkenning met behulp van Show Statistics. Over het algemeen is dit een soort rapport over de veiligheid van een bepaalde CAPTCHA. Als er een vraag is over het kiezen van een of andere oplossing, dan is het met de hulp van TesserCap heel goed mogelijk om uw eigen tests uit te voeren.

Resultaat van CAPTCHA-controle op populaire sites

Website en percentage erkende captcha’s:

  • Wikipedia > 20–30%
  • Ebay > 20-30%
  • reddit.com > 20-30%
  • CNBC > 50%
  • foodnetwork.com > 80-90%
  • dailymail.co.uk > 30%
  • megaupload.com > 80%
  • pastebin.com > 70-80%
  • cavenue.com > 80%

Conclusie

CAPTCHA-afbeeldingen zijn een van de meest effectieve mechanismen om webapplicaties te beschermen tegen het automatisch invullen van formulieren. Zwakke captcha's zullen echter bescherming kunnen bieden tegen willekeurige robots en zullen geen weerstand bieden aan gerichte pogingen om deze op te lossen. Net als cryptografische algoritmen worden CAPTCHA-afbeeldingen grondig getest en verstrekt hoog niveau veiligheid zijn het meest de beste manier bescherming. Op basis van de statistieken van de auteur van het programma heb ik reCaptcha gekozen voor mijn projecten en zal het aan al mijn vrienden aanbevelen - het bleek de meest resistente van de geteste programma's. Vergeet in ieder geval niet dat er op internet veel diensten zijn die een semi-geautomatiseerde CAPTCHA-oplossing aanbieden. Via een speciale API geef je een afbeelding door aan de dienst en na korte tijd retourneert deze een oplossing. Lost captcha op echte persoon(bijvoorbeeld uit China), waar je een aardige cent voor krijgt. Er is hier geen enkele bescherming meer. 🙂