[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] - Realizzare un semplice keylogger per "tastiera" USB



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Giorgio Luciani ha scritto:
> Gianluca ha scritto:
>> Giorgio Luciani ha scritto:
>>> gianluca@bucchianico.net ha scritto:
>>>> Salve a tutti,
>>>>  ho la necessità di scrivere un programmino C che sia ingrado di
>>>> leggere ciò che una tastiera USB invia.
>>>> Il dispositivo non è proprio una tastiera ma un lettore di tessere che
>>>> viene visto da Linux (e da Windows) come una testiera USB e quindi se
>>>> eseguo una lettura mentre è aperto un editor di testo, sullo schermo
>>>> mi compare la sequenza numerica letta e poi va a capo.
>>>> Purtroppo io deve intercettare questo evento in background ed eseguire
>>>> successivi processi.
>>>> Qualcuno può darmi qualche spunto? Ho iniziato a vedere il sorgente di
>>>> un keylogger ma è troppo maestoso rispetto a ciò che serve a me.
>>>>
>>>> Grazie a tutti,
>>>> Gianluca
>>>>
>>>>
>>> Ciao, in generale becchi l'output semplicemente con un cat sul device
>>> corretto in /dev/input/ (nel mio caso, per la tastiera ps2,
>>> /dev/input/event0) e puoi redirigerlo come ti pare (ad es. via pipe)
>>> (devi essere root o comunque avere i diritti in lettura).
>>> Per trovare a realtime il nome esatto del device usb puoi provare a fare
>>> un grep su
>>> cat /proc/bus/input/devices
>>> Il problema è poi interpretare i raw data ottenuti come stringhe di
>>> caratteri.
>>> Prova a vedere qui, per farti un'idea:
>>> http://www.linuxquestions.org/questions/showthread.php?t=454869
>>> http://www.redsend.org/?p=142
>>> My two cents
>>
>> Grazie per la risposta.
>> Avevo gia provato a stampare l'output di /dev/input/etc...etc... ma
>> non era tanto comprensibile!
>> Ho visto il link che mi hai dato e cercherò di trasformare lo script
>> Python in C...o in PHP!:)
>>
>> Grazie ancora, se hai novità fammi sapere!
>>
>> Gianluca
>>
> A mio avviso l'idea del file che è stata proposta è piuttosto inutile.
> Farei tutto via pipe o chiamate dirette all'interno del codice. Il
> problema non è dove passi i dati, ma come li converti.
> Provo a dare una piccola idea, presa scopiazzando un po' qua e là.
> Ti fai un header file con qualcosa tipo:
> 
> *char* *decod_key*(*int* key);
> 
> *const* *char* *decode_key*(*int* key) {
>         *switch*(key){
>                 case(2):		*return* *'1'*; *break*; //* num row *//
>                 case(3):		*return* *'2'*; *break*;
>                 case(4):		*return* *'3'*; *break*;
>                 case(5):		*return* *'4'*; *break*;
> 		...			...
> 		...			...
> 	}
> }
> Per avere le associazioni giuste con le tastiere italiane, prova a scaricarti lkl:
> http://sourceforge.net/projects/lkl/
> (Mai provato, ma visti i sorgenti: nella dir "keymaps" dovrebbero esserci le mappature per la tastiera italiana.
> Ogni carattere che leggi lo passi a decode_key e poi lo stampi, lo logghi, lo passi a quel che ti pare.
> Ho scritto idiozie? Spero di no, ma non sono un programmatore c. Magari hai più successo su qualche ng specifico.
> My (now) four cents.
> Saluti
> 
> 
> 
Grazie per il tuo consiglio.
Giorni fa sono partito proprio da lkl e stavo dando uno sguardo ai
sorgenti ma da quello che ho capito lkl usa l'indirizzo fisico della
tastiera e non il file di input quindi non sò se mi può essere utile.

Gianluca

- --
echo aculnaiG | awk 'BEGIN { FS = "" }
{ for (i = NF; i >= 1; i-- )
  printf $i }'; echo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGnHmBK1z3HmyB2QIRAub3AJ927jYKhFt9HNiZKMOYUHjcnsL/7wCfREUn
Rv/LDXTeh3wxzNUMWq2cMkI=
=pxnF
-----END PGP SIGNATURE-----



Reply to: