Que peut-on faire via le connecteur OBD dans la voiture

Ce n'est un secret pour personne que dans les voitures modernes, tous les systèmes aux globes oculaires sont obstrués par divers appareils électroniques, même un simple lève-vitre a son propre microcontrôleur et une adresse sur le réseau partagé. En tant que propriétaire intéressé, je me demandais ce qui pouvait être fait avec juste l'accès au connecteur OBD et rien de plus.

Tout ce qui est décrit dans l'article se réfère à la voiture de 2008 (Mitsubishi Lancer), mais comme la pratique l'a montré, après 10 ans, le constructeur n'a rien changé et toutes les fonctions continuent d'être utilisées et fonctionnent sur les voitures modernes.

La structure du réseau dans la voiture est illustrée dans l'image:

image

La voiture dispose de 3 bus CAN (bus moteur haute vitesse 500 kbps, cabine basse vitesse 83,3 kbps, diagnostic) et d'un bus LIN. Le lien de connexion entre eux est le bloc ETACS (Electronic Total Automobile Control System), qui agit comme une «passerelle» et envoie des messages d'un bus à un autre, selon certaines règles, et en traite également certains. Que peut-on faire avec le bus CAN? Par exemple, discutez avec des blocs ou changez peut-être quelque chose. Pour démarrer un dialogue avec n'importe quel bloc, vous devez connaître son adresse, ainsi que les fonctions prises en charge (PID), qu'il peut traiter et donner une réponse.

Dans le domaine public se trouve un logiciel pour les concessionnaires appelé MUT III. Après avoir étudié la base de données, vous pouvez trouver toutes les informations qui nous intéressent.

À propos des adresses (demande-réponse) dans le réseau CAN:

image

PID des demandes, décryptage complet des réponses de tous les blocs, y compris la position des octets dans la réponse (si plusieurs valeurs sont envoyées dans une trame) et des facteurs avec des unités:

image

Par exemple, nous voulons connaître l'angle de braquage. Pour ce faire, envoyez la commande 2102 à l'unité de commande ESP. En réponse, le message 6102 FFEA000008FFF302 arrivera

En regardant le tableau, nous constatons que les octets 2 et 3 sont nécessaires.

image

La valeur en int16. 0xFFEA = -22, en multipliant par un facteur de 0,04375, nous obtenons un angle de braquage de -0,9625 degrés.

Ainsi, vous pouvez demander beaucoup d'informations aux unités de contrôle, jusqu'à combien d'heures la radio a joué et combien de disques ont été chargés dans la radio, ainsi que lancer des tests de diagnostic sur tous les nœuds (vous pouvez allumer différentes lumières sur le tableau de bord et tirer des flèches, par exemple).

image


Eh bien, tout ce que nous voulions, c'était ce que nous avions appris, mais à quoi ça sert? Maintenant, si vous modifiez / activez / désactivez quelque chose ...

Un exemple simple. Dans l'unité de commande de transmission automatique, il existe un compteur logiciel pour le niveau de vieillissement de l'huile, et lorsqu'une certaine valeur seuil est accumulée, un message apparaît sur l'écran bk indiquant que la transmission doit être entretenue. L'huile a été changée et le message continue d'être affiché à l'écran, car personne ne peut réinitialiser le compteur et seul le scanner du concessionnaire MUT-III (qui coûte environ 1000 $, tout le monde ne peut pas se le permettre) peut le réinitialiser et certains programmes (également non gratuits). Dans les mêmes tableaux, vous pouvez trouver l'équipe sous le nom explicite CLEAR_CVT_oil_degradation_level_Start. Vous pouvez rire vicieusement en direction de OD et réinitialiser vous-même ce compteur malheureux. Nous envoyons la commande 31 03 au bloc CVT et ... nous obtenons 7F 31 33 en réponse.

Une petite digression. Presque tous les véhicules utilisent le mécanisme UDS (alias ISO 14229) pour les diagnostics et l'entretien.

Il simplifie la vie des développeurs de scanners de diagnostic automobile et est unifié pour tous les constructeurs automobiles (mais cela ne signifie pas que certains ne peuvent pas inventer leurs propres modules complémentaires).

En conséquence, nous avons une réponse déchiffrée du variateur: 7F - la demande est rejetée, 31 est le PID que nous avons envoyé et le code de réponse négative 33, à savoir Security Access Denied. Autrement dit, nous n'avons pas le droit de modifier ou de demander cette fonction. Qui a-t-elle?

Digression 2. UDS utilise un mécanisme pour restreindre l'accès à plusieurs niveaux - une session de diagnostic régulière, une session étendue, une session de programmation, etc. Chaque session a des niveaux d'accès qui décident de ce que vous pouvez ou non. Pour y accéder, vous devez demander la soi-disant graine du bloc, la traiter avec un algorithme spécifique et la renvoyer au bloc (Clé). Lisez plus ici .

Essayons de demander une graine. Nous envoyons la commande 2701 à l'ECU et obtenons la réponse 6701 6A43FD3C.
En envoyant une valeur de 4 octets en réponse ( 27 02 DEADBEEF), nous obtenons la réponse 7F 27 35, où 35 est la clé non valide (clé non valide), car la valeur "du plafond" a été envoyée. Où chercher un algorithme de calcul clé? Il n'y a nulle part ailleurs dans le firmware de l'unité de contrôle. Il est assez facile de l'obtenir (mais pas sur tous les blocs, tout dépend du microcontrôleur utilisé), on trouve d'abord le gestionnaire de réception CAN, puis la fonction de traitement PID 0x27.

image

En répétant l'échange de la clé de départ avec l'algorithme du firmware, nous obtenons 6702 34 en réponse, où 34 est «L'accès est autorisé». Après cela, la commande de réinitialisation du niveau de dégradation de l'huile est exécutée avec succès et ne renvoie pas un code de réponse négative, mais une réponse positive 7103 01 et le compteur est réinitialisé avec succès.

Ainsi, via le connecteur OBD, vous pouvez faire presque n'importe quoi avec la voiture: changer les numéros VIN dans les blocs, configurer l'encodage (configuration), désactiver le dispositif d'immobilisation en moins d'une seconde, effacer les informations d'erreur, entrer le bloc dans l'état de démarrage lorsque vous pouvez charger n'importe quel code et l'exécuter. Le système de sécurité japonais est légèrement boiteux.

Un exemple de changement de configuration sur une vidéo:


L'article est écrit à titre informatif uniquement. Toute intervention dans les unités de contrôle électronique de la voiture peut être la dernière pour eux. Passez une bonne journée à tous!

Source: https://habr.com/ru/post/fr448658/


All Articles