Was kann über den OBD-Anschluss im Auto getan werden?

Es ist kein Geheimnis, dass in modernen Autos alle Systeme der Augäpfel mit verschiedenen elektronischen Geräten verstopft sind. Selbst ein einfacher Fensterheber verfügt über einen eigenen Mikrocontroller und eine Adresse im gemeinsam genutzten Netzwerk. Als interessierter Eigentümer habe ich mich gefragt, was man nur mit dem Zugriff auf den OBD-Anschluss und sonst nichts tun kann.

Alles, was im Artikel beschrieben wird, bezieht sich auf das Auto von 2008 (Mitsubishi Lancer), aber wie die Praxis gezeigt hat, hat der Hersteller nach 10 Jahren nichts geändert und alle Funktionen werden weiterhin verwendet und arbeiten an modernen Autos.

Die Netzwerkstruktur im Auto ist im Bild dargestellt:

Bild

Das Auto verfügt über 3 CAN-Busse (Hochgeschwindigkeits-Motorbus 500 kbps, Niedriggeschwindigkeitskabine 83,3 kbps, Diagnose) und einen LIN-Bus. Die Verbindung zwischen ihnen ist der ETACS-Block (Electronic Total Automobile Control System), der als „Gateway“ fungiert und nach bestimmten Regeln Nachrichten von einem Bus zum anderen sendet und auch einige von ihnen verarbeitet. Was kann man mit dem CAN-Bus machen? Chatten Sie beispielsweise mit Blöcken oder ändern Sie etwas. Um einen Dialog mit einem Block zu beginnen, müssen Sie dessen Adresse sowie die unterstützten Funktionen (PID) kennen, die er verarbeiten und beantworten kann.

In der Public Domain liegt Software für Händler namens MUT III. Nachdem Sie die Datenbank daraus studiert haben, finden Sie alle Informationen, die uns interessieren.

Informationen zu Adressen (Request-Response) im CAN-Netzwerk:

Bild

PIDs von Anforderungen, vollständige Entschlüsselung von Antworten aus allen Blöcken, einschließlich der Position von Bytes in der Antwort (wenn mehrere Werte in einem Frame gesendet werden) und Faktoren mit Einheiten:

Bild

Zum Beispiel wollen wir den Lenkwinkel wissen. Senden Sie dazu den Befehl 2102 an die ESP-Steuereinheit. Als Antwort kommt die Nachricht 6102 FFEA000008FFF302 an

Wenn wir uns die Tabelle ansehen, stellen wir fest, dass die Bytes 2 und 3 benötigt werden.

Bild

Der Wert in int16. 0xFFEA = -22, multipliziert mit einem Faktor von 0,04375 erhalten wir einen Lenkwinkel von -0,9625 Grad.

Auf diese Weise können Sie viele Informationen von den Steuergeräten anfordern, bis zu der Anzahl der Stunden, in denen das Radio abgespielt wurde und wie viele Festplatten in das Radio geladen wurden, sowie Diagnosetests für alle Knoten durchführen (Sie können beispielsweise verschiedene Lichter am Armaturenbrett einschalten und Pfeile ziehen).

Bild


Wir wollten nur, was wir gelernt haben, aber was nützt es? Nun, wenn Sie etwas ändern / aktivieren / deaktivieren ...

Ein einfaches Beispiel. In der Steuereinheit des Automatikgetriebes gibt es einen Software-Zähler für den Ölalterungsgrad. Wenn ein bestimmter Schwellenwert akkumuliert wird, wird auf dem Bildschirm bk eine Meldung angezeigt, dass das Getriebe gewartet werden muss. Das Öl wurde gewechselt und die Meldung wird weiterhin auf dem Bildschirm angezeigt, da niemand den Zähler zurücksetzen kann und nur der MUT-III-Händlerscanner (der etwa 1000 US-Dollar kostet, nicht jeder kann es sich leisten) ihn zurücksetzen kann und einige Programme (auch nicht kostenlos). Alle in denselben Tabellen finden Sie das Team unter dem selbsterklärenden Namen CLEAR_CVT_oil_degradation_level_Start. Sie können bösartig in Richtung OD lachen und diesen unglücklichen Zähler selbst zurücksetzen. Wir senden den Befehl 31 03 an den CVT-Block und ... erhalten als Antwort 7F 31 33.

Ein kleiner Exkurs. Fast alle Fahrzeuge verwenden den UDS- Mechanismus (auch bekannt als ISO 14229) zur Diagnose und Wartung.

Es vereinfacht das Leben der Entwickler von Kfz-Diagnosescannern und ist für alle Automobilhersteller einheitlich (dies bedeutet jedoch nicht, dass einige ihre eigenen Add-Ons nicht darüber hinaus erfinden können).

Als Ergebnis haben wir eine entschlüsselte Antwort vom Variator: 7F - Die Anforderung wird abgelehnt, 31 ist die von uns gesendete PID und der negative Antwortcode 33, nämlich Sicherheitszugriff verweigert. Das heißt, wir haben keine Rechte, diese Funktion zu ändern oder anzufordern. Wen hat sie?

Exkurs 2. UDS verwendet einen Mechanismus, um den Zugriff auf mehrere Ebenen zu beschränken - eine reguläre Diagnosesitzung, eine erweiterte Sitzung, eine Programmiersitzung usw. Jede Sitzung verfügt über Zugriffsebenen, die entscheiden, was Sie können und was nicht. Um darauf zuzugreifen, müssen Sie den sogenannten Seed vom Block anfordern, ihn mit einem bestimmten Algorithmus verarbeiten und an den (Schlüssel-) Block zurücksenden. Lesen Sie hier mehr.

Versuchen wir, einen Samen anzufordern. Wir senden den Befehl 2701 an die ECU und erhalten die Antwort 6701 6A43FD3C.
Wenn Sie einen 4-Byte-Wert als Antwort senden ( 27 02 DEADBEEF), erhalten Sie als Antwort 7F 27 35, wobei 35 der ungültige Schlüssel (ungültiger Schlüssel) ist, weil Der Wert "von der Decke" wurde gesendet. Wo kann man nach einem Schlüsselberechnungsalgorithmus suchen? Die Firmware der Steuereinheit befindet sich nirgendwo anders. Es ist einfach genug, es zu bekommen (aber nicht bei allen Blöcken, es hängt alles vom verwendeten Mikrocontroller ab), zuerst finden wir den CAN-Empfangshandler, dann die Verarbeitungsfunktion PID 0x27.

Bild

Wenn wir den Austausch des Startschlüssels mit dem Algorithmus aus der Firmware wiederholen, erhalten wir als Antwort 6702 34, wobei 34 "Zugriff erlaubt" ist. Danach erfüllt der Befehl zum Zurücksetzen des Ölverschlechterungsniveaus erfolgreich und gibt keinen negativen Antwortcode zurück, sondern eine positive Antwort 7103 01, und der Zähler wird erfolgreich zurückgesetzt.

Über den OBD-Anschluss können Sie also fast alles mit dem Auto machen: Ändern Sie die VIN-Nummern in den Blöcken, konfigurieren Sie die Codierung (Konfiguration), schalten Sie die Wegfahrsperre in weniger als einer Sekunde aus, löschen Sie die Fehlerinformationen und versetzen Sie den Block in den Startzustand, wenn Sie einen laden können Code und führen Sie es aus. Das japanische Sicherheitssystem ist etwas lahm.

Ein Beispiel für eine Konfigurationsänderung in einem Video:


Der Artikel dient nur zu Informationszwecken. Jeder Eingriff in die elektronischen Steuergeräte des Fahrzeugs kann der letzte für sie sein. Habt alle einen schönen Tag!

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


All Articles