Guida Come costruire uno Sniffer per Radiocomandi a 433Mhz

insidehackers

Utente Gold
28 Giugno 2013
641
30
222
318
Il protocollo utilizzato dai radiocomandi a 433mhz e 860mhz ad esempio quello utilizzato dai cancelli automatici è molto fragile in questa guida realizziamo un semplice sniffer/repeater che ci permette di cattutare il codice e ri-inviarlo a nostro piacimento, prima però cerchiamo di capire un pò il funzionamento, sappiamo che la frequenza più comunemente utilizzata è la 433.9 Mhz con modulatione OOK (On-Off Key) cioè una modulazione ASK (Amplitude Shift Key) dove in presenza di un segnale radio si ha il valore "1" sul ricevitore e assenza di segnale valore "0", quindi una modulazione molto semplice che non richiede particolari conoscenze per comprenderla.
original.9ad357c1f3d38dd086b23e31de044f176794152788eb73ac56387c1ebe9d3d96.png

Fig. 1

Nell'immagine sopra vediamo un esempio di modulazione OOK (in basso), quindi il radiocomando invia un "treno" di impulsi radio che vengono tradotti dal ricevitore in una sequenza binaria di solito 12Bit per i cancelli molto vecchi e 52Bit per i più recenti, i bit sono codificati tramite un timing preciso ad esempio il bit 1 corrisponderà ad un impulso alto(invio il segnale radio) di 420 microsecondi e un impulso basso(interrompo la trasmissione) di 840 microsecondi

2577.1.png

Fig. 2

SAM_1702.JPG

Fig. 3


Nella figura 3 cè il codice completo catturato da un telecomando a 12Bit dipswitch questo tipo di codice può essere "craccato" con un attacco di bruteforce in soli 6 minuti.
Ora che abbiamo capito come funziona a grandi linee passiamo alla realizzazione dello sniffer ci serviranno questi componenti:

Componenti:
- ESP32
- Lettore micro SD SPI
- Ricevitore e trasmettitore 433Mhz
Oppure Ricevitore 433mhz con maggiore stabilità e sensibilità
- Micro SD da 4GB
- Display I2C da 0.91"
- Antenna telescopica

Setup di Arduino IDE per l'ESP32

Scarichiamo e Installiamo arduino ide da qui: https://www.arduino.cc/en/main/software
Una volta aperto su File > Impostazioni aggiungiamo questa riga " https://dl.espressif.com/dl/package_esp32_index.json " dove dice "URL aggiuntive per il gestore schede", clicchiamo su OK ora in Strumenti > schede > gestore schede cerchiamo "esp32" e installiamo una volta installato selezioniamo il modello dell'esp32 sempre da strumenti > scheda scegliamo ESP32 Dev module.

Schema elettrico
tCad1ss.jpg


Chiedo scusa per il pessimo schema elettrico, una volta collegati tutti i componenti e messi in una scatoletta possiamo caricare il codice sull'ESP, scarica il codice , apri il file .ino con arduino ide e clicca su carica.
Devo fare una piccola premessa nel mio progetto per problemi pratici ho utilizzato i pin D13 e D12 come input touch però sarebbe meglio inserire due push button con una piccola modifica al codice, visto che questa guida non vuole incoraggiare nessuno a rubare codici non dirò come modificarlo ma lascio a voi il divertimento

Funzionamento in breve
Il funzionamento è semplice, l'ESP ha un interrupt configurato su CHANGE sul pin D4 quindi ogni volta che il ricevitore cattura un segnale viene triggerato l'interrupt che analizza se il segnale in input è valido e poi lo salva sottoforma di timing in un file di testo che poi verrà memorizzato sulla scheda sd, i due touch servono rispettivamente per selezionare il codice e per inviarlo quando è in stato di IDLE quando riceve un segnale valido vengono mostrati alcuni dettagli sul display con il primo tasto diciamo di salvare il codice appena catturato e con l'altro lo scartiamo

71679208_153540579290201_982423785734653206_n.jpg


Download