publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
18 skomentuj »

TAGI: megaupload , ocr , greasemonkey , captcha , javascript

2009-01-24 19:28  |  Adam Golański

Sieć neuronowa w skrypcie GreaseMonkeya łamie kody CAPTCHA

Sieć neuronowa w skrypcie GreaseMonkeya łamie kody CAPTCHA

W Sieci pojawił się niezwykle interesujący skrypt do firefoksowego GreaseMonkeya. Potrafi on automatycznie rozwiązywać kody CAPTCHA stosowane przez serwis Megaupload.

Stworzony przez programistę o nicku ShaunF skrypt pozwala na łatwe umieszczanie plików w Megaupload bez konieczności udowadaniania, że nie jest się wielbłą... to znaczy botem. Jednak w skrypcie fascynuje nie tyle jego funkcjonalność (bo akurat kody CAPTCHA używane przez Megaupload nie są jakoś szczególnie trudne), ale napisana w czystym JavaScripcie sieć neuronowa, która w bardzo elegancki sposób radzi sobie z OCR-em pozyskanego obrazka.

Dokładną analizę kodu zamieścił na swoim blogu sam John Resig, autor biblioteki jQuery i znany ewangelista Mozilli. Opisuje on poszczególne kroki działania skryptu następująco:

1. Za pomocą API getImageData z HTML 5 Canvas, z obrazka CAPTCHA pobierane są dane o poszczególnych pikselach i kopiowane na kanwę. Później obrazek zostaje przekonwertowany do skali szarości, poszczególne litery zostają z niego wyizolowane, poddane redukcji szumów i wykrywaniu krawędzi.

2. Napisana w JavaScripcie implementacja sieci neuronowej otrzymuje dane z kanwy, a następnie próbuje „zgadnąć” literę. Sieć otrzymuje serię wstępnie przeliczonych wartości, które pozwalają ustalić wstępne wagi poszczególnych połączeń.

3. Po uruchomieniu sieci bierze ona 64 boolowskie wartości zebrane z macierzy zawierającej wyekstrahowane znaki i porównuje je z wstępnie przeliczonymi wartościami poszczególnych liter alfabetu, przyznając im odpowiednie wyniki. W efekcie uzyskujemy serię przyporządkowań między badanym znakiem a procentowo wyrażonym podobieństwem do danej litery (np. U - 90%, O - 70%, I - 5%).

W ten sposób po sprawdzeniu wszystkich znaków generowane są litery użyte w kodzie CAPTCHA.

Oczywiście szanse na to, by taki algorytm poradził sobie obecnie z bardziej skomplikowanymi CAPTCHA są niewielkie, ale... to dopiero początek.

Skrypt do GreaseMonkeya można pobrać ze strony userscripts.org/scripts/show/38736.

Źródło: ejohn.org, userscripts.org

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
18 skomentuj »

