Contrôle des serrures de porte via le bus CAN

9

J'essaie de comprendre comment verrouiller et déverrouiller les portes d'un Toyota RAV4 2010 en utilisant le bus CAN via le port OBD-II. J'ai un microcontrôleur connecté via un contrôleur CAN et un récepteur CAN, et j'ai écrit un firmware pour capturer et relire les messages.

Si je déverrouille les portes via le porte-clés ou le bouton de porte, j'obtiens une rafale de messages sur un bus par ailleurs silencieux (la clé est sortie). Cependant, les rejouer ne fait rien. Je soupçonnais que cela pourrait être une sorte de problème d'authentification, j'ai donc essayé quelque chose de moins sensible - les phares. Fait intéressant, lorsque je rejoue les messages de l'allumage des phares, l'indicateur de phare dans le combiné d'instruments s'allume brièvement, mais les phares réels ne font rien.

Je suppose que j'ai plusieurs questions:

1) Cela devrait-il être possible sur le bus CAN exposé sur le port OBD-II? J'ai vu des sources dire que les portes sont contrôlées par un bus différent et plus lent, mais j'ai également vu des appareils annoncés qui verrouillent les portes lorsque vous atteignez une vitesse particulière.

2) Les autres bus sont-ils exposés de quelque façon?

3) Existe-t-il un moyen de découvrir la signification des messages que j'ai capturés sans payer de grosses sommes d'argent à Toyota?

Isvara
la source
Où avez-vous pu obtenir cela et fonctionner à travers l'OBD-II ou avez-vous dû emprunter une autre voie?
SWard

Réponses:

5

Ce que vous voulez faire est possible. J'ai eu une expérience et un désir similaires pour ma Camry 2010. D'après mon expérience, la lecture des messages depuis le port OBD-II ne m'a mené nulle part. C'était comme si les messages CAN n'étaient qu'une réponse à ma manipulation manuelle de la voiture.

J'obtiendrais une réponse de message de verrouillage ou de déverrouillage des portes avec la clé FOB, mais l'envoi de ce même message n'a rien fait.

Ce que vous devez faire, c'est obtenir un câble répartiteur OBD-II et une copie de Toyota Techstream avec un "mini câble VCI". Cela vous permettra de lire les messages que le logiciel Techstream envoie via le port OBD-II.

Tu devrais être capable de:

1- Verrouiller et déverrouiller le conducteur / toutes les portes

2- Coffre Pop

3- Allumer les feux de croisement et les feux de route

4- klaxonner

5- Fenêtres enroulables

6- Etc.

..ou au moins tout a fonctionné pour moi !!

YMMV et bonne chance! :RÉ

(Je ne suis pas responsable des dommages à soi-même ou à la voiture.)

McCoy
la source
1
Mccoy, j'essaie de faire exactement ce que vous avez publié. J'ai installé Techstream et le câble adaptateur USB est connecté à ma Corolla 2012, mais il ne semble pas pousser les personnalisations. Pourriez-vous s'il vous plaît me faire savoir comment vous avez pu atteindre cet objectif? Merci
4

