Un piccolo keylogger scritto interamente in C per windows 9X/XP/Vista/7.
Il software cattura quasiasi evento della tastiera (tasti standard, tasti funzione Fx, tasti speciali) ed eventi di sistema come finestre aperte, programmi avviati, notifiche ed errori. Il programma registra completamente in background tali informazioni e li salva in un file di testo sul disco rigido. Non appena c'è disponibilità di rete, i log vengono inviati via email ad una casella email prescelta tramite protocollo SMTP. Il programma deve essere considerato unicamente as-is, un esempio di programmazione.
Codice sorgente: keylogger
Mi da altre tantissime righe di errore ma non ci stavano tutte nel commento...
ciao! dovresti creare una nuova applicazione C (non C++). Riprova così intanto...
Ciao, mi da un errore sullo ShellExecute, sto dimenticando qualcosa?
line 55: Undefined reference to_ShellExecute
ciao! semplice, devi linkare Shell32.lib sennò ti da quell'errore
Ciao allora ho provato a compilarlo con dev c++ 4.9.9.2 ho linkato la libreria Shell32.lib da opzioni del progetto....compilo e mi da errore
C:\Dev.Cpp.......\mingw32\bin\ld.exe\ : cannot find -lobjc\ncollect2: id returned 1 exit status
make.exe ***[proggetto1.exe]Error 1
esecuzione terminata
...e file non creato
che devo fare ?
grazie
nelle opzioni di progetto devi dare "C project" invece di "C++ project"
Ciao e grazie della risposta...ma io faccio\nnuovo progetto--->windows application----> e su opzioni del progetto metto C
quindi compila in C
allora guarda, la libreria objc riguarda l'objective C, che è un'altro linguaggio di programmazione diverso da C++. Per qualche motivo l''DE ha scelto objective C anzichè C++. Prova a guardare nelle impostazioni di progetto se c'è qualche opzione abilitata di troppo. Fammi sapere e semmai ti invio il file di progetto .dev corretto
Ciao !! scusami... tu mi hai scritto nell'ultimo post "Per qualche motivo l'IDE ha scelto objective C anzichè C++" non mi ha detto che devo compilare in "C" e non "C++" ?? cmq ho spulciato tutto il compilatore e non ci sono opzioni abilitate di troppo...anche perche' proprio ieri ho compilato altri due programmi sempre in "C" e vanno alla grande !! Se puoi, come mi hai detto mandami il .dev cosi provo...la mail ce l'hai (o l'una o l'altra), ciao e grazie !!
poi ti volevo chiedere anche un'altra cosa...se non e' troppo...\nho gia' creato programmi del genere...sempre prendendo linee di codice qui e lì per poterle studiare e poi "assemblare" insieme... i programmi funzionano tutti alla perfezione...solo una cosa... se li avvio io (doppio click) partono !!(e' ovvio) se mando il collegamento del programma in esecuzione automatica, al riavvio del pc...vanno !! (ovvio) se invece creo in regedit--->la chiave RUN--->(anche come Administrator)per farlo partire all'avvio del pc succede una cosa strana.... il programma parte (c'e' il processo nel taskmanager) ma non va !!! (le sue funzioni non si attivano) ho inserito prima la chiave su HKEY LOCAL MACHINE (e nn va) poi anche per provare in HKEY CURRENT USER (idem) il processo c'e'...il programma non funziona...
ciao, in xp funziona alla grande, su win7 devi abilitare la modalità compatibilità con winxp prima di poterlo lanciare manualmente o tramite registro di sistema. Comuqnue, dato l''altissimo numero di contatti email che ricevo per questo codice credo che a breve inizierò a dargli una bella spolverata (ormai ha più di 5 anni!) e creare un bel tutorial più corposo. Intanto ti mando il .dev per email
mmm...ho provato in compatibilita' winxp sp3.. non va ugualmente... :-(
parte il processo ma non il programma
tutto ok ce l'ho fatta !! non era un discorso di compatibilità...avevo sbagliato io ihihihi...
Che sono rinco... se doppio click sul programma il log me lo crea nella stessa cartella... se creo chiave run il log me lo crea in system 32 ahahah cio'' pensato un po dopo...
si chiama working directory e può cambiare a seconda del processo che lancia l'eseguibile.
Ciao.. puoi darmi una definizione piu'' specifica per "working directory" ?
Per capire come funziona grazie.
è la directory associata a quel processo. Comunque guarda qui
http://en.wikipedia.org/wiki/Working_directory
Ciao,volevo sapere come faceva a inviare il log per mail,e se gli antivirus piu comuni trovavano la presenza di tale programma!Grazie..
Ciao a tutti,
complimenti, Gianluca, per l'ottimo lavoro.
La parte di invio email è molto ben fatta e soprattutto (cosa rara) semplice.
La parte di keylogging è il punto debole (anzi, debolissimo) del sistema in quanto usa la funzione "GetKeyState".
Questa funzione (assieme a GetAsyncKeyState e altre) è una delle più gettonate per gli antivirus.
Provalo pure con Norton, vedrai che dopo qualche "tempo" esso ti segnalerà il programma come "malicious".
La vera difficoltà, ahimè, è quella di creare un hook o qualche accidenti all'int21 della tastiera senza essere "visti" dagli antivirus... Altrimenti la vita del keylogger è molto breve.
Comunque complimenti ancora, bravo.
Grazie Valleyman! Considera che il codice è del 2007, quindi già un pò vecchiotto. Un metodo più affidabile per trasmettere i keystrokes potrebbe essere una send di tipo GET/POST ad un backend in PHP, ma richiede un dominio di proprietà. Per il discorso antivirus beh, c'e' veramente poco da fare... puoi andare sul basso livello e agganciarti direttamente agli interrupt ma l'installazione diventa più complessa in quando vai a ring 0 (cioè esci dallo spazio utente e entri in quello driver di sistema).
Come faccio a scaricarlo?
Ciao, non si scarica ma si compila dai sorgenti, scarica Dev-C++ poi crea un nuovo progetto C, aggiungi i sorgenti e compila
come faccio a far inviare i dati alla mia mail? è la priva volta che uso qualcosa in C o C++
se è la prima volta forse è il caso che studi no?
Ciao! Ma funziona? Perchè io l'ho compiilato su Dev-C++ e non funziona... Mi da tutti questi errori guarda:
Compilatore: Default compiler\nEsecuzione di g++.exe...
g++.exe "C:\Users\Denis\Documents\Desktop\SenzaTitolo1.cpp" -o "C:\Users\Denis\Documents\Desktop\SenzaTitolo1.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Denis\Documents\Desktop\SenzaTitolo1.cpp: In function
void hook(char*, int)'':<br /> <br /> C:\\Users\\Denis\\Documents\\Desktop\\SenzaTitolo1.cpp:54: error: invalid conversion from
unsigned char'' to `CHAR