Komentarze

  • zergswarm

    #1 zergswarm 2009-01-24 20:37:05 1

    Nie można zaprzeczyć, że skrypt jest fajny, ale w tym przypadku z dużej chmury mały deszcz - captcha na megaupload jest po prostu banalna. "Sieć neuronowa" w przypadku tej captchy stanowi jeden perceptron. Pozatym są softy typu JDownloader, a tam skrypty do łamania captcha istnieją nie tylko dla Megaupload ale dla dziesiątek innych serwisów.

    IP: 195.117.128.[...] Opera/9.63 (Windows NT 5.1; U; pl) Presto/2.1.1

  • frustrat_językowy
  • m_gol

    #3 m_gol 2009-01-25 06:28:31 4

    @ frustrat_językowy

    A co niby jest nie tak w tłumaczeniu "boolowskie wartości"? Jak byś to przetłumaczył? Bo przecież nie "binarne wartości", bo nie do końca o to chodzi. Itd.

    Czepialstwo na maksa...

    IP: 82.210.189.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • aaa
  • eimi

    #5 eimi® 2009-01-25 08:49:39 3

    Chodziłeś panie frustrat na jakiekolwiek zajęcia z logiki czy algebry? Wartość boole'owska - "jest krawędź/nie ma krawędzi". Binarne wartości to sobie zostaw do programowania lampowych komputerów :>.

    Analogicznie - algebry boole'a to nie są algebry binarne itp. etc.

    IP: 88.156.95.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • waspnation

    #6 waspnation 2009-01-25 09:34:49 3

    eimi ma racje

    IP: 78.133.248.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5

  • finish_him

    #7 finish_him 2009-01-25 12:43:12 0

    taa, za wiki:

    "Dane binarne (ang. binary data) — dane zapisane w postaci dwójkowej, tzn. reprezentowane jako ciąg zer i jedynek."

    ale jest też słowo "logiczne"...

    hm.. tylko czemu prawda/fałsz porównywane są z literami..?

    IP: 83.20.79.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5

  • Errad
  • eimi

    #9 eimi® 2009-01-25 15:09:26 0

    Errad, płótno w j. polskim jest wieloznacznym pojęciem. Natomiast kanwa odsyła od razu do skojarzeń z malarstwem - i oryginalnie rozszerzenie HTML-a canvas to właśnie kanwa. Malarze tak zresztą często mówią, nie widzę problemu. Jeśli ktoś się uczył łaciny, to kojarzy źródłosłów zresztą - canavasium... cannabis. :)

    Istnieją - wyobraźcie to sobie - języki poza angielskim (który jest zresztą bękarckim potomkiem łaciny, francuskiego i języków germańskich).

    IP: 88.156.95.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • darek@
  • eimi

    #11 eimi® 2009-01-26 08:43:18 0

    @darek:

    John Resig w oryginale użył sformułowań: The captcha is copied into the canvas. (...). The canvas is then broken apart.

    Naprawdę, wykorzystanie wywodzących się z łaciny słów jest w języku polskim równie dobre jak w angielskim. I o ile wiemy, ze poruszamy się w zakresie tematycznym HTML-a 5, to słówko kanwa nie powinno nikogo zdezorientować.

    Zresztą napiszę w tej sprawie dziś do wyższej instancji, naszego korektora, który rozsądzi, czy takie użycie jest dopuszczalne.

    IP: 88.156.95.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • GDR!
  • eimi

    #13 eimi® 2009-01-26 11:55:02 1

    Widzę że dziś dzień grammar nazi :). Dobrze, panowie... Krytykować, mniej bądź bardziej udolnie każdy potrafi. A macie jakieś lepsze, konstruktywne propozycje?

    Już wkrótce HTML 5 się na tyle rozpowszechni, że podobnie jak zaczęliśmy mówić o "tabelkach" mając na myśli element

    , to będziemy sobie mówili o "kanwach" mając na myśli element .

    Wolicie "płótno"? A może konopie? :)

    IP: 88.156.95.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • GDR!
  • eimi

    #15 eimi® 2009-01-26 14:31:53 0

    Mam nadzieję zatem, że nie robisz już swoich stron w tables, tylko używasz do tego ładnie box models w cascading sheetsach.

    IP: 83.4.58.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121621 Ubuntu/8.04 (hardy) Firefox/3.0.5

  • zergswarm

    #16 zergswarm 2009-02-05 16:54:59 0

    Lol, słuszny point eimi :). Ja z kolei czepię się co do HTML5, a konkretnie sprzeciwię się wykorzystywaniu wyrazów HTML5 i "wkrótce" w jednym zdaniu ;). HTML5 ma pojawić się w 2022 roku: http://ishtml5readyyet.com/ - złotą rakietnicę temu kto jest w stanie powiedzieć jakie technologie będą wtedy najbardziej trendi i na topie.

    IP: 83.7.215.[...] Opera/9.61 (X11; Linux i686; U; en) Presto/2.1.1

  • Kef

    #17 Kef 2009-03-22 13:16:40 0

    A ja czytając te wypowiedzi .

    Stwierdzę że, emi to jak by ci to powiedzieć , hmm..

    powiem po prostu , Zajeżdża mi tu omnibus mem.

    Na każdy wpis kogoś kto się sprzeciwia temu co napisałeś

    Choć nikt nie powiedział że nie masz racji ;P

    To ty pokazujesz jaki to wyuczony jesteś

    Mam nadzieje ze z tym nie będziesz miał problemu.

    Choć spodziewam się jak z całej tej rozmowy wynika

    Komentarza Hehh , którego wcale być nie musi ;)

    Ja się prawie wcale na tym nie znam

    i nie bede się w tym temacie udzielał

    ale mnie boli takie podejscie, jak twoje ;/

    IP: 87.205.144.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7

  • yele

    #18 yele 2011-12-25 02:45:42 0

    captcha jest czasem trudne dla zwykłego uzytkownika, a co dopiero bota

    IP: 78.8.173.[...] Mozilla/5.0 (Windows NT 5.1; rv:9.0) Gecko/20100101 Firefox/9.0

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł