Łamacz kodów z obrazka

0

Witam, mam takie pytanie, czy zna ktoś jakąś bibliotekę, albo program, która potrafiłaby odczytać kody z obrazków, np. z takiego:

http://img171.imageshack.us/img171/5484/runner.jpg

Jak dotąd, to znalazłem tylko ten program, ale wywala dziwne błędy:
http://jocr.sourceforge.net/

Niestety w aplikacji, którą chciałbym rozprowadzać nie mogę sobie na pojawianie się errorów pozwolić.

0

Skoro sa kody, to po to by uniemozliwic uzywanie czyjegos kodu przez automaty...

Szczerze, to jak juz o lamanie chodzi to sam osobiscie bym z checia polamal palce osobie, ktora w automatyczny sposob chce lamac zabezpieczenia z mojej publicznej darmowej strony.... pomijajac to, ze z reguly uzywa sie tego do spamowania roznych forum.

0

A czy ja wyglądam na spamera, zwyczajnie zajmuję się pisaniem botów do różnych programów, gier online, na fora (nie po to by spamować, tylko po to, bo poinformować np. dźwiękiem że przyszła nowa wiadomość).

Jak na razie, to zwyczajnie kod wyświetlał się userowi i musiał on go przepisać, ale na niektórych stronach pojawiają się one stanowczo za często i nikomu nie chce się wpisywać kodu co 5 minut.

0

Tak, ciągle kolega opowiada niestworzone rzeczy o chakierach, teraz captche dla wygody chce łamać? Że się to kupy nie trzyma to chyba widać. Nie, nie wyglądasz na spamera, wygląda na kretyna.

0

Jak wam tak bardzo zależy, to łamacz potrzebny jest mi do projektu:
https://sourceforge.net/projects/moneybot/

A dokładniej to do strony http://www.affablesite.com/pages/index.php

Tak swoją drogą, to możecie sobie program pobrać i przetestować go.

0

Czy mi się zdaje czy chcemy nielegalne rzeczy robić? Klikanie w opłacane bannery?

0

Przeczytałem regulamin i botowanie nie jest zabronione :)

0

Hubert, na jakich klasach bazujesz? polecił bys jakis tutorial do pisania botów?

0
hubert_nnn napisał(a)

Przeczytałem regulamin i botowanie nie jest zabronione :)

"Should any instances of fraud, system abuse, or any type of activity deemed to be inappropriate or illegal by affablesite.com be detected it may result in member termination and possible legal action."

0

W większości opieram się na klasie, którą sam rozwijam, podstawową wersję znajdziesz tu: http://4programmers.net/Forum/522018?h=#id522018

A taką, która jest dostosowana do konkretnego projektu to np.:

public class Polaczenie
        {
               
                HttpWebRequest strona = null;
                public CookieContainer cookies = new CookieContainer();
               
                private string connParam = "Connection: keep-alive";
                private string uagentParam = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4";
               
                string host;
                public Polaczenie(string host)
                {
                      this.host = host;
                       
                }
               
               
                public StreamReader SendPost(String addres, String PostValues){
                        strona = (HttpWebRequest)WebRequest.Create(addres);
                        strona.KeepAlive=true;
                        strona.Method = WebRequestMethods.Http.Post;
                        strona.ContentType = "application/x-www-form-urlencoded";
                        strona.ContentLength = PostValues.Length+connParam.Length+uagentParam.Length+6;
                        strona.CookieContainer= cookies;
                       
                       
                        StreamWriter requestStream = new StreamWriter(strona.GetRequestStream());
                       
                        try{
                                requestStream.WriteLine(PostValues);
                                requestStream.WriteLine(uagentParam);
                                requestStream.WriteLine(connParam);
                                requestStream.Flush();
                               
                        }catch(Exception ex){
                                Console.WriteLine(ex);
                        }
                        
                        try{
                                HttpWebResponse odpowiedz = (HttpWebResponse)strona.GetResponse();
                                ResetCookies(odpowiedz.Cookies);
                                StreamReader responseStream = new StreamReader(odpowiedz.GetResponseStream());
                                
                                return responseStream;
                               
                        }catch(Exception ex){
                                Console.WriteLine(ex);
                                return null;
                        }
                }
                private string autousername = "deleted";
                private string autopassword = "deleted";
                public string phpsessid = "deleted";
                
                private void ResetCookies(CookieCollection cc){
                	foreach(Cookie c in cc){
                    	if(c.Name == "autousername"){
                			if(c.Value == "deleted"){
                				c.Value = autousername;
                			}else{
                				autousername = c.Value;
                			}
                		}
                        if(c.Name == "autopassword"){
                            if(c.Value == "deleted"){
                				c.Value = autopassword;
                			}else{
                				autopassword = c.Value;
                			}
                        }
                		if(c.Name == "PHPSESSID"){
                            if(c.Value == "deleted"){
                				c.Value = phpsessid;
                			}else{
                				phpsessid = c.Value;
                			}
                        }
                        //Console.WriteLine(c.Name+"="+c.Value);
                	}
                	cookies.Add(new Uri("http://"+host), new Cookie("autousername", autousername));
                	cookies.Add(new Uri("http://"+host), new Cookie("autopassword", autopassword));
                }
                
                public bool IsLoggedIn(){
                	return autousername!="deleted"&&autopassword!="deleted";
                }
                
                public StreamReader SendGet(string addres){
                		strona = (HttpWebRequest)WebRequest.Create(addres);
                		strona.KeepAlive=true;
                        strona.Method = WebRequestMethods.Http.Get;
                        //strona.ContentType = "application/x-www-form-urlencoded";
                        strona.CookieContainer = cookies;
                       
                        
                       
                        try{    
                        	HttpWebResponse odpowiedz = (HttpWebResponse)strona.GetResponse(); 
                        	
                        	ResetCookies(odpowiedz.Cookies);
                            
                        	StreamReader responseStream = new StreamReader(odpowiedz.GetResponseStream());
                            return responseStream;
                               
                        }catch(Exception ex){
                                Console.WriteLine(ex);
                                return null;
                        }
                }
        }

