Ich versuche herauszufinden, wie die Türen eines 2010 Toyota RAV4 über den CAN-Bus über den OBD-II-Anschluss ver- und entriegelt werden können. Ich habe einen Mikrocontroller über einen CAN-Controller und einen CAN-Empfänger angeschlossen und eine Firmware zum Erfassen und Wiedergeben von Nachrichten geschrieben.
Wenn ich die Türen entweder über den Schlüsselanhänger oder den Türknopf entriegle, erhalte ich eine Reihe von Nachrichten in einem ansonsten leisen Bus (Schlüssel ist heraus). Die Wiedergabe bewirkt jedoch nichts. Ich vermutete, dass es sich um ein Authentifizierungsproblem handeln könnte, und versuchte es mit etwas weniger Sensiblem - den Scheinwerfern. Interessanterweise leuchtet die Scheinwerferanzeige im Kombiinstrument kurz auf, wenn ich die Meldungen vom Einschalten der Scheinwerfer wiedergebe, aber die tatsächlichen Scheinwerfer tun nichts.
Ich glaube, ich habe mehrere Fragen:
1) Sollte dies über den am OBD-II-Port freiliegenden CAN-Bus möglich sein? Ich habe Quellen gesehen, die besagen, dass Türen von einem anderen, langsameren Bus gesteuert werden, aber ich habe auch beworbene Geräte gesehen, die die Türen verriegeln, wenn Sie eine bestimmte Geschwindigkeit erreichen.
2) Sind die anderen Busse in irgendeiner Weise ausgesetzt?
3) Gibt es eine Möglichkeit, die Bedeutung der von mir erfassten Nachrichten herauszufinden, ohne große Geldbeträge an Toyota zu zahlen?
Antworten:
Was Sie tun möchten, ist möglich. Ich habe ähnliche Erfahrungen und Wünsche für meinen 2010 Camry gehabt. Nach meiner Erfahrung brachte mich das Lesen von Nachrichten vom OBD-II-Port nicht weiter. Es war, als wären die CAN-Nachrichten nur eine Antwort darauf, dass ich das Auto manuell manipuliert habe.
Ich würde eine Antwort erhalten, wenn ich die Türen mit dem Schlüssel FOB verriegelte oder entriegelte, aber das Senden derselben Nachricht brachte nichts.
Was Sie tun sollten, ist ein OBD-II-Splitterkabel und eine Kopie von Toyota Techstream mit einem "Mini-VCI-Kabel". Auf diese Weise können Sie die Nachrichten lesen, an die die Techstream-Software über den OBD-II-Port sendet.
Du solltest in der Lage sein zu:
1- Fahrer / alle Türen verriegeln und entriegeln
2- Pop Kofferraum
3- Schalten Sie Abblend- und Fernlicht und Blinker ein
4- Hupen Sie die Hupe
5- Fenster hoch- und runterrollen
6- usw.
..oder zumindest hat alles bei mir funktioniert !!
YMMV und viel Glück! : D.
(Ich bin nicht verantwortlich für Schäden an mir selbst oder am Auto.)
quelle
Normalerweise wird der OBD-CAN-Bus auf die anderen CAN-Busse des Fahrzeugs "überbrückt", um die Diagnose von Steuergeräten auf den anderen Bussen zu erleichtern. Die Bridge leitet jedoch möglicherweise nur Diagnosemeldungen weiter :( Sie ist auf jeder Plattform unterschiedlich.
In Bezug auf das Protokoll - es ist ein klassisches Reverse Engineering-Problem. Sie müssen einige Spuren der CAN-Aktivität erfassen, wenn Sie auf die Schaltfläche zum Entsperren klicken und das Format der Nachrichten ermitteln. Ihr Scheinwerferbeispiel zeigt möglicherweise an, dass es mehrere Busse gibt und Sie nur auf einen von ihnen zugreifen können (der zur Armaturenbretteinheit und in diesem Fall nicht zu den Scheinwerfern führt).
Mit den Türschlössern ist es durchaus möglich, dass auch eine Art Herausforderungsreaktion stattfindet, die Ihren einfachen "Wiederholungsangriff" stoppt.
quelle
Wenn ich der Typ wäre, der die Elektronik entworfen hat, würde ich es unmöglich machen, dies über CAN-Bus zu tun, einfach weil Sie Bluetooth-Adapter für OBD2 erhalten, mit denen jemand, der außerhalb des Autos steht, die Entsperranweisung koppeln und senden könnte.
Es ist ein Sicherheitsrisiko, daher würde ich es nicht unterstützen.
quelle
Selbst wenn Sie eine Verbindung zum richtigen Bus herstellen und die richtige CAN-Nachricht senden, tritt immer noch das Problem auf, eine CAN-Nachricht zu übertragen, die bereits von einem anderen Steuergerät gesendet wird.
So wie CAN funktioniert, hat jede Dosen-Nachricht eine Arbitration-ID, die auch als Nachrichten-ID bezeichnet wird. Im Normalbetrieb sendet kein Steuergerät jemals eine Nachricht mit derselben ID auf demselben Bus. Wenn du das machst. Theoretisch sollten Sie in der Lage sein, die Tür zu verriegeln oder zu entriegeln, indem Sie den Bus mit der gewünschten Nachricht überfluten. Dies würde ich jedoch nicht in einem Produkt verwenden, da Ihr Missbrauch des Busses die Kommunikation der Steuergeräte beeinträchtigt auf dem Bus, der mit einer niedrigeren Priorität sendet.
Wenn die CAN-Nachricht zum Ver- und Entriegeln der Tür vollständig ereignisgesteuert ist und nicht regelmäßig gesendet wird, ist das, was Sie versuchen, vollständig machbar.
Auch die Nachrichten, die Sie schnüffeln und die sich ändern, wenn Sie die Tür ver- oder entriegeln, sind möglicherweise nicht von Interesse. Statusmeldungen werden häufig an andere Busse weitergeleitet. Sie müssten die richtige Nachricht auf dem Bus senden, von dem sie stammt.
Tipp: Suchen Sie online nach der Pinbelegung für den OBD-Stecker in Ihrem Fahrzeug.
Ja, es ist möglicherweise möglich, aber Sie müssen die Pinbelegung für den OBDII in Ihrem Auto kennen, bei der es sich wahrscheinlich nicht um öffentliche Informationen handelt. Sie können jedoch herausfinden, welche von Interesse sind, indem Sie die Standard-OBDII-Pins entfernen.
Wie oben beantwortet, besteht meiner Meinung nach eine gute Chance, die Standard-OBD-Pins zu entfernen, und die verbleibenden Paare werden diejenigen von Interesse sein. Jeder Dosendatenkanal hat Daten hoch und Daten niedrig.
Sie benötigen ein CAN-Tool, um die Daten auf den verdächtigen Pins zu überwachen. Die gute Nachricht ist, dass Sie nur Dosenmeldungen abfangen, wenn Sie mit den richtigen Pins verbunden sind. Andernfalls wird das Tool Fehler auslösen. und Sie benötigen möglicherweise ein Tool, das die Baudraten automatisch erkennt, oder Sie können raten.
Es wird ein bisschen Zeit und Hacking erfordern.
quelle