Keelog ha deciso di pubblicare il progetto della versione precedente di hardware keylogger, rendendo accessibile la piena versione di firmware, codici sorgente di software, schemi elettrici e documentazione. Hardware Keylogger Open Source è un logger della tastiera PS/2 funzionante e testato al 100%, montato ed usato da centinaia di persone nel mondo. Il funzionamento di questo dispositivo è simile alla versioneKeyGrabber PS/2. Per lo scaricamento ed analizzi dei dati da keylogger è assicurata un'applicazione speciale KeyGrab. Però ricordiamo che Hardware Keylogger Open Source è stato pubblicato "come è" con tutti difetti e senza nessuna garanzia.

Hardware Keylogger Open Source

Prima di cominciare il lavoro verifica con l'elenco se possiedi tutti gli attrezzi e le capacità indispensabili ad eseguire il progetto di Hardware Keylogger Open Source:

  • esperienza fondamentale in elettronica (principalmente hardware)
  • Saldatore per microcircuiti
  • Programmatore dei microcontrollori (che servono la famiglia Atmel AT89CXX51)
Hardware Keylogger Open Source - Sottogruppi

I seguenti sottogruppi sono indispensabili per l'esecuzione di questo progetto:

  • microcontrollore Atmel AT89C2051 (oppure AT89C1051, AT89C4051)
  • memoria EEPROM di tipo AT24C512 (oppure compatibile)
  • quarzo 12 MHz
  • 2x condensatore 33p
  • condensatore 10 uF
  • resistore 10 k
  • pulsante non tanto grande
Hardware Keylogger Open Source - slot e spina PS/2 (p.es. del cavo)

È anche indispensabile attrezzarsi di un involucro per il logger. Una buon idea è acquistare una prolunga PS/2 ed alcuni centimetri di tubo termocontrattile, che si può avvolgere termicamente su logger pronto.

Il montaggio si deve cominciare dalla programmazione del firmware di microcontrollore. Avvia applicazione del programmatore, scegli microcontrollore AT89C2051, e carica il programma usando il codice nella versione binaria oppure versione hex. In caso di dubbi si può anche nuovamente compilare il codice nella versione sorgente usando il compilatore adatto per la famiglia 8051. La più complessa ed impegnativa fase di montaggio è probabilmente la saldatura, perché hardware keylogger dovrebbe essere eseguito utilizzando i più piccoli elementi possibile. Lo schema elettrico di sotto del Hardware Keylogger Open Source illustra come dovrebbero essere disposti i collegamenti tra i sottogruppi.

Hardware Keylogger Open Source - esperienza fondamentale in elettronica (principalmente hardware)

Salda gli elementi cominciando da microcontrollore e memoria EEPROM. I pin non usati possono essere tolti. Assicurati affinché rimane l'accesso al pulsante. Durante il montaggio dei condensatori assicurati della loro corretta polarizzazione.

Hardware Keylogger Open Source - saldatura

Il dispositivo deve essere il più piccolo possibile, senza degli intervalli tra gli elementi. Bisogna però evitare i cortocircuiti, perché poi saranno molto difficili da togliere. Dopo la saldatura degli elementi principali l'hardware keylogger dovrebbe assomigliare al prototipo illustrato nella foto.

Hardware Keylogger Open Source - Connettori

Il montaggio dello slot e della spina PS/2 deve essere eseguito alla fine. Una buona idea è effettuare un taglio della prolunga PS/2 in due parti e effettuare una separata saldatura dei fili di ciascuna parte. Ricorda però di infilare il tubo termocontrattile su una delle parti saldate. Salda tutte le quattro linee usate PS/2 (CLK, DATA, VCC e GND) sul slot e sulla spina (collegati alla tastiera e al computer).

Hardware Keylogger Open Source

Prima della piegatura termica del tubo termocontrattile attorno al keylogger, è bene mettere una piccola quantità di colla o di resina tra gli elementi per rinforzare tutta la costruzione. Alla fine riscalda il tubo termocontrattile affinché si stringa attorno al keylogger e fai un piccolo foro per assicurare l'accesso al pulsante.

L'Hardware Keylogger Open Source comincia ad intercettare i dati dalla tastiera al momento della connessione tra il computer e la tastiera. Il keylogger è totalmente "trasparente", non influisce in nessun modo sul funzionamento di computer e tastiera, e non può neppure essere scoperto dalla software. Tutti i dati dalla tastiera sono registrati nella memoria interna non volatile EEPROM con dimensione di 64kB. La modalità di intercettazione è indipendente dal sistema operativo installato sul computer.

Hardware Keylogger Open Source - Installazione 1

Trova il collegamento della tastiera PS/2 sul computer

Hardware Keylogger Open Source - Installazione 2

Scollega la tastiera.

Hardware Keylogger Open Source - Installazione 3

Connetti hardware keylogger sul posto della tastiera.

Hardware Keylogger Open Source - Installazione 4

Collega la tastiera a keylogger. Il modo di intercettazione parte immediatamente dopo la connessione all'alimentazione.

Quando i dati della tastiera vengono memorizzati in modalità intercettazione, potranno essere letti su qualsiasi computer di classe PC con sistema operativo Windows 9X/Me/XP/2000. L'Hardware Keylogger fa questo attraverso la simulazione di invio dati attraverso la tastiera. I dati trasmessi vengono recepiti dall'applicazione KeyGrab. Dopo aver scaricato tutti dati dal computer, essi possono essere elaborati ed analizzati. Le istruzioni che seguono illustrano il metodo di iniziazione della modalità intercettazione dei dati da keylogger.

Hardware Keylogger Open Source - Modo di intercettazione 1

Attiva applicazione KeyGrab.

Hardware Keylogger Open Source - Modo di intercettazione 2

Connetti hardware keylogger sul posto della tastiera. Non connettere la tastiera.

Hardware Keylogger Open Source - Modo di intercettazione 3

Clicca sulla barra del titolo dell'applicazione KeyGrab per attivarla.

Hardware Keylogger Open Source - Modo di intercettazione 4

Premi il pulsante su keylogger per iniziare la trasmissione. Durante lo scaricamento non cambiare l'applicazione attiva. Premi nuovamente il pulsante per concludere lo scaricamento. Bisogna farlo quando i dati voluti sono stati scaricati sul computer.

Hardware Keylogger Open Source - Modo di intercettazione 5

Sconnetti hardware keylogger e connetti di nuovo la tastiera PS/2.

Durante lo scaricamento dati alla tabella principale di applicazione KeyGrab, questi sono automaticamente elaborati in modo da far vedere i tasti premuti durante la modalità di intercettazione. I dati vengono trasmessi in ordine opposto all'ordine cronologico per far vedere all'inizio i dati appena intercettati. I dati scaricati possono essere analizzati manualmente oppure si può usufruire di alcune opzioni di ricerca incorporate.

Hardware Keylogger Open Source - Analisi dei dati

1 - La posizione in memoria occupata dal dato intercettato (formato hex).
2 - Il tasto intercettato
3 - Evento avvenuto - pressione oppure liberazione del tasto.
4 - Scancode del tasto sul bus PS/2 (formato hex).
5 - L'ultima posizione registrata nella memoria (formato hex).
6 - Dimensione della memoria non volatile EEPROM (kilobyte).

L'informazione più interessante per l'utente è la colonna con il tasto (2) e l'evento (3). In queste colonne è codificata l'informazione sugli caratteri iscritti. Spostando la barra di navigazione è possibile recuperare la storia del testo scritto in modalità intercettazione. I dati dai keylogger sono trasmessi in ordine opposto all'ordine cronologico (i dati più nuovi all'inizio).

L'applicazione per lo scaricamento dei dati da hardware Keylogger Open Source per Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Codice sorgente completo per il microcontrollore AT89C2051:
Codice sorgente - diy.asm

Firmware compilato per il microcontrollore AT89C2051:
file BIN - diy.bin, file HEX - diy.hex

Hardware Keylogger Open Source - KeyGrab

Invitiamo a leggere le osservazioni di sotto, le quali possono aiutare ad evitare parecchi problemi connessi all'utilizzo di hardware keylogger.

Responsabilità legale

  1. Ogni paese ha una legge diversa riguardante la registrazione dei dati dalla tastiera. L'ignoranza della legge non autorizza alla sua inosservanza. Si prega di leggere Contratto dell'Utente.
  2. La ditta Keelog non si assume nessuna responsabilità per danni alla salute e di beni a causa dell'utilizzo di questo hardware keylogger.
  3. Hardware Keylogger Open Source non dovrebbe essere utilizzato per l'intercettazione illegale di dati altrui, in special modo di password, dati bancari, corrispondenza riservata, ecc. Nella maggior parte dei paesi questo costituisce reato.

Acquisizione dei dati

  1. Hardware Keylogger ha 64 kB della memoria non volatile di tipo EEPROM. Il riempimento di questa memoria provoca una nuova registrazione cominciando dalla prima localizzazione della memoria. I dati più vecchi verranno persi.
  2. I primi 128 byte della memoria sono riservati per i dati della configurazione, specialmente l'indicatore contenente l'indirizzo dell'ultima iscrizione nella memoria. Quest'indicatore è aggiornato circa ogni 10 secondi.
  3. Non lasciare l'hardware keylogger collegato in modo di intercettazione quando non è necessario. Questo causa un inutile riempimento della memoria per cui i vecchi dati, spesso importanti, possono essere sovrascritti.

Trasmissione dei dati

  1. Per lo scaricamento dei dati da hardware keylogger è indispensabile avere un computer di classe PC con velocità di almeno 100 MHz con il sistema operativo Windows 9X/Me/XP/2000.
  2. Per lo scaricamento dei dati da hardware keylogger è usata la tecnica della simulazione di tastiera. Per questo la tastiera reale deve essere sconnessa durante la trasmissione.
  3. Durante lo scaricamento dei dati, deve esse attiva l'applicazione KeyGrab. Nel caso contrario il sistema Windows o l'altra applicazione vorranno interpretare i segnali che arrivano dalla tastiera.
  4. I dati archiviati in modo di intercettazione vanno letti in ordine opposto all'ordine cronologico. Questo ha lo scopo di visualizzare i dati più recenti all'inizio del processo di trasmissione. Per ripristinare i dati più vecchi è indispensabile aspettare fino alla fine di tutto il processo della trasmissione. Tutto il processo dello scaricamento dei dati può durare fino a 20 minuti.
  5. Lo scaricamento dei dati deve essere concluso attraverso una nuova pressione del pulsante. Lo si deve fare quando i dati cominceranno ad essere duplicati.

Funzionamento della tastiera PS/2

  1. Il funzionamento della tastiera di tipo PS/2 è più complicato di quello che può sembrare all'inizio. Lo si può vedere analizzando i dati non elaborati archiviati da hardware keylogger. Ogni volta che il tasto viene premuto, la tastiera genera un carattere, così detto "scancode". Quando il tasto viene liberato, questo carattere è generato nuovamente, ma preceduto dal carattere 240 (hex F0). Esistono anche tasti ampliati per i quali è usato il carattere 224 (hex E0). Più informazioni su questo tema sono disponibili nella sezione Protocollo della tastiera PS/2.
  2. Hardware Keylogger Open Source ha 64 kB di memoria, ciò non vuol dire che può memorizzare 64 mila pressioni dei tasti. Una sequenza di pressione e di liberazione del tasto occupa 3 byte per il tasto standard e 5 byte per il tasto ampliato. La registrazione è stata ottimalizzata nelle versioni commerciali.

Le basi

Hardware Keylogger Open Source - Segnale del bus PS/2

Tagliando il cavo della tastiera PS/2 generalmente si trovano dentro 6 fili. Solo 4 di queste linee sono importanti. Due di loro sono alimentatori: massa (GND) e +5 Vol (VCC) generate dall'alimentatore di computer. I due rimanenti servono per la trasmissione asincrona dei dati: linea dati (DATA) e linea orologio (CLK). Sul disegno a destra è visualizzato come queste linee si cambiano ai pin della spina DIN (a) e mini DIN (b). La trasmissione è bidirezionale, ma il ruolo più importante è quello della tastiera. Invia informazione sulle pressioni e liberazioni dei tasti. La tabella dati contiene solo un byte, preceduto da un byte dello start e finalizzato con byte di parità e byte dello stop. La tastiera emette i seguenti byte dei dati DATA e li tratta con un versante negativo sulla linea orologio CLK. Frequenza di tatto è 10...30 kHz. Ci sarebbe un protocollo molto semplice ed elegante se non fosse per il fatto che il computer ha bisogno, volta per volta, di inviare l'informazione alla tastiera. In questo caso scarica la linea orologio CLK fino allo zero, fino a quando la tastiera comincia a inviare segnali. Quando partono gli impulsi, il controllore del computer comincia ad inserire i dati sulla linea DATA. Gli andamenti della trasmissione sono illustrati sul grafico di sotto: (a) dalla tastiera al computer, (b) dal computer alla tastiera. Questo protocollo ovviamente possiede alcune eccezioni e complicanze, come per esempio un'interruzione della trasmissione, la ripetizione del carattere, ecc. Però questi sono casi molto rari.

Hardware Keylogger Open Source - andamenti

Dati sul bus informatico

Allora quali dati sono realmente trasmessi attraverso il cavo della tastiera? All'avviamento sia la tastiera che computer inviano i dati di inizializzazione, informando sul suo status. Durante il lavoro ordinario del computer, solo la tastiera invia i dati. Questi dati riguardano ogni evento accaduto sulla tastiera. L'evento preso in considerazione è la pressione del tasto e la sua liberazione. Nel caso della pressione del tasto è inviato il suo così detto "scancode". Ogni tasto possiede precisamente uno scancode, ciò forma una mappa degli scancode. Nel caso della liberazione del tasto, prima viene inviato il byte speciale 240 (hex F0), e dopo lo scancode del dato tasto. Allora iscrizione standard del carattere dalla tastiera causa la trasmissione di 3 byte. Se il tasto rimane premuto più a lungo, il suo scancode sarà ripetuto con la frequenza di ripetizione al momento impostata. Quando verrà liberato, il byte 240 sarà inviato e infine lo scancode. Questo sarebbe un protocollo semplice e piacevole se non ci fosse la presenza di certi tasti speciali, come Home, End, frecce, ecc. Quando il tasto speciale viene premuto, sarà inviato il byte 224 (hex E0), ed in seguito il suo scancode. Quando il tasto speciale viene liberato, è inviata una sequenza 224, 240 (hex E0, F0), ed in seguito lo scancode del tasto. I tasti standard e speciali sono comuni per tutte le disposizioni delle tastiere nazionali, conforme alla mappa degli scandode. A complicare ulteriormente il tutto, esistono due tasti "super-speciali", Print Screen e Pause, la pressione dei quali causa la trasmissione di tutta sfilata dei caratteri. Per la persona che programma la comunicazione della tastiera è meglio far finta che questi tasti non esistano.

Registrazione dei dati

Il microcontrollore controlla le linee DATA e CLK per tutto il tempo, intercettando tutti i dati. I dati sono registrati direttamente nella memoria interna non volatile, senza nessuna analisi. Grazie a questo, l'utente può in seguito venire a sapere di tutti gli eventi accaduti sulla tastiera. Quando l'utente decide che l'intercettazione è finalizzata e preme il pulsante, hardware keylogger torna al modo download. La tastiera dovrebbe essere previamente sconnessa, in caso contrario comincerà ad interpretare il flusso dei dati. Keylogger a questo momento comincia la trasmissione dei dati dalla memoria interna attraverso la simulazione della tastiera. Applicazione KeyGrab dovrebbe essere l'applicazione attiva nel sistema, per interpretare il flusso dei dati da hardware keylogger. I tasti standard sono trasmessi direttamente con aiuto di scancode, invece i tasti ampliati con aiuto del codice a 2 byte.