Salve di recente stavo creando un hardware keylogger, ovvero un dispositivo hardware in grado di salvare i tasti premuti di una tastiera. Per iniziare ho provato a realizare dei semplici sketch per salvare dei file su una SD utilizando la libreria SD.h
, e un modulo lettura e scrittura per schede SD (immagini allegate ↓↓↓ ); fin qui non ho riscontrato problemi. Poi mi sono dedicato alla parte di emulazione della tastiera perche volevo che il mio keylogger una volta letto il tasto premuto sulla tastiera lo rinviasse al computer in modo che la presenza del keylogger non influenzase il funzionamento della tastiera a tal proposito se utilizassi uno sdoppiatore di uscite USB(immagine allegata ↓↓↓) potrebbe funzionare? perche finora ho solamente pensato a emulare la tastiera con la libreria Keyboard.h
. infine non sono riuscito a comprendere a pieno come utilizare un USB host shield sempre se utilizare questa shield sia il modo migliore di leggere una tastiera USB in caso dovessi utilizare la shield quale dovrei utilizare sul web ne ho trovate tante ma non ho capito quale sia la migliore e come usarle. Ho anche iniziato a scrivere un po di codice
e ho deciso di aggiungere al circuito un pulsante di sicurezza in modo che se la libreria a problemi l'arduino non rimane bloccato. O vviamente sempre se utilizero la libreria visto che forse è meglio utilizare lo sdoppiatore di uscite USB
#include <SPI.h>
#include <SD.h>
#include <Keyboard.h>
File file;
char caratere;
void setup() {
Serial.begin(9600);
pinMode(7, INPUT_PULLUP);
if (!SD.begin(4)) {
Serial.println("Errore SD");
return;
}
Serial.println("SD pronta");
if (SD.exists("example.txt")) {
SD.remove("example.txt");
}
}
void loop() {
caratere = 1; //non sono ancora riuscito a leggere i tasti di una tastiera//
file = SD.open("example.txt", FILE_WRITE);
file.write(caratere);
file.close();
if(digitalRead(7) == HIGH){
Keyboard.begin();
Keyboard.write(caratere);
}
else{
while(true){}
}
}