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?
Réponses:
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.)
la source
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".
la source
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.
la source
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.
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.
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.
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.
la source