home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca
 
VIRUS MATRIX tipo: livello:
Un semplice scherzo con un emulatore tastiera e mouse
 
 



 

Virus Matrix


Questo circuito è nato mentre facevo i test su un PIC 18F2550 che ha un controller USB device integrato provando i vari firmware messi a disposizione dalla Microchip ho provato un emulatore mouse che faceva girare il mouse sullo schermo e qui mi sono illuminati gli occhi pensando ad un mio collega. Così ho deciso di costruire un semplice schema e sviluppare un firmware che fosse in grado di emulare un mouse ed una tastiera e desse vita al "virus". In realtà è un semplice scherzo e non ha tutte le proprietà di un virus questo ad esempio non si replica ma rimane sul pc e non effettua nessuna modifica al sistema operativo.

Descrizione
 
Lo schema che vi propongo è abbastanza semplice è un semplice PIC 18F2550 con i pezzi necessari al suo funzionamento, il lavoro più grande è nel firmware che ho realizzato io, prendendo spunto dagli esempi messi a disposizione del compilatore CCS.



Per quanto riguarda il pinout di un connettore USB lo potete trovare qui pinouts.ru/Slots/USB_pinout.shtml oppure potete vedere il seguente schema riassuntivo:

Pin Name Cable color Description
1 VCC Red +5 VDC
2 D- White Data -
3 D+ Green Data +
4 GND Black Ground
 
Lo schema connette i 4 pin dell'usb al pic inoltre al pin 14 del PIC vengono messi dei condensatori in parallelo per regolare e stabilizzare la tensione di 3,3V. Queste informazioni si possono trovare tranquillamente nel datasheet del PIC al paragrafo 17.2.2.8. Inoltre c'è il quarzo che può essere scelto tra 4,8,16 o 20 MHz l'importante è configurarlo nelle impostazioni del PIC che vedremo più avanti.
 
FOTO
 
Foto della mia realizzazione
 
 
La foto non è un granchè mi scuso con Celsius, al posto del quarzo e dei condensatori ho usato un risonatore ceramico a 4MHz per risparmiare spazio. I 5 pin in alto a sinistra fanno parte del connettore ICSP per la programmazione del PIC in circuit.
 
Componenti

Questa è la lista dei componenti:
 
1x PIC Microchip 18F2550 ha un costo tra i 4 e 11 €
1x Connettore USB maschio tipo A difficile da trovare ma su ebay qualcuno c'è.
2x Condensatori poliestere 100 nF
------
1x Risuonatore ceramico a 4MHz oppure 8MHz in alternativa
------
1x Quarzo da uno dei seguenti clock: 4,8,12,16,20,24,40,48 MHz
2x Condensatori ceramici 22pF
------
 
Si può usare o il quarzo o il risonatore ceramico.

Firmware e Sorgenti

Purtroppo non posso rilasciare tutti i sorgenti perchè sono coperti da copyrigth e CCS non permette la distribuzione pubblica ma solamente a chi ha una licenza. Ho utilizzato il compilatore CCS perchè l'esempio di periferica combinata (mouse + tastiera) sugli esempi di Microchip non funzionava bene e per evitare di perderci troppo tempo ho preferito partire dall'esempio di CCS e scrivere il mio codice.
Questo è lo zip con la parte dei sorgenti www.grix.it/UserFiles/etmatrix/GhostUSBSrc(1).zip
 
I miei sorgenti sono rilasciati con la licenza GPL, nello zip dei sorgenti trovere 4 file:
- GhostKeyb.h header file che contiene i codici della tastiera
- GhostMsg.h header file che contiene i caratteri da premere che formano il messaggio che viene scritto sul notepad
- GhostUSB.c sorgente principale dove vengono effettuate tutte le operazioni, inizializzazione USB, movimento mouse, scrittura con la tastiera.
- GhostUSB.h header file in cui viene definita la configurazione del PIC
 
Per poter compilare da soli i sorgenti vi serviranno altri file che si possono trovare nelle directory del compilatore CCS, questi file vengono inclusi dal sorgenti principale GhostUSB.c e sono:
 
- usb.c dove ci sono le funzioni principali per gestire il controller USB del pic
- usb.h header file dove ci sono le definizioni utili a usb.c
- usb_desc.h header file dove ci sono gli array per la configurazione della periferica USB come ad esempio PID e VID.
- pic18_usb.h header file dove ci sono le definizioni hardware USB della famiglia dei PIC18
- 18F2550.h header file dove ci sono le definizioni hardware del PIC utilizzato.
 
Comunque una volta creato il progetto su CCS ed inclusi i miei file vi servirà copiare il file usb_desc_kbmouse.h di CCS nella directory del vostro progetto rinominandolo usb_desc.h, bisogna apportare una piccola modifica al file usb_desc.h l'array USB_DEVICE_DESC non deve essere const. Fatto questo la compilazione dovrebbe andare a buon fine.
Dopo di questo se volete potete personalizzare il PID e il VID dentro l'array USB_DEVICE_DESC e la descrizione del prodotto e del manufacter dentro l'array USB_STRING_DESC.
 
Al momento il messaggio scritto con la tastiera è personalizzabile solo modificando i sorgenti, in futuro vorrei rendere possibile la modifica semplicemente scrivendo le stringe dentro la eeprom del pic. Inoltre il messaggio appare solo con Windows questo perchè per poter avviare un notepad devo far partire un esegui con i tasti WIN+R e dentro scrivere il messaggio.
Per darvi una mano nel personalizzare il messaggio da inviare tramite tastiera ho scritto una classe JAVA che data una frase genera l'array da copiare nel file header. Essendo una classe JAVA presuppone che abbiate installato un JRE o JDK sul vostro computer.
da riga di comando DOS o Linux potete scrivere dalla directory dove avete estratto il file usbkey.class il comando:
 
java usbkey "Frase da inviare con la tastiera"

i 2 array generati vanno messi nel file GhostMsg.h . Una simile operazione pressupone che si abbiano delle conoscenze del linguaggio C.
 

Configurazione con WinPIC800
 
Per la programmazione del PIC mi trovo molto bene ad usare il programma WinPIC800 freeware che è l'unico che riesce a pilotare il mio Willem Programmer e scrivere sul PIC 18F2550. Questa è la schermata della configurazione del PIC dopo aver caricato il firmware che vi ho fornito.
 
 
Nel riquadro cerchiato in rosso si può scegliere la velocità del proprio quarzo o risonatore ceramico. Le altre opzioni si possono lasciare così.

Descrizione del funzionamento

Una volta che la perifica è collegata al computer entra in attesa di 10 minuti e dopo questo periodo viene inizializzata la parte USB del pic questo fa in modo che il Sistema Operativo rileva la perifica combinata, la prima volta Windows fa apparire i vari popup nella traybar che ha rilevato un nuovo hardware e dopo che la periferica è stata riconosciuta il mouse comincia a fare un movimento circolare e la tastiera comincia a premere una sequenza di tasti, che servono principalmente per avviare un notepad e scriverci dentro un messaggio. La cosa più bella è guardare la faccia dell'ignaro utente che si vede prima rilevare una perifica senza che non ha collegato nulla e poi il mouse comincia a girare e successivamente qualcuno scrive usando la sua tastiera.
Ci tengo a precisare che si tratta di un semplice scherzo e che il firmware emula una tastiera ed un mouse e quindi non si può usare come un KeyLogger, staccando la perifica usb dal computer tutto torna come prima e le uniche traccie che vengono lasciate sul sistema operativo sono la rilevazione della perifica e nulla più. Volendo la perifica funziona oltre che su Windows anche su Linux e MacOS, ho provato su Linux ma ho avuto dei problemi perchè una volta staccata la chiavetta si perdono sia il mouse che la tastiera originali quindi si perde il controllo, sconsiglio lo scherzo su computer con Linux, su MacOS non ho ancora provato.
Il mouse non fa nessun click, ma la tastiera fa degli ENTER e se si trova qualche messaggio tipo vuoi cancellare il file e per sfortuna il focus si trova sul si ed il quel momento viene dato un ENTER il file viene cancellato.

NON MI ASSUMO NESSUNA RESPONSABILITA' SE LO SCHERZO CHE FATE CREA DEI PROBLEMI. CI SONO STATE GIA' 5 VITTIME DELLO SCHERZO E NON HO AVUTO MAI PROBLEMI. ALCUNI VOLEVANO FORMATTARE IL PC MA LI HO FERMATI IN TEMPO. UN CONTO È UNO SCHERZO UN CONTO È ESSERE CATTIVI.



  il parere della community
esprimi il tuo voto approvi questa pagina? promo


  non sei autenticato, per questo non puoi visualizzare i commenti sulla pagina. Se sei registrato accedi oppure registrati.


difficoltà
costo
informazioni
Questa pagina è stata creata da etmatrix
il 04/10/2009 ore 11:27
ultima modifica del 04/10/2009 ore 14:01
la pagina è stata visitata 11046 volte




Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina.
Se tu sei l'autore originale degli schemi o progetti proposti in questo articolo, e ritieni che siano stati violati i tuoi diritti, contatta lo staff di www.grix.it per segnalarlo.

   
 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale