View Full Version : Bot in C
Lupin_IV
08-02-2011, 15:27
Salve a tutti sono nuovo del forum e mi complimento...
Ho un problema però, sono un tecnico informatico e lavoro in un negozio, mi trovo spesso a configurare un certo tipo di router, quindi mi trovo a fare sempre la stessa procedura, andare sempre allo stesso indirizzo e cosi via. Siccome ho qualche conoscenza del C vorrei creare un bot che automatizzi il tutto, quindi vada all'indirizzo 192.168.1.1, inserisca nome utente e pw cliccando sul pulsante entra e proceda con la configurazione. Ho gia cercato su internet ma ho trovato solo come accedere a file o come crearli, ma non ho trovato nulla riguardo a come accedere a siti e come interaggire con loro, o meglio ho trovato qualcosa riguardo le librerie msdn ma io uso ubuntu quindi non mi servono a granchè.
Grazie in anticipo
Con un po' di VBScript si dovrebbe poter fare, simulando di fatto la pressione dei tasti.
Lupin_IV
08-02-2011, 15:44
beh per la pressioni dei tasti non c'è problema con:
printf("\t"); (ovviamente con la finestra di navigazione attiva)
credo di poter simulare la pressione del tasto tab e quindi scorrere all'interno dei contenuti per poi scriverci dentro sempre con printf, l'idea e buona ma un pò troppo poco professionale
no, non puoi farlo in maniera così semplice
piuttosto ti conviene farti qualche macro con AutoHotkey
Lupin_IV
08-02-2011, 15:55
Si ma poi devo cmq stare fisicamente io davanti al computer ed inserire cmq io i dati, tanto vale che lo faccio come faccio sempre
puoi farlo, ma chiaramente non cercando di interfacciarti con il pannello web bensì accedendo al router tramite telnet/ssh e poi vai di Expect (http://www.nist.gov/el/msid/expect.cfm)
beh per la pressioni dei tasti non c'è problema con:
printf("\t"); (ovviamente con la finestra di navigazione attiva)
credo di poter simulare la pressione del tasto tab e quindi scorrere all'interno dei contenuti per poi scriverci dentro sempre con printf, l'idea e buona ma un pò troppo poco professionale
No così non funzionerebbe, dovresti usare VBScript con la funzione SendKeys:
http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.85).aspx
Ripeto che in questo caso non c'è bisogno che stai te davanti al PC, perché VBScript emula la pressione dei tasti sulla tastiera ;).
Non capisco perché vuoi complicarti la vita cercando di farlo in C... anche se presumo che ci sia una qualche chiamata di sistema di Windows che ti consenta di farlo.
bobbytre
08-02-2011, 20:38
visto che li configuri sempre con l'interfaccia web , potresti creare un semplice programma che invii le giuste richieste usando il protocollo HTTP e quindi non dovrai simulare nulla ( ne pressioni di tasti ne movimenti del mouse ne niente), solo inviare i comandi che ti sarai precedentemente salvato anlizzando i messaggi scambiati tra router e browser.
visto che li configuri sempre con l'interfaccia web , potresti creare un semplice programma che invii le giuste richieste usando il protocollo HTTP e quindi non dovrai simulare nulla ( ne pressioni di tasti ne movimenti del mouse ne niente), solo inviare i comandi che ti sarai precedentemente salvato anlizzando i messaggi scambiati tra router e browser.
Si anche questa può essere una soluzione. O almeno tecnicamente lo è di sicuro di più che usare VBScript e SendKeys :asd:
Lupin_IV
08-02-2011, 23:11
beh la mia idea originaria era simile a quella di bobbytre visto che la procedura e sempre uguale cambiano solo i dati dei vari gestori, solo che non so come far interagire il programma che andro a creare con il browser web e le varie pagine
Io consiglio AutoIt, un linguaggio ad altissimo livello, perfetto per "simulare" una persona davanti al pc. ;)
Lupin_IV
08-02-2011, 23:59
AutoIt dici??? beh perchè no ho fatto una ricerca su internet e sembra quello che fa al caso mio sperimentero e vi faro sapere, grazie mille... Niente da fare Autoit e per winzoz e per me che ho ubuntu non vabbene... qualche altra idea??
Guarda quella che dice bobby è buona, ti serve un'analizzatore di protocollo tipo Wireshark, lo configuri per catturare i pacchetti HTML da e verso l'indirizzo IP del router sulla porta HTTP (80), esegui i comandi la prima volta a mano e vedi la traccia che ti è uscita.
A quel punto basta fare un programma in un qualsiasi linguaggio che supporti i socket e replichi in qualche modo quelle istruzioni ;).
Adesso provo per divertirmi a fare un programmino che riavvia il router da solo :D.
Lupin_IV
09-02-2011, 15:38
Ok ora provo anchio magari poi ci scambiamo opinioni... thx a tutti per le idee
Questo programma Python disattiva la connessione del router Alice :D:
import httplib, urllib
params = urllib.urlencode({ 'mimic_button_field' : 'submit_button_disattiva'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("192.168.1.1")
conn.request("POST", "/admin.cgi", params, headers)
response = conn.getresponse()
print response.status, response.reason
conn.close()
Praticamente effettuo un HTTP POST e la chiave di tutto è nella riga in grassetto.
La chiave di tutto è nella riga in grassetto. Cambiando il mimic_button_field in "submit_button_attiva" invece si riattiva la connessione :D.
Ti serve per Ubuntu ? In tal caso se devi solo agire via telnet con uno script prestabilito puoi fare tutto tramite uno script bash.
http://linux.byexamples.com/archives/258/when-netcat-act-as-telnet-client-it-becomes-better/
Altrimenti....iMacros, un registratore di macro per firefox ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.