SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
Pentest
Bus Pirate
Christophe Villeneuve
@hellosct1
@hellosct1@mamot.fr
DevCon #12 – le 16 Dec. 2021
Atos open source - afup – lemug.fr – mariadb – drupal – mozilla - firefox – lemugfr - sumo – webextensions – VR – AR – XR - Cause commune 93.1 FM - TechSpeaker - Lizard - eyrolles – editions eni – programmez – linux pratique – webriver – elephpant - CommonVoice – Sécurité -
Cybersécurité
Christophe Villeneuve
●
Consultant Open Source
●
Dresseur animaux
@hellosct1
Aujourd’hui
●
Présentation
●
Que fait-on avec ?
●
Et… Alternatives
@hellosct1 – Programmez #10 -
●
Présentation
●
Que fait-on avec ?
●
Alternatives
@hellosct1
Qu’est ce ? Le bus pirate
●
Multi-outil
– open source
– Open Hardware
●
But
– Tester qui parle aux appareils électroniques.
●
Nombreuses fonctionnalités
– Vérifier la sécurité d’un nouveau produit
●
Interface de terminal simple
– Disponible sur Linux et Windows
@hellosct1
Le bus pirate
●
Outil
– Proposé par Dangerous prototypes
– Développé par Ian Lesnet.
●
Permet le dialogue entre un PC et une cible
1-wire, 2-wire, 3-wire, UART, I2C, SPI, et HD44780
●
Permet de fournir des alimentations 5V ou 3.3V
●
Lire des tensions (0-6V)
●
Générer un PWM
●
Mesurer des fréquences jusqu’à 40MHz
●
Activer des résistances de pull-up…
Un compagnon idéal
de l’ingénieur en
phase de
prototypage ou du
hacker.
@hellosct1
La carte peut faire
●
Protocoles de base avec le firmware officiel :
– 1-Wire
– I2C
– SPI
– Asynchronous serial
– MIDI
– HD44780 LCD
– 2 et 3-wire
– mode "raw binary" sur les modes
●
bitbang, 1-Wire, I2C, SPI, et UART
@hellosct1
Idée
●
Besoin de dialoguer
– Avec un nouveau composant
– De sniffer un réseau I2C
●
Interface USB-série
– Permet d’envoyer des commandes depuis un PC
●
via un simple terminal (type PuTTY ou terminal)
– Les commandes reçues seront analysées syntaxiquement
(parsing) par le logiciel du bus pirate
●
Et traduites en instructions machines (opcodes)
●
Afin de programmer les périphériques concernés
– timers, I/O, ADC, …
●
Transparents pour l’utilisateur
@hellosct1
Prise en main
●
Pour pouvoir
commencer
A utiliser le bus pirate
●
Il faut le relier
– Port USB
●
à l’aide d’un câble
mini USB type B mâle
/ USB type A mâle.
●
Sur Windows :
– Télécharger un driver
FTDI et un émulateur
de terminal.
– Prise en main du bus
pirate sur Windows.
●
Sur Linux :
– pas besoin
●
De driver FTDI
●
Emulateur de terminal
@hellosct1
En pratique
●
Voir le tampon des messages du noyau.
$ dmesg | tail
[243117.786653] usb 1-3: Product: FT232R USB UART
[243117.786658] usb 1-3: Manufacturer: FTDI
[243117.786662] usb 1-3: SerialNumber: A906H8YA
[243117.898706] usbcore: registered new interface driver usbserial_generic
[243117.898717] usbserial: USB Serial support registered for generic
[243117.909313] usbcore: registered new interface driver ftdi_sio
[243117.909327] usbserial: USB Serial support registered for FTDI USB Serial Device
[243117.909376] ftdi_sio 1-3:1.0: FTDI USB Serial Device converter detected
[243117.909411] usb 1-3: Detected FT232RL
[243117.909985] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
@hellosct1
Flashrom (1/2)
●
Utilitaire pour
– Identifier
– Lire
– Ecrire
– Vérifier
– Effacer les puces
flash.
●
Conçu pour flasher les
images BIOS
– EFI
– Coreboot
– Firmware
– optionROM
●
sur
– Les cartes mères,
– Les cartes de contrôleur
réseau/graphique/stockage
@hellosct1
Flashrom (2/2)
●
Prend en charge plus
– 476 puces flash,
– 291 chipsets
– 500 cartes mères,
– 79 périphériques PCI
– 17 périphériques USB
@hellosct1
Modem terminal
●
Tapez :
$ sudo minicom -b 115200 -D /dev/ttyUSB0
@hellosct1
Comment l’utilisé ?
●
Pour discuter avec un module
●
Faire une analyse de signaux
●
Faire du « Reverse engineering » sur une carte
inconnu
Ce qui faut savoir :
« bus pirate » est bootloadé
Possible
Mettre à jour
Changer de firmware, etc …
via le port usb
sans aucun autre matériel.
@hellosct1 – Programmez #10 -
●
Présentation
●
Que fait-on avec ?
●
Alternatives
@hellosct1
Matériels
●
Firmware officiel
– Fonctionnalités de base
●
Ce dont vous aurez besoin :
– une carte « bus pirate »
●
de préférence la v4
– un câble « bus pirate probe » de seeedstudio
– un câble mini usb
@hellosct1
Le cable
@hellosct1
Les raccourcis clavier
@hellosct1
Matériels
●
un lecteur de carte
RFID série de
parallax
●
un tag RFID
compatible avec le
lecteur ci dessus
➢
UART
➢
I2C
➢
SPI
➢
LCD
➢
Analogique (ADC)
@hellosct1
Session 2
●
Pour la partie I2C :
– un module RTC
(horloge)
de sparkfun
➢
I2C
➢
UART
➢
SPI
➢
LCD
➢
Analogique (ADC)
@hellosct1
Session 3
●
Pour la partie SPI :
●
Serial Peripheral Interface
●
Modèle 74HC595
●
Composé
– 8 leds
– 8 résistances de
330ohms
➢
SPI
➢
UART
➢
I2C
➢
LCD
➢
Analogique (ADC)
@hellosct1
Session 4
●
Pour la partie LCD
– un adaptateur lcd
●
« bus pirate »
de seeedstudio
– un écran lcd 2×16
➢
LCD
➢
UART
➢
I2C
➢
SPI
➢
Analogique (ADC)
@hellosct1
Session 5
●
Pour la partie analogique
– un potentiomètre
– un joystick
➢
Analogique (ADC)
➢
UART
➢
I2C
➢
SPI
➢
LCD
@hellosct1
Mode UART
●
Un lecteur RFID
●
Fonctionne en 2400 bauds
●
Câblage notre lecteur RFID
– lecteur RFID -> Bus pirate
– SOUT -> MISO
– ENABLE -> AUX
– VCC -> +5v
– GND -> GND
@hellosct1
Tester si le connecteur est ouvert ?
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
(1)>3
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value
(1)>3 (2400 bauds)
Data bits and parity:
1. 8, NONE *default
2. 8, EVEN
3. 8, ODD
4. 9, NONE
(1)>1
Stop bits:
1. 1 *default
2. 2
(1)>1
Receive polarity:
1. Idle 1 *default
2. Idle 0
(1)>1
Select output type:
1. Open drain
(H=Hi-Z, L=GND)
2. Normal (H=3.3V,
L=GND)
(1)>1
Ready
UART>
●
Connexion : Hiz
@hellosct1
Tester si le connecteur est ouvert ?
●
Résultat :
– La led « mode » est allumé
→ Câblage notre lecteur RFID… Succès
@hellosct1
Etape 2 : Allumer notre bus pirate
●
Commande « W »
●
La led « vreg » doit s’allumer
– Le circuit en cours de test est alimenté
Le lecteur RFID est allumé
La led est verte
mode sleep
@hellosct1
Etape 3
●
Pour utiliser le lecteur RFID
– Sleep → ON
●
Placer la broche AUX à l’état BAS.
Le lecteur RFID est
désormais prêt à être
utilisé
@hellosct1
Récupérer les octets du tag lecteur RFID
●
Test 1
r:10
→ Lire 10 octets
UART>r:10
READ: -f 0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO
DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00
FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00
UART>
→ Probléme
Nous ne savons pas quand le lecteur RFID envoie quelque chose,
→ Obligation :
Placer le bus pirate en mode lecture continu pour avoir un affichage en continu des données reçu.
@hellosct1
Récupérer les octets du Tag lecteur RFID
●
Test N°2
(2)
UART>(2)
Raw UART input
Any key to exit
Le mode lecture continu est en marche
Les octets correspondant à l’identifiant du tag RFID
2600D6F1A8
@hellosct1
Arrêt Mode lecture
●
w
●
m
●
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
@hellosct1
Mode Analogique (ADC)
●
Un Joystick
●
Alimenté en 0/5v le bus pirate
●
Câblage :
– joystick -> bus pirate
– GND -> GND
– VCC -> +5v
– VERT -> ADC
@hellosct1
Tester si le connecteur est ouvert ? (1/2)
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
(1)>9 (mode DIO)
Ready
DIO>
DIO>W
Power supplies ON
DIO>
●
Connexion : Dio
Pour allumer :
@hellosct1
Pour mesurer une tension (1/
●
Plusieurs options :
– d
●
pour faire une mesure seul
– v
●
pour afficher les tensions global de la carte bus pirate
en faisant une mesure
– D
●
pour passer en mode voltmètre.
@hellosct1
DIO>d
VOLTAGE
PROBE: 2.06V
DIO>v
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.
(PU) 8.(GR) 9.(WT) 0.(Blk)
GND 3.3V 5.0V ADC VPU AUX CLK MOSI CS
MISO
P P P I I I I I I I
GND 3.32V 5.02V 2.06V 0.00V H H H H H
DIO>D
VOLTMETER MODE
Any key to exit
VOLTAGE PROBE: 2.06V
@hellosct1
Retour au menu
●
w
●
m
●
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
@hellosct1
Mode I2C
●
module RTC (real time clock)
– Ex DS1307
●
On connaît le datasheet mais pas son adresse I2C
●
Câblage :
– DS1307 -> bus pirate
– GND -> GND
– 5V -> +5V
– SDA -> MOSI
– SCL -> CLK
@hellosct1
Trouver l’heure actuelle stocké dans le module RTC
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
(1)>4
Set speed:
1. ~5KHz
2. ~50KHz
3. ~100KHz
4. ~400KHz
(1)>3
Ready
I2C>W
Power supplies ON
I2C>(0)
0.Macro menu
1.7bit address search
2.I2C sniffer
I2C>
●
Connexion : Hiz
@hellosct1
Trouver l’heure actuelle stocké dans le module RTC
2C>W
Power supplies ON
I2C>P
Pull-up resistors ON
I2C>v
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL)
7.(PU) 8.(GR) 9.(WT) 0.(Blk)
GND 3.3V 5.0V ADC VPU AUX SCL SDA - -
P P P I I I I I I I
GND 3.32V 5.02V 0.00V 5.03V L H H H H
I2C>
Mise sous tension « vpu »
I2C>(1)
Searching I2C address space.
Found devices at:
0xD0(0x68 W) 0xD1(0x68 R)
I2C>
module RTC
trouvé
@hellosct1
●
Mémoire du DS1307
@hellosct1
●
Pour demander l’heure, plusieurs étapes :
– Envoyé 0 à l’adresse 0xD0
– puis demander 8 octets à l’adresse 0xD1
●
C’est à dire
– [
– ]
– r:8
bit de start
bit de stop
demande de 8 octets
@hellosct1
Au niveau du code
I2C>[0xd0 0 [0xd1 r:8]
I2C START BIT
WRITE: 0xD0 ACK
WRITE: 0x00 ACK
I2C START BIT
WRITE: 0xD1 ACK
READ: 0x28 ACK 0x47 ACK 0x14 ACK
0x02 ACK 0x25 ACK 0x10 ACK 0x11 ACK 0x00
NACK
I2C STOP BIT
I2C>
envoyé un bit de start
pour dire aux périphériques du bus I2C
J’envoie ensuite à 0xD0 l’octet 0
puis sans fermé la communication
Je renvois un bit de start
pour demander à 0xD1
cette fois si 8 octets
une fois les huits octets recu
je coupe la communication
@hellosct1
Résultat
0x28 – 28 secondes
0x47 – 47 minutes
0x14 – 14 heures
0x02 – 2 (mardi)
0x25 – 25 (jours)
0x10 – 10 (octobre)
0x11 – 2020 (années)
E n français
Le mardi 25 octobre 2020
et il est 14 heures, 47 minutes, 28 secondes.
@hellosct1
Retour au menu
●
w
●
m
●
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
@hellosct1
Mode SPI
●
CI 74HC595 qui est un registre à décalage 8 bits
– Chaque sortie une led, soit un total de 8 led
– Valeur transmise sous la forme d’un octet via le bus SPI
●
Câblage :
– 74HC595 -> bus pirate
– DS -> MOSI
– ST_CP -> CS
– SH_CP -> TCK
– GND -> GND
– VCC -> +5v
– OE -> GND
– MR -> +5v
Chaque led est cablé ainsi : IO -> led -> résistance (330ohms) -> GND
@hellosct1
Tester si le connecteur est ouvert ? (1/2)
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
(1)>7
Set speed:
1. ~5KHz
2. ~50KHz
3. ~100KHz
4. ~400KHz
(1)>1
CS:
1. CS
2. /CS *default
(2)>2
Select output type:
1. Open drain
(H=Hi-Z, L=GND)
2. Normal (H=3.3V,
L=GND)
(1)>2
Ready
3WIRE>
●
Connexion : Hiz
@hellosct1
3WIRE>W
Power supplies ON
3WIRE>[
/CS ENABLED
3WIRE>0][
WRITE: 0x00
/CS DISABLED
/CS ENABLED
3WIRE>255][
WRITE: 0xFF
/CS DISABLED
/CS ENABLED
3WIRE>
Comment ça marche ?
* On allume l’alimentation avec « W »
A partir de là le 74HC595 est alimenté.
* On exécute la commande « [ »
pour mettre CS à LOW,
se qui active le 74HC595
qui attend alors un octet.
* On envoi nos données sous la forme d’un
octet.
* Puis on dit au 74HC595
de placer ses sorties
selon l’octet qu’on vient de lui envoyer
* Plaçant CS à HIGH puis à LOW
* On dit au 74HC595 que l’envoi est terminé
* Selon ce qu’on lui a demandé
puis avec le second « [ »
on lui dit d’attendre le prochain octet
@hellosct1
Mode LCD
●
Un écran LCD
●
brancher le câble sur l’adaptateur LCD
– l’autre bout au bus pirate
●
Câblage
– N/A
@hellosct1
Tester si le connecteur est ouvert ? (1/2)
HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)
(1)>8
This mode requires an
adapter
Ready
LCD>W
Power supplies ON
●
Connexion : Hiz
@hellosct1
LCD>(0)
0.Macro menu
1.LCD Reset
2.Init LCD
3.Clear LCD
4.Cursor position ex:(4) 0
6.Write test numbers ex:(6) 80
7.Write test characters ex:(7) 80
LCD>(1)
RESET
LCD>(2)
RESET
Display lines:
1. 1
2. Multiple
(2)>2
INIT
LCD>(3)
CLEAR
LCD>"Hello World !"
WRITE: "Hello World !"
LCD>
@hellosct1 – Programmez #10 -
●
Présentation
●
Que fait-on avec ?
●
Bonus
@hellosct1
Alternatif
Ds projets de firmware alternatif on vu le jour,
●
programmateur de fpga,
●
d’avr,
●
analyseur logique
●
mini oscilloscope
●
module jtag
@hellosct1
En voir plus
@hellosct1 – Programmez #10 -
Atos Recrute
●
CDI
●
Stage
●
Alternance
●
...
@hellosct1
Merci
Christophe Villeneuve
@hellosct1
@hellosct1@mamot.fr

Contenu connexe

Tendances

Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackALTIC Altic
 
Logs serveurs : du terme barbare à la simplicité de la réalité
Logs serveurs :  du terme barbare à la simplicité de la réalitéLogs serveurs :  du terme barbare à la simplicité de la réalité
Logs serveurs : du terme barbare à la simplicité de la réalitéKarles Nine
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostAlexander DEJANOVSKI
 
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016Duyhai Doan
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Olivier DASINI
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésRomain Hardouin
 

Tendances (8)

Riak introduction
Riak introductionRiak introduction
Riak introduction
 
Sahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStackSahara : Hadoop as Service avec OpenStack
Sahara : Hadoop as Service avec OpenStack
 
Logs serveurs : du terme barbare à la simplicité de la réalité
Logs serveurs :  du terme barbare à la simplicité de la réalitéLogs serveurs :  du terme barbare à la simplicité de la réalité
Logs serveurs : du terme barbare à la simplicité de la réalité
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez Chronopost
 
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8
 
201505 monitoring
201505 monitoring201505 monitoring
201505 monitoring
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 

Similaire à Pentest bus pirate

Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYlaurenthuet
 
Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.iolaurenthuet
 
Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'Pierre-jean Texier
 
Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro frameworkVincent Hubert
 
121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheadscgodefroy
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendreMariamHafsa
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptMouhcine Nid Belkacem
 
Atelier PyMite sur STM32F4 à PyconFR 2012
Atelier PyMite sur STM32F4 à PyconFR 2012Atelier PyMite sur STM32F4 à PyconFR 2012
Atelier PyMite sur STM32F4 à PyconFR 2012Jonathan Schemoul
 
ssh, bien plus qu'un telnet sécurisé
ssh, bien plus qu'un telnet sécuriséssh, bien plus qu'un telnet sécurisé
ssh, bien plus qu'un telnet sécuriséTryphon
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...Pôle Systematic Paris-Region
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Présentation Arduino
Présentation ArduinoPrésentation Arduino
Présentation ArduinoArnaud Boudou
 

Similaire à Pentest bus pirate (20)

Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
 
Mini projet 3t2i se
Mini projet 3t2i seMini projet 3t2i se
Mini projet 3t2i se
 
Hacking your Home @bdx.io
Hacking your Home @bdx.ioHacking your Home @bdx.io
Hacking your Home @bdx.io
 
Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'
 
Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro framework
 
121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads
 
Raspberry Pi: Les utilisations
Raspberry Pi: Les utilisationsRaspberry Pi: Les utilisations
Raspberry Pi: Les utilisations
 
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Projet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_pptProjet boot loader avec le pic16f887_ppt
Projet boot loader avec le pic16f887_ppt
 
Atelier PyMite sur STM32F4 à PyconFR 2012
Atelier PyMite sur STM32F4 à PyconFR 2012Atelier PyMite sur STM32F4 à PyconFR 2012
Atelier PyMite sur STM32F4 à PyconFR 2012
 
ssh, bien plus qu'un telnet sécurisé
ssh, bien plus qu'un telnet sécuriséssh, bien plus qu'un telnet sécurisé
ssh, bien plus qu'un telnet sécurisé
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Qt5 embedded
Qt5 embeddedQt5 embedded
Qt5 embedded
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Présentation Arduino
Présentation ArduinoPrésentation Arduino
Présentation Arduino
 

Plus de Christophe Villeneuve

La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteChristophe Villeneuve
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Christophe Villeneuve
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activitesChristophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueChristophe Villeneuve
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsChristophe Villeneuve
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsChristophe Villeneuve
 
La réalité melangée dans vos applications
La réalité melangée dans vos applicationsLa réalité melangée dans vos applications
La réalité melangée dans vos applicationsChristophe Villeneuve
 

Plus de Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtools
 
la réalité mélangée de A a Z
la réalité mélangée de A a Zla réalité mélangée de A a Z
la réalité mélangée de A a Z
 
La réalité melangée dans vos applications
La réalité melangée dans vos applicationsLa réalité melangée dans vos applications
La réalité melangée dans vos applications
 

Pentest bus pirate

  • 2. Atos open source - afup – lemug.fr – mariadb – drupal – mozilla - firefox – lemugfr - sumo – webextensions – VR – AR – XR - Cause commune 93.1 FM - TechSpeaker - Lizard - eyrolles – editions eni – programmez – linux pratique – webriver – elephpant - CommonVoice – Sécurité - Cybersécurité Christophe Villeneuve ● Consultant Open Source ● Dresseur animaux
  • 4. @hellosct1 – Programmez #10 - ● Présentation ● Que fait-on avec ? ● Alternatives
  • 5. @hellosct1 Qu’est ce ? Le bus pirate ● Multi-outil – open source – Open Hardware ● But – Tester qui parle aux appareils électroniques. ● Nombreuses fonctionnalités – Vérifier la sécurité d’un nouveau produit ● Interface de terminal simple – Disponible sur Linux et Windows
  • 6. @hellosct1 Le bus pirate ● Outil – Proposé par Dangerous prototypes – Développé par Ian Lesnet. ● Permet le dialogue entre un PC et une cible 1-wire, 2-wire, 3-wire, UART, I2C, SPI, et HD44780 ● Permet de fournir des alimentations 5V ou 3.3V ● Lire des tensions (0-6V) ● Générer un PWM ● Mesurer des fréquences jusqu’à 40MHz ● Activer des résistances de pull-up… Un compagnon idéal de l’ingénieur en phase de prototypage ou du hacker.
  • 7. @hellosct1 La carte peut faire ● Protocoles de base avec le firmware officiel : – 1-Wire – I2C – SPI – Asynchronous serial – MIDI – HD44780 LCD – 2 et 3-wire – mode "raw binary" sur les modes ● bitbang, 1-Wire, I2C, SPI, et UART
  • 8. @hellosct1 Idée ● Besoin de dialoguer – Avec un nouveau composant – De sniffer un réseau I2C ● Interface USB-série – Permet d’envoyer des commandes depuis un PC ● via un simple terminal (type PuTTY ou terminal) – Les commandes reçues seront analysées syntaxiquement (parsing) par le logiciel du bus pirate ● Et traduites en instructions machines (opcodes) ● Afin de programmer les périphériques concernés – timers, I/O, ADC, … ● Transparents pour l’utilisateur
  • 9. @hellosct1 Prise en main ● Pour pouvoir commencer A utiliser le bus pirate ● Il faut le relier – Port USB ● à l’aide d’un câble mini USB type B mâle / USB type A mâle. ● Sur Windows : – Télécharger un driver FTDI et un émulateur de terminal. – Prise en main du bus pirate sur Windows. ● Sur Linux : – pas besoin ● De driver FTDI ● Emulateur de terminal
  • 10. @hellosct1 En pratique ● Voir le tampon des messages du noyau. $ dmesg | tail [243117.786653] usb 1-3: Product: FT232R USB UART [243117.786658] usb 1-3: Manufacturer: FTDI [243117.786662] usb 1-3: SerialNumber: A906H8YA [243117.898706] usbcore: registered new interface driver usbserial_generic [243117.898717] usbserial: USB Serial support registered for generic [243117.909313] usbcore: registered new interface driver ftdi_sio [243117.909327] usbserial: USB Serial support registered for FTDI USB Serial Device [243117.909376] ftdi_sio 1-3:1.0: FTDI USB Serial Device converter detected [243117.909411] usb 1-3: Detected FT232RL [243117.909985] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
  • 11. @hellosct1 Flashrom (1/2) ● Utilitaire pour – Identifier – Lire – Ecrire – Vérifier – Effacer les puces flash. ● Conçu pour flasher les images BIOS – EFI – Coreboot – Firmware – optionROM ● sur – Les cartes mères, – Les cartes de contrôleur réseau/graphique/stockage
  • 12. @hellosct1 Flashrom (2/2) ● Prend en charge plus – 476 puces flash, – 291 chipsets – 500 cartes mères, – 79 périphériques PCI – 17 périphériques USB
  • 13. @hellosct1 Modem terminal ● Tapez : $ sudo minicom -b 115200 -D /dev/ttyUSB0
  • 14. @hellosct1 Comment l’utilisé ? ● Pour discuter avec un module ● Faire une analyse de signaux ● Faire du « Reverse engineering » sur une carte inconnu Ce qui faut savoir : « bus pirate » est bootloadé Possible Mettre à jour Changer de firmware, etc … via le port usb sans aucun autre matériel.
  • 15. @hellosct1 – Programmez #10 - ● Présentation ● Que fait-on avec ? ● Alternatives
  • 16. @hellosct1 Matériels ● Firmware officiel – Fonctionnalités de base ● Ce dont vous aurez besoin : – une carte « bus pirate » ● de préférence la v4 – un câble « bus pirate probe » de seeedstudio – un câble mini usb
  • 19. @hellosct1 Matériels ● un lecteur de carte RFID série de parallax ● un tag RFID compatible avec le lecteur ci dessus ➢ UART ➢ I2C ➢ SPI ➢ LCD ➢ Analogique (ADC)
  • 20. @hellosct1 Session 2 ● Pour la partie I2C : – un module RTC (horloge) de sparkfun ➢ I2C ➢ UART ➢ SPI ➢ LCD ➢ Analogique (ADC)
  • 21. @hellosct1 Session 3 ● Pour la partie SPI : ● Serial Peripheral Interface ● Modèle 74HC595 ● Composé – 8 leds – 8 résistances de 330ohms ➢ SPI ➢ UART ➢ I2C ➢ LCD ➢ Analogique (ADC)
  • 22. @hellosct1 Session 4 ● Pour la partie LCD – un adaptateur lcd ● « bus pirate » de seeedstudio – un écran lcd 2×16 ➢ LCD ➢ UART ➢ I2C ➢ SPI ➢ Analogique (ADC)
  • 23. @hellosct1 Session 5 ● Pour la partie analogique – un potentiomètre – un joystick ➢ Analogique (ADC) ➢ UART ➢ I2C ➢ SPI ➢ LCD
  • 24. @hellosct1 Mode UART ● Un lecteur RFID ● Fonctionne en 2400 bauds ● Câblage notre lecteur RFID – lecteur RFID -> Bus pirate – SOUT -> MISO – ENABLE -> AUX – VCC -> +5v – GND -> GND
  • 25. @hellosct1 Tester si le connecteur est ouvert ? HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change) (1)>3 Set serial port speed: (bps) 1. 300 2. 1200 3. 2400 4. 4800 5. 9600 6. 19200 7. 38400 8. 57600 9. 115200 10. BRG raw value (1)>3 (2400 bauds) Data bits and parity: 1. 8, NONE *default 2. 8, EVEN 3. 8, ODD 4. 9, NONE (1)>1 Stop bits: 1. 1 *default 2. 2 (1)>1 Receive polarity: 1. Idle 1 *default 2. Idle 0 (1)>1 Select output type: 1. Open drain (H=Hi-Z, L=GND) 2. Normal (H=3.3V, L=GND) (1)>1 Ready UART> ● Connexion : Hiz
  • 26. @hellosct1 Tester si le connecteur est ouvert ? ● Résultat : – La led « mode » est allumé → Câblage notre lecteur RFID… Succès
  • 27. @hellosct1 Etape 2 : Allumer notre bus pirate ● Commande « W » ● La led « vreg » doit s’allumer – Le circuit en cours de test est alimenté Le lecteur RFID est allumé La led est verte mode sleep
  • 28. @hellosct1 Etape 3 ● Pour utiliser le lecteur RFID – Sleep → ON ● Placer la broche AUX à l’état BAS. Le lecteur RFID est désormais prêt à être utilisé
  • 29. @hellosct1 Récupérer les octets du tag lecteur RFID ● Test 1 r:10 → Lire 10 octets UART>r:10 READ: -f 0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 FAILED, NO DATA0x00 UART> → Probléme Nous ne savons pas quand le lecteur RFID envoie quelque chose, → Obligation : Placer le bus pirate en mode lecture continu pour avoir un affichage en continu des données reçu.
  • 30. @hellosct1 Récupérer les octets du Tag lecteur RFID ● Test N°2 (2) UART>(2) Raw UART input Any key to exit Le mode lecture continu est en marche Les octets correspondant à l’identifiant du tag RFID 2600D6F1A8
  • 31. @hellosct1 Arrêt Mode lecture ● w ● m ● HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change)
  • 32. @hellosct1 Mode Analogique (ADC) ● Un Joystick ● Alimenté en 0/5v le bus pirate ● Câblage : – joystick -> bus pirate – GND -> GND – VCC -> +5v – VERT -> ADC
  • 33. @hellosct1 Tester si le connecteur est ouvert ? (1/2) HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change) (1)>9 (mode DIO) Ready DIO> DIO>W Power supplies ON DIO> ● Connexion : Dio Pour allumer :
  • 34. @hellosct1 Pour mesurer une tension (1/ ● Plusieurs options : – d ● pour faire une mesure seul – v ● pour afficher les tensions global de la carte bus pirate en faisant une mesure – D ● pour passer en mode voltmètre.
  • 35. @hellosct1 DIO>d VOLTAGE PROBE: 2.06V DIO>v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7. (PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX CLK MOSI CS MISO P P P I I I I I I I GND 3.32V 5.02V 2.06V 0.00V H H H H H DIO>D VOLTMETER MODE Any key to exit VOLTAGE PROBE: 2.06V
  • 36. @hellosct1 Retour au menu ● w ● m ● HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change)
  • 37. @hellosct1 Mode I2C ● module RTC (real time clock) – Ex DS1307 ● On connaît le datasheet mais pas son adresse I2C ● Câblage : – DS1307 -> bus pirate – GND -> GND – 5V -> +5V – SDA -> MOSI – SCL -> CLK
  • 38. @hellosct1 Trouver l’heure actuelle stocké dans le module RTC HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change) (1)>4 Set speed: 1. ~5KHz 2. ~50KHz 3. ~100KHz 4. ~400KHz (1)>3 Ready I2C>W Power supplies ON I2C>(0) 0.Macro menu 1.7bit address search 2.I2C sniffer I2C> ● Connexion : Hiz
  • 39. @hellosct1 Trouver l’heure actuelle stocké dans le module RTC 2C>W Power supplies ON I2C>P Pull-up resistors ON I2C>v Pinstates: 1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk) GND 3.3V 5.0V ADC VPU AUX SCL SDA - - P P P I I I I I I I GND 3.32V 5.02V 0.00V 5.03V L H H H H I2C> Mise sous tension « vpu » I2C>(1) Searching I2C address space. Found devices at: 0xD0(0x68 W) 0xD1(0x68 R) I2C> module RTC trouvé
  • 41. @hellosct1 ● Pour demander l’heure, plusieurs étapes : – Envoyé 0 à l’adresse 0xD0 – puis demander 8 octets à l’adresse 0xD1 ● C’est à dire – [ – ] – r:8 bit de start bit de stop demande de 8 octets
  • 42. @hellosct1 Au niveau du code I2C>[0xd0 0 [0xd1 r:8] I2C START BIT WRITE: 0xD0 ACK WRITE: 0x00 ACK I2C START BIT WRITE: 0xD1 ACK READ: 0x28 ACK 0x47 ACK 0x14 ACK 0x02 ACK 0x25 ACK 0x10 ACK 0x11 ACK 0x00 NACK I2C STOP BIT I2C> envoyé un bit de start pour dire aux périphériques du bus I2C J’envoie ensuite à 0xD0 l’octet 0 puis sans fermé la communication Je renvois un bit de start pour demander à 0xD1 cette fois si 8 octets une fois les huits octets recu je coupe la communication
  • 43. @hellosct1 Résultat 0x28 – 28 secondes 0x47 – 47 minutes 0x14 – 14 heures 0x02 – 2 (mardi) 0x25 – 25 (jours) 0x10 – 10 (octobre) 0x11 – 2020 (années) E n français Le mardi 25 octobre 2020 et il est 14 heures, 47 minutes, 28 secondes.
  • 44. @hellosct1 Retour au menu ● w ● m ● HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change)
  • 45. @hellosct1 Mode SPI ● CI 74HC595 qui est un registre à décalage 8 bits – Chaque sortie une led, soit un total de 8 led – Valeur transmise sous la forme d’un octet via le bus SPI ● Câblage : – 74HC595 -> bus pirate – DS -> MOSI – ST_CP -> CS – SH_CP -> TCK – GND -> GND – VCC -> +5v – OE -> GND – MR -> +5v Chaque led est cablé ainsi : IO -> led -> résistance (330ohms) -> GND
  • 46. @hellosct1 Tester si le connecteur est ouvert ? (1/2) HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change) (1)>7 Set speed: 1. ~5KHz 2. ~50KHz 3. ~100KHz 4. ~400KHz (1)>1 CS: 1. CS 2. /CS *default (2)>2 Select output type: 1. Open drain (H=Hi-Z, L=GND) 2. Normal (H=3.3V, L=GND) (1)>2 Ready 3WIRE> ● Connexion : Hiz
  • 47. @hellosct1 3WIRE>W Power supplies ON 3WIRE>[ /CS ENABLED 3WIRE>0][ WRITE: 0x00 /CS DISABLED /CS ENABLED 3WIRE>255][ WRITE: 0xFF /CS DISABLED /CS ENABLED 3WIRE> Comment ça marche ? * On allume l’alimentation avec « W » A partir de là le 74HC595 est alimenté. * On exécute la commande « [ » pour mettre CS à LOW, se qui active le 74HC595 qui attend alors un octet. * On envoi nos données sous la forme d’un octet. * Puis on dit au 74HC595 de placer ses sorties selon l’octet qu’on vient de lui envoyer * Plaçant CS à HIGH puis à LOW * On dit au 74HC595 que l’envoi est terminé * Selon ce qu’on lui a demandé puis avec le second « [ » on lui dit d’attendre le prochain octet
  • 48. @hellosct1 Mode LCD ● Un écran LCD ● brancher le câble sur l’adaptateur LCD – l’autre bout au bus pirate ● Câblage – N/A
  • 49. @hellosct1 Tester si le connecteur est ouvert ? (1/2) HiZ>m 1. HiZ 2. 1-WIRE 3. UART 4. I2C 5. SPI 6. 2WIRE 7. 3WIRE 8. LCD 9. DIO x. exit(without change) (1)>8 This mode requires an adapter Ready LCD>W Power supplies ON ● Connexion : Hiz
  • 50. @hellosct1 LCD>(0) 0.Macro menu 1.LCD Reset 2.Init LCD 3.Clear LCD 4.Cursor position ex:(4) 0 6.Write test numbers ex:(6) 80 7.Write test characters ex:(7) 80 LCD>(1) RESET LCD>(2) RESET Display lines: 1. 1 2. Multiple (2)>2 INIT LCD>(3) CLEAR LCD>"Hello World !" WRITE: "Hello World !" LCD>
  • 51. @hellosct1 – Programmez #10 - ● Présentation ● Que fait-on avec ? ● Bonus
  • 52. @hellosct1 Alternatif Ds projets de firmware alternatif on vu le jour, ● programmateur de fpga, ● d’avr, ● analyseur logique ● mini oscilloscope ● module jtag
  • 54. @hellosct1 – Programmez #10 - Atos Recrute ● CDI ● Stage ● Alternance ● ...