Mon matériel ("<désignation>" Réf:<référence produit> Trame:) :
"Micro module émetteur" Ref:599031 Trame: FE 79 5F 7 8 0 1E D8
"Télécommande programmable LCD" Ref:582883 Trame: FE 39 21 A 8 0 98 22
"Pack v&v sans fils" Ref:582869 Trame: FE 60 07 B 8 0 1E 96
"Détecteur de mouvement intérieur" Ref:582862 Trame: FE 0E CB E 8 0 DA BF
"Détecteur de mouvement extérieur" Ref:582861 Trame: FE 80 23 C 8 0 98 7D
Matériel RF :
Émetteur / Récepteur 433MHz, modulation de type ASK (-> module low-cost classique)
La trame RF :
L'encodage des bits :
T = 400ms
"1" = T:LOW 2T:HIGH
"0" = 2T:LOW T:HIGH
Découpage d'une trame :
<entête 2.4ms HIGH>
<empreinte 0xFE (8 bits)>
<canal global (4 bits)>
<adresse (16 bits)>
<sous canal (4 bits) >
<état lumiére (ToR) (4 bits)>
<rolling code MSBFIRST (8 bits)>
<timestamp incrémentiel (0 ~ 255) MSBFIRST (8 bits)>
<footer 24ms LOW>
Les canaux globaux :
canal A = 0
canal B = 1
canal C = 2
canal D = 3
Les sous canaux :
canal 1 = 8
canal 2 = 4
canal 3 = 2
canal 4 = 1
canal 5 = 3
tout les canaux = 0
Le rolling code :
0x98 -> 0xDA -> 0x1E -> 0xE6 -> 0x67
Autre :
- 4 envois minimum de la trame.
- Incrémentation de +10 pour le timestamp
- Timing en réception trés approximatif (due au matériel utilisé)
Fichiers joints :
RF_Blyss_Sniffer : Capture et décode les trames RF "à la volé" (Signal du récepteur RF sur D12 ET D2)
RF_Blyss_Spoofer : Génère un signal RF compatible Blyss (Sortie du signal RF sur D4)
Mise à jour des fichiers joints :
18/06 - 17h40 : Une petite erreur s'était glissé dans set_key(), c'est réglé (cela devait être la cause des problémes de @bidle).
19/06 - 18h15 : Sniffer : Assouplissement des fourchettes de timings, meilleurs réactivité du code avec tout types d'émetteur.
19/06 - 18h15 : Spoofer : Petite erreur dans la fonction generate_rolling_code(), bug réglé
19/06 - 16h30 : Sniffer : Ajout d'un compteur de trames identique (echo)
23/06 - 13h00 : Sniffer : Timings désormais codé en dure dans le code
15/07 - 15h40 : Spoofer : Ajustement de la durée du footer et du delta entre deux rolling code -> compatibilité avec les deux versions de modules blyss
15/07 - 16h15 : Sniffer : Ajustement des timing pour une meilleur compatibilité avec les différents modules blyss
15/07 - 16h50 : Spoofer : Modif delayMicroseconds -> delay() pour plus de précision sur la plage des 24ms
Fichiers joints :
Sniffer : https://dl.dropbox.com/u/53604363/hack_blyss/RF_Blyss_Sniffer/RF_Blyss_Sniffer.ino
Spoofer : https://dl.dropbox.com/u/53604363/hack_blyss/RF_Blyss_Spoofer/RF_Blyss_Spoofer.ino
Ancien fichiers joints :
Décodeur automatique de capture OLS :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/ols2data_cli.py
Analyse statistique du champ "timestamp" :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/stats_valeur.ods
Dump EEPROM avec une télécommande associé suite à un full-erase :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/dump_eeprom/dump_eeprom_telecommande_apres_full_erase.txt
Dump EEPROM avec un télécommande et un interrupteur associé :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/dump_eeprom/dump_eeprom_telecommande_et_interrupteur.txt
Utilitaires d'analyse :
Données brute "bus pirate" -> données brute :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/raw2line.py
Données brute -> dump EEPROM :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/line2dump.py
Décodeur de capture OLS (non CLI) :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/ols2data.py
Batch d'analyse par lot :
Décodage des dump EEPROM (trame_??.dump.txt) :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/clean_dump.bat
Décodage des captures OLS (trame_??.ols) :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/decode_all.bat
Affichage du résultats des différents décodages OLS (trame_??.ols.txt) :
https://dl.dropbox.com/u/53604363/hack_blyss/Blyss_trame_dump/trame_dump/echo_all.bat
(Je vais faire le ménage dans les anciens fichiers joints pour garder uniquement ce post à jour ;))