hackear seu
carro usando
Rede CAN com
Arduino Due
Prof. André Márcio de Lima Curvello
contato@andrecurvello.com.br
Sobre mim
André Márcio de Lima Curvello
▸ Engenheiro de Computação – USP São Carlos
▸ MBA em Gestão de TI - UNIFRAN
▸ Mestrado em Processamento de Sinais e Instrumentação
– USP São Carlos
▸ Articulista do Portal Embarcados e FilipeFlop
“
Se não puder voar, corra. Se não
puder correr, ande. Se não puder
andar, rasteje, mas continue em
frente de qualquer jeito.
Martin Luther King
!
O que é CAN?
Controller Area Network
▸ Protocolo multi-mestre
▸ Broadcast
▸ Comunicação serial
▸ Baseado em mensagens
▸ Sem “endereços”
▹ IDs
▹ Mensagens
Controller Area Network
Fonte: http://www.slideshare.net/abhinawambitious
Depois!
Fonte: http://www.slideshare.net/abhinawambitious
Um padrão de
Comunicação
Compatibilidade, equipamentos, módulos
REDE
Áreas de Aplicação
▸ Automotivo
▸ Militar
▸ Maquinário Industrial
▸ Maquinário Agrícola
▸ Controle de Elevadores
▸ Sistemas Médicos
▸ Etc
Estrutura-base de uma ECU CAN
Fonte: http://www.ti.com
Topologia de uma Rede CAN
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
E esse Transceiver?
Fonte: http://www.ti.com
E esse Transceiver?
SN65HVD230
Características da Rede CAN
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Como são os SINAIS da Rede CAN
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Pacotes de INFORMAÇÃO
▸ ISO 11898-2
▹ Alta velocidade – 1 Mb/s
▹ Distância de até 40 m
Pacotes de INFORMAÇÃO
Fonte: http://www.ti.com
Pacotes de INFORMAÇÃO
Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
Padrões de Rede CAN
▸ NMEA 2000 – Utilizado em aplicações navais e aéreas
▸ Pedido – ID 0x7DF
▸ Resposta – ID 0x7E8
https://en.wikipedia.org/wiki/OBD-II_ PIDs
Padrões de Rede CAN
▸ OBDII
▸ On Board Diagnostics II
Shields Arduino
▸ Arduino R3
▸ Controller CAN
▹ MCP2515 - SPI
▸ Transceiver CAN
▹ MCP2551
Shield Arduino
▸ Arduino DUE
▸ Transceiver CAN
http://togglebit.net/product/arduino-due-can-shield/
Arduino Due
▸ AT91SAM3X8E
▸ ARM Cortex M3
▸ 84 MHz
▸ Controller CAN
+Transceiver!
Arduino Due
http://www.microchip.com/wwwproducts/en/ATSAM3X8E
Arduino Due
▸ AT91SAM3X8E
▸ ARM Cortex M3
▸ 84 MHz
▸ Controller CAN
+Transceiver!
Desenvolvimento
Com Arduino
Desenvolvimento
Com Arduino
• Apesar de o
Arduino DUE ter o
Controlador CAN...
• Senta na calçada e
chora?
Rede CAN?
Desenvolvimento
Com Arduino
• Repositórios GitHub!
Rede CAN?
Desenvolvimento Com Arduino
Rede CAN?
Desenvolvimento com CAN
▸ Conhecimento de Registradores e
Configurações de Periféricos Associados
▸ AT91SAM3X8E
▸ Termos principais:
▸ ID – identificação da mensagem
▸ DLC – tamanho em bytes da mensagem
▸ Payload – mensagem propriamente
(bytes)
Hora de mostrar a Demonstração!
Módulo
Transceiver
Conexões
Execução
Cuidado com a
Ligação!!!
Mais informações podem ser obtidas
Basta implementar mais queries OBD2
=
http://canze.fisch.lu/arduino-due/
Momento Inspiração
+
+
Poder para bem… E Mal!
http://chadgibbons.com/2013/12/29/hacking-the-jeep-interior-can-bus/
Obrigado!
Perguntas?
Contato
@andremlcurvello
http://youtube.com/profandrecurvello
http://andrecurvello.com.br
http://facebook.com/profandrecurvello
contato@andrecurvello.com.br