Kiedyś gdzieś znalazłem prostą funkcję i teraz ją zwyczajnie rozwijam, co do botów, to po użyciu SendPost() Musisz wywołać funkcję Close, albo wykorzystać strumień, gdy zapomnisz o Close, to program się zawiesi. Najczęściej bedziesz wywoływał ją w sposób:
SendPost(url, postvalues).Close();
albo
SendPost(url, postvalues).ReadToEnd();

Jakiś tutorial: Szukaj na stronach powtarzających się fragmentów i na nich opieraj swoje wyrażenia regularne.
Np. Linki

runner.php?PA=113
runner.php?PA=123
runner.php?PA=513

to w wyrażeniu wykorzystaj fragment
runner.php?PA=
np. tak :
new Regex("runner\\.php\\?PA=\\d{1,6}")

Nie polecam stosowania kontrolki WebBrowser, bo choć to najprostsze rozwiązanie, to powoduje dodatkowe problemy, np. wyświetla popupy, albo odtwarza dźwięki.

0
Rev.pl napisał(a)

"Should any instances of fraud, system abuse, or any type of activity deemed to be inappropriate or illegal by affablesite.com be detected it may result in member termination and possible legal action."

PL:

Każde wystąpienie oszustwa, naduzycia systemu, albo jakiegoś rodzaju aktywności uważanej za niewłaściwe lub nielegalne przez affablesite.com będzie wykryte i poskutkuje wyrzuceniem użytkownika i mozliwym działaniem prawnym

I gdzie tu mowa o botach?

A tak przy okazji temat dotyczyć miał sposobu odczytania kodu z obrazka, a nie tego, czy moje boty są legalne, czy nie. O tym zadecydują uzytkownicy, którzy aby korzystać z bota i tak będą musieli samodzielnie się zarejestrować, czyli przeczytać i zaakceptować regulamin.

0

Zwykłe captcha możesz łamać za pomocą sprawdzania czy na danym obrazku są literki(musiałbyś je ładnie obrobić i wrzucić do osobnych plików), podsuwam jedynie pomysł ;)

0
hubert_nnn napisał(a)
Rev.pl napisał(a)

"Should any instances of fraud, system abuse, or any type of activity deemed to be inappropriate or illegal by affablesite.com be detected it may result in member termination and possible legal action."

PL:

Każde wystąpienie oszustwa, naduzycia systemu, albo jakiegoś rodzaju aktywności uważanej za niewłaściwe lub nielegalne przez affablesite.com będzie wykryte i poskutkuje wyrzuceniem użytkownika i mozliwym działaniem prawnym

I gdzie tu mowa o botach?

[rotfl] [rotfl] [rotfl]
Jakbym miał 12 lat, to bym Ci odpowiedział: "w dupie", teraz mogę się tylko śmiać z politowaniem ;)

0
hubert_nnn napisał(a)

PL:Każde wystąpienie oszustwa, naduzycia systemu, albo jakiegoś rodzaju aktywności uważanej za niewłaściwe lub nielegalne przez affablesite.com będzie wykryte i poskutkuje wyrzuceniem użytkownika i mozliwym działaniem prawnym

I gdzie tu mowa o botach?

Tutaj:

Każde wystąpienie oszustwa, naduzycia systemu, albo jakiegoś rodzaju aktywności uważanej za niewłaściwe lub nielegalne przez affablesite.com będzie wykryte i poskutkuje wyrzuceniem użytkownika i mozliwym działaniem prawnym
</quote>
Nie napiszą Ci, że "nie wolno używać botów", ale to mają na myśli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1