Habituellement, le bus CAN OBD est «ponté» sur les autres bus CAN du véhicule, afin de faciliter le diagnostic des calculateurs sur les autres bus. Cependant, le pont peut uniquement transmettre des messages de diagnostic: (C'est différent sur chaque plate-forme.

En termes de protocole - c'est un problème classique d'ingénierie inverse. Vous devez capturer quelques traces de l'activité CAN lorsque vous appuyez sur le bouton de déverrouillage et déterminez le format des messages. Votre exemple de phare peut indiquer qu'il y a plusieurs bus et que vous n'avez accès qu'à l'un d'eux (qui va à l'unité du tableau de bord, et non aux phares dans ce cas)

Avec les serrures de porte - il est tout à fait possible qu'il y ait également une sorte de réponse au défi qui arrête votre simple "attaque-rejeu".

Martin Thompson
la source
Il est tout à fait possible que les phares eux-mêmes ne soient même pas sur un bus CAN, mais dépendent plutôt d'un câblage et de relais dédiés; pendant que l'indicateur de phare est sur le bus CAN avec le reste du combiné d'instruments.
mac
@mac - en effet
Martin Thompson
3

Si j'étais le gars qui a conçu l'électronique, je ne pourrais pas le faire via CAN-Bus simplement parce que vous obtenez des adaptateurs bluetooth pour OBD2 auxquels une personne debout à l'extérieur de la voiture pourrait s'associer et envoyer les instructions de déverrouillage.

C'est un danger pour la sécurité, donc je ne l'appuierais pas.

Capitaine Kenpachi
la source
2
Les adaptateurs Bluetooth ne font rien sauf si vous avez déjà accès à la voiture pour brancher un récepteur Bluetooth. Quoi qu'il en soit, il s'avère que c'est possible.
Isvara
C'est une pensée effrayante. Pour info: vous bénéficiez également d'adaptateurs wifi OBD-ii et leur portée est importante.
Captain Kenpachi
3

Même si vous vous connectez au bus correct et diffusez le message CAN correct, vous rencontrez toujours le problème de transmission d'un message CAN déjà transmis par un autre ECU.

De la façon dont CAN fonctionne, chaque message peut avoir un ID d'arbitrage également appelé ID de message. En fonctionnement normal, aucun ECU ne diffusera jamais un message avec le même ID sur le même bus. Quand tu fais ça. En théorie, vous devriez pouvoir verrouiller ou déverrouiller la porte, en inondant le bus, avec le message souhaité, mais ce ne sera pas quelque chose que j'utiliserais à l'intérieur d'un produit, car votre abus du bus interfèrera avec la communication des calculateurs. sur le bus qui a diffusé à une priorité inférieure.

Encore une fois, si le message CAN pour verrouiller et déverrouiller la porte, est entièrement piloté par les événements et n'est pas diffusé périodiquement, alors ce que vous essayez de faire est tout à fait possible.

De plus, les messages que vous reniflez, qui changent lorsque vous verrouillez ou déverrouillez la porte, peuvent ne pas être ceux qui vous intéressent. Les messages d'état sont souvent passés sur d'autres bus, vous devez diffuser le message correct sur le bus dont il provient.

Astuce: recherchez en ligne le brochage du connecteur OBD dans votre véhicule.

1) Cela devrait-il être possible sur le bus CAN exposé sur le port OBD-II? J'ai vu des sources dire que les portes sont contrôlées par un bus différent et plus lent, mais j'ai également vu des appareils annoncés qui verrouillent les portes lorsque vous atteignez une vitesse particulière.

Oui, cela peut être possible, mais vous devez connaître le brochage de l'OBDII dans votre voiture qui n'est probablement pas une information publique, mais vous pouvez déterminer ceux qui sont intéressants en éliminant les broches OBDII standard.

2) Les autres bus sont-ils exposés de quelque façon?

Comme indiqué ci-dessus, je pense qu'il y a de bonnes chances d'éliminer les broches OBD standard et les paires restantes seront celles qui vous intéressent. Chaque canal de données peut avoir des données élevées et des données faibles.

3) Existe-t-il un moyen de découvrir la signification des messages que j'ai capturés sans payer de grosses sommes d'argent à Toyota?

Vous avez besoin d'un outil CAN, pour regarder les données sur les broches suspectes, la bonne nouvelle est que vous n'attraperez les messages de la boîte qu'une fois connecté aux broches correctes. Sinon, l'outil générera des erreurs. et Vous pouvez avoir besoin d'un outil qui peut détecter automatiquement les débits en bauds, ou vous pouvez deviner.

Cela va nécessiter un peu de temps et de piratage.

am6sigma
la source
1
La transmission et les collisions ne sont pas un problème. Le contrôleur CAN s'occupe de tout cela - c'est pour ça qu'il est là. J'ai le schéma de câblage de la voiture et il n'y a qu'un seul bus partout. J'ai un dongle qui verrouille les portes à une vitesse définie (environ 5 mph), et cela diffuse le message «verrouiller la porte» une seule fois. Il semble que cela devrait être assez facile à reproduire.
Isvara
Vous avez probablement raison, mais dans la pratique, plusieurs ECU ne transmettent pas le même identifiant de message en même temps sur le même bus. Mais si votre simple réplication, un dongle, c'est une question de faire face aux messages qui en proviennent, et de voir quels bits basculer, ou quand le message est envoyé s'il est basé sur un événement.
am6sigma