BorderGame

Versione completa: Ask Bot
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Ormai mi conoscete tutti perchè sono sempre in paranoia e cerco di fare cose, utilizzando un termine sinonimo, peneose
Oggi pero voglio rendere un mio progetto open source (o meglio, cerco dei collaboratori con i quali decideremo insieme le modifiche da applicare al progetto), questo è proprio un bot per fare domande su ask.. il progetto è a buon punto mancano solo dei piccoli cicli che i miei studi da internet non mi fanno procedere avanti..e poi sono dall'idea che chi va da solo non fa mai veramente qualcosa di geniale.
Non ci sono bug (perchè l'ho testato molte volte) fino a questo punto tranne quei piccoli cicli da aggiungere per renderlo una macchina da guerra..

il progetto era iniziato per 2 motivi basilari:
1. Mi piace rompere le scatole
2. Ask mi ha rotto l'askafala Big Grin

Il progetto quando l'ho creato non sapendo che nome dare l'ho chiamato ABK (Ask Bot by Koxy) anche se a metà progetto ho trovato un nome molto più figo che pero ancora non ho cambiato, il nome in questione e visto che puo andare sul volgare lo metto sotto spoiler per quelle persone sensibili
Spoiler:
Askassammuaminchia (In siciliano ma credo si capisca lo stesso il significato)

Per chi è interessato al progetto mi mandi un mp..
NB.
1.Il progetto è in vb6 (la pena, vero?)
2.Avevo testato il webkitbrowser (il browser di google in vb, ma servendomi alcune funzioni ho dovuto usare per forza di cose il classico webbrowser come un noob aspetto)
3.Come ben sapete ask ha quei maledetti captcha che si attivano (da utente non registrato) ogni 11 domande circa, quindi uno dei veri problemi è il rilevamento dell'apparizione del captcha, quindi ho pensato a 2 opzioni: o lo si evita imponendo al programma di aspettare un tot secondi (ma riapparira subito dopo 3-4 domande) o una possibile integrazione ocr per la lettura dei caratteri e la scrittura di quest'ultimi nella *tb*

Se ci sono domande, dubbi, o qualsiasi domanda sul programma sono libero di rispondere.
1) vb6 fai sul serio?
2) webbrowser fai sul serio?

[vb.net]
usa webclient per ottenere source e regex per splittarlo
usa httpwebrequest e response per inviare dati al sito ask (es. inviare il captcha o un messaggio)

comunque inviami il source così do un'occhiata
anche in vb6 ci sono comandi che ti permettono di importare il documento (ma devi utilizzare comunque il browser) ora ti mando il progetto

edit.
mandato link dropbox
===========================
Puoi spiegarmi lo scopo preciso ? :| E' un bot che deve spammarlo su ask, o deve solo fare domande comuni ma dal desktop ? :|
@[☞ ~SilverNik] In pratica dovrebbe essere uno spammer di domande

@[тυттσмαχ] Nel link hai anche un paio di domande, te le ho aggiunte in cartella
sto provando con httpwebrequest ma mi da questa pagina quando invia :
İmage

questo è il codice

Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function

    Private Function 
Domanda(ByVal qustion As String) As String
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")
        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest DirectCast(HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create"), HttpWebRequest)
        
Request.KeepAlive True
        Request
.Method "POST"
        
Request.ContentType "application/x-www-form-urlencoded"
        
Request.Referer "http://ask.fm/AlessandroAfo"
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"

        
Request.Headers.Add("Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3")
        
Request.Host "ask.fm"

        
Request.ContentLength bytes.Length

        Using 
[Stream] As Stream Request.GetRequestStream
            
[Stream].Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using Stream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(Stream)
                    Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using

    End 
Function 
(16-08-2013 03:19 PM)тυттσмαχ Ha scritto: [ -> ]sto provando con httpwebrequest ma mi da questa pagina quando invia :
İmage

questo è il codice
Spoiler:
Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function

    Private Function 
Domanda(ByVal qustion As String) As String
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")
        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest DirectCast(HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create"), HttpWebRequest)
        
Request.KeepAlive True
        Request
.Method "POST"
        
Request.ContentType "application/x-www-form-urlencoded"
        
Request.Referer "http://ask.fm/AlessandroAfo"
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"

        
Request.Headers.Add("Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3")
        
Request.Host "ask.fm"

        
Request.ContentLength bytes.Length

        Using 
[Stream] As Stream Request.GetRequestStream
            
[Stream].Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using Stream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(Stream)
                    Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using

    End 
Function 

Ma sempre sullo stesso progetto? se si:
Hai messo nella tb l'indirizzo web della pagina che devi "bersagliare"?
o comunque non so cosa tu stia facendo perchè non conosco il codice httpwebrequest perchè da cio che ho potuto studiare online questo lo sconosco come anche i metodi per bypassare il captcha (anche se pensavo di farlo proxare continuamente cosi ask vedendo sempre un nuovo ip non avrebbe mai chiesto il captcha + una maggiore sicurezza nel rompere le scatole a qualcuno (anche se poi ho paura che possa esser venuto usato male perchè potrebbero compilare una lista di insulti e mandarli, e questo D: non lo vorrei proprio ))

@[тυттσмαχ]

ps. A progetto avviato sicuramente hai visto che mancava un "label1000" era una label testing che avevo cancellato prima di passarvelo (ma è soltanto in una riga)
no ho creato un nuovo progetto
non so perchè non funziona
(16-08-2013 06:04 PM)тυттσмαχ Ha scritto: [ -> ]no ho creato un nuovo progetto
non so perchè non funziona

il mio si, è fatto da un noob ma funge XD devo evitare solo il captcha e sistemare altre 2 cagate e poi è perfetto, almeno credo

comunque, credo, che quella pagina appaia di solito quando internet non funziona bene e non riesce a caricare il tutto bene (in poche parole è come se non abbia caricato i file css, no?)
non centra il caricamento della pagina
non invia la domanda sto chiedendo un po in giro
ora provo inserendo i cookie magari è quell0(ma ne dubito)

___________________________________________-

@CarlKox come cavolo si tagga?
ci sono riuscito Smile
İmage


impiega 1.5 sec per inviare una domanda


Codice PHP:
Private Function GetToken() As String
        Dim Token 
As String String.Empty
        
Using Web As New WebClient
            Dim source 
As String Web.DownloadString(String.Format("http://ask.fm/AlessandroAfo"Name))
            
Dim Regex As New Regex("(?=var AUTH_TOKEN).*")
            
Token Regex.Matches(source)(0).Value.Replace("var AUTH_TOKEN = """"").Replace(""";""")
        
End Using
        
Return Token
    End 
Function
   Private Function 
Domanda(ByVal qustion As String) As String
       
        Dim token 
As String GetToken()
        If 
String.IsNullOrEmpty(tokenThen Throw New Exception("Token vuoto")

        
Dim data As String String.Format("authenticity_token={0}&question%5Bquestion_text%5D={1}%3F&question%5Bforce_anonymous%5D=&authenticity_token={0}"tokenqustion)
        
Dim bytes() As Byte = New UTF8Encoding().GetBytes(data)

        
Dim Request As HttpWebRequest HttpWebRequest.Create("http://ask.fm/AlessandroAfo/questions/create")
        
Request.UserAgent "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
        
Request.Headers("Accept-Language") = "it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3"
        
Request.AllowAutoRedirect True
        Request
.ContentLength bytes.Length
        Request
.Referer "http://ask.fm/AlessandroAfo"
        
Request.KeepAlive True
        Request
.Method "POST"

        
Using Post As Stream Request.GetRequestStream
            Post
.Write(bytes0bytes.Length)
        
End Using

        Using Response 
As HttpWebResponse Request.GetResponse
            Using HttpStream 
As Stream Response.GetResponseStream
                Using Reader 
As New StreamReader(HttpStream)
                  Return 
Reader.ReadToEnd
                End Using
            End Using
        End Using
    End 
Function 
e il captcha cosi lo eviti? dopo 10-13 domande ti appare

@[тυттσмαχ]
nessun captcha è bypassabile
l'unico modo è inserire un beep quando appare il captcha e farlo inserire manualmente
(17-08-2013 01:01 PM)тυттσмαχ Ha scritto: [ -> ]nessun captcha è bypassabile
l'unico modo è inserire un beep quando appare il captcha e farlo inserire manualmente

con questo tuo sistema riesci ad evitare il captcha oppure comunque sia rompe le scatole?
credo che c'è sempre il captcha prova
---edit

devi per forza usare un OCR o MODI(microsft office document image )
(17-08-2013 03:54 PM)тυттσмαχ Ha scritto: [ -> ]credo che c'è sempre il captcha prova
---edit

devi per forza usare un OCR o MODI(microsft office document image )

quindi per ora posso lasciare il tutto in vb6 e devo trovare il modo di evitare sto problema del captcha, dimmi una cosa, se io faccio proxare ad ogni domanda l'utente, il captcha dovrebbe essere sempre evitato, perchè cambiando ip ask crederà (perchè i computer è risaputo pensano) che sia un altra persona e quindi non dovrebbe chiedere il captcha...
logicamente è giusto, e in pratica? è una cosa fattibile @[тυттσмαχ]?
certo che è fattibile ogni 11 domande cambi proxy
(18-08-2013 09:44 AM)тυттσмαχ Ha scritto: [ -> ]certo che è fattibile ogni 11 domande cambi proxy

e come posso fare per implementare i proxy? io non ne ho la piu pallida idea, avevo provato con quei siti che da online stesso ti cambiano l'ip ma facendo cio non so perchè la domanda non veniva effettuata
devi inserire un proxy nel request così
Request.proxy(new webproxy("ip","porta")
URL di riferimento