Hardware keylogger

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){}
  }
  
}

sdoppiatore uscite USB



Con quello non ci fai nulla
Lo sdoppiatore non sdoppia nulla semplicemente unisce le alimentazioni
Non serve a nulla
Il programma è sbagliato come concezione: la libreria keyboard serve per "scrivere" verso il PC
Per leggere dalla tastiera ci vuole ben altro, cosa non so
Poi per fare quello che vuoi fare serve un arduino che abbia due porte usb, una client e una host

Poi hai sbagliato a gestire il carattere con due t, che 1 non è '1',
Da ultimo la gestione della sd è sbagliata
Non puoi aprire e chiudere file ad ogni giro di loop e scrivere senza un test che ci sia veramente qualcosa da scrivere

Però la cosa mi intriga, seguo volentieri

grazie per i consigli forse non mi sono spiegato bene la libreria keyboard volevo utilizarla non per leggere i dati di una tastiera ma intendevo usarla per inviare i tasti premuti su una tasiera collegata ad un arduino. in modo che la tastiera trasmetta i dati all'arduino l'arduino salvi i dati sulla SD e l'arduino invia i dati letti in precendenza al computer in modo che l'arduino non influenzi il collegamento tastiera e PC conosci per caso un arduino che abbia due porte usb, una client e una host ? quindi cosa mi consiglieresti di fare con il codice ? aggiungere un if che verifica se il caratere è valido? c'è un altro modo per sdoppiare un segnale USB di una tastiera?

Non credo e comunque non na vale la pena

Usa una tastiera ps/2 e sdoppia quella, è una banalità

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.