PDA

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

WarDuck
08-02-2011, 15:33
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

tuccio`
08-02-2011, 15:51
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

cdere
08-02-2011, 16:02
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)

WarDuck
08-02-2011, 19:19
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.

WarDuck
08-02-2011, 21:26
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

s1m0_93
08-02-2011, 23:24
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??

WarDuck
09-02-2011, 15:06
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

WarDuck
09-02-2011, 18:38
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.

cionci
09-02-2011, 19:08
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 ;)