Petits pas vers la conduite autonome DIY : VW Golf Edition

Belle conception thermique, mais le revêtement conforme et l’absence de marques d’identification rendent l’ingénierie inverse difficile

[Willem Melching] possède une Volkswagen Golf 2010 – un véhicule très courant en Europe – et a remarqué que même si la crémaillère de direction électronique prend en charge le système habituel d’assistance au maintien de voie (LKAS), et serait théoriquement capable de fonctionner dans une configuration beaucoup plus avancée en utilisant openpilot, il y avait quelques lacunes dans la mise en œuvre de VW, ce qui signifie qu’il ne fonctionnerait pas assez longtemps pour le rendre viable. Être très intéressé et manifestement extrêmement capable de faire de l’ingénierie inverse des calculateurs de voiture et de les pirater pour les soumettre, [Willem] a commencé à documenter son parcours pour déverrouiller le support openpilot pour son propre véhicule.

Et quel voyage ce fut ! La série de blogs en quatre parties est magnifiquement écrite, montrant chaque détail sanglant et tous les outils utilisés en cours de route. La première partie montre l’ECU de direction assistée électronique (EPS) d’un module Volkswagen Golf Mk6 2010 (qui se trouve à l’arrière du moteur de crémaillère de direction triphasé) en train d’être ouvert pour révéler une approche intéressante du module multipuce, avec matrice nue directement liés à une paire de circuits imprimés de substrat, qui sont à leur tour liés à l’arrière du boîtier du moteur, vraisemblablement pour des raisons de dissipation thermique. Conception astucieuse, mais frustrante en même temps car cela rend l’identification des pièces un peu plus délicate !

L’entropie moins le 1.0, et les sections zéro indiquent qu’aucun cryptage n’est appliqué

[Willem] utilise une variété d’outils et d’astuces pour mettre sous tension et renifler le trafic ECU sur le bus CAN, lorsqu’il est connecté à un outil de débogage compatible SAE J2534, déterminant finalement qu’il parle le protocole de bus CAN TP2.0 spécifique à VW, et réussi à récupérer suffisamment de trafic pour vérifier qu’il était possible d’utiliser le protocole de diagnostic standard KWP2000 pour accéder à des données intéressantes. Ensuite, une plongée très approfondie dans les images de mise à jour d’ingénierie inverse trouvées en ligne, en effectuant d’abord quelques opérations XOR triviales, puis en examinant un tracé d’entropie du fichier à l’aide de Binwalk pour déterminer s’il avait vraiment du code, et s’il était crypté ou non, Après avoir exécuté cpu_rec, il a été déterminé que le processeur était un Renesas V850. Ensuite, le vrai travail a commencé : charger l’image dans Ghidra pour commencer à deviner l’architecture du code, pour déterminer les correctifs nécessaires pour apporter les modifications souhaitées. Dans la dernière partie de la série, [Willem] extrait et utilise la procédure du bootloader pour patcher partiellement la zone de configuration du code de son véhicule et déverrouille l’objectif qu’il visait – la télécommande de sa direction. (OK, le véritable objectif était de lancer openpilot.)

À notre avis, c’est une lecture très intéressante, bien que longue, montrant un sujet fascinant savamment exécuté. Mais nous tenons à souligner que le module EPS du véhicule est un dispositif testé pour la sécurité ASIL-D, donc tout piratage que vous ferez sur un véhicule routier annulera très certainement votre assurance (sans parler de votre garantie) s’il est découvert dans l’événement d’une réclamation.

Les anciens calculateurs sont un peu plus faciles à pirater, si vous pouvez extraire l’EPROM, et les gens produisent des modules pour toutes sortes de piratage de véhicules. Tellement de choses à bricoler !