Controllo delle serrature tramite CAN bus


9

Sto cercando di capire come bloccare e sbloccare le porte di una Toyota RAV4 del 2010 utilizzando il bus CAN tramite la porta OBD-II. Ho un microcontrollore collegato tramite un controller CAN e un ricevitore CAN e ho scritto del firmware per acquisire e riprodurre i messaggi.

Se sblocco le porte tramite il portachiavi o il pulsante della porta, ricevo una raffica di messaggi su un bus altrimenti silenzioso (la chiave è fuori). Tuttavia, riprodurli non fa nulla. Sospettavo che potesse trattarsi di una sorta di problema di autenticazione, quindi ho provato qualcosa di meno sensibile: i fari. È interessante notare che quando riproduco i messaggi dall'accensione dei fari, l'indicatore dei fari nel quadro strumenti si illumina brevemente, ma i fari effettivi non fanno nulla.

Immagino di avere diverse domande:

1) Questo dovrebbe essere possibile tramite il bus CAN esposto sulla porta OBD-II? Ho visto fonti affermare che le porte sono controllate da un bus diverso, più lento, ma ho anche visto dei dispositivi pubblicizzati che bloccano le porte quando raggiungi una determinata velocità.

2) Gli altri autobus sono esposti in qualche modo?

3) Esiste un modo per scoprire il significato dei messaggi che ho catturato senza pagare ingenti somme di denaro a Toyota?


Dove sei riuscito a metterlo in funzione attraverso l'OBD-II o hai dovuto percorrere un'altra strada?
Sward,

Risposte:


5

Quello che vuoi fare è possibile. Ho avuto esperienza e desiderio simili per la mia Camry del 2010. Dalla mia esperienza, leggere i messaggi dalla porta OBD-II non mi ha portato da nessuna parte. Era come se i messaggi CAN fossero solo una risposta alla mia manipolazione manuale dell'auto.

Otterrei una risposta al messaggio bloccando o sbloccando le porte con la chiave FOB, ma l'invio di quello stesso messaggio non ha fatto nulla.

Quello che dovresti fare è procurarti un cavo splitter OBD-II e una copia di Toyota Techstream con un "cavo mini VCI". Ciò consentirà di leggere i messaggi a cui il software Techstream invia tramite la porta OBD-II.

Dovresti essere capace di:

1- Blocca e sblocca conducente / tutte le porte

2- Tronco pop

3- Attiva gli abbaglianti e i lampeggiatori bassi e alti

4- Suonate il clacson

5- Rotolare su e giù per le finestre

6- ecc.

..o almeno tutto ha funzionato per me !!

YMMV e buona fortuna! : D

(Non sono responsabile per danni a se stessi o in auto.)


1
Mccoy, sto provando a fare esattamente quello che hai pubblicato. Ho installato Techstream e ho collegato il cavo dell'adattatore USB alla mia Corolla del 2012, ma sembra che non stia spingendo nessuna delle personalizzazioni. Potresti per favore farmi sapere come sei riuscito a raggiungere questo obiettivo? Grazie

4

Di solito il bus CAN OBD viene "collegato" agli altri bus CAN del veicolo, al fine di facilitare la diagnostica delle ECU sugli altri bus. Tuttavia, il bridge può solo trasmettere messaggi diagnostici in poi :( È diverso su ogni piattaforma.

In termini di protocollo - è un classico problema di reverse engineering. È necessario acquisire alcune tracce dell'attività CAN quando si preme il pulsante di sblocco e si capisce qual è il formato dei messaggi. Il tuo esempio di faro potrebbe indicare che ci sono più bus e hai accesso solo a uno di essi (che va all'unità del cruscotto, e non ai proiettori in questo caso)

Con le serrature della porta - è del tutto possibile che ci sia anche una sorta di risposta alla sfida che interrompe il tuo semplice "attacco replay".


È possibile che i fari stessi non siano nemmeno su un bus CAN, basandosi invece su cablaggi e relè dedicati; mentre l'indicatore del faro si trova sul bus CAN con il resto del quadro strumenti.
mac,

@mac - davvero così
Martin Thompson l'

3

Se fossi il ragazzo che ha progettato l'elettronica, renderebbe impossibile farlo tramite CAN-Bus semplicemente perché si ottengono adattatori bluetooth per OBD2 a cui qualcuno in piedi fuori dall'auto potrebbe accoppiarsi e inviare le istruzioni di sblocco.

È un pericolo per la sicurezza, quindi non lo sosterrei.


2
Gli adattatori Bluetooth non fanno nulla a meno che tu non abbia già accesso all'auto per collegare un ricevitore Bluetooth. Comunque, si scopre che è possibile.
Isvara,

È un pensiero spaventoso. Cordiali saluti: ottieni anche adattatori OBD-ii wifi e la loro portata è notevole.
Capitano Kenpachi,

3

Anche se ci si connette al bus corretto e si trasmette il messaggio CAN corretto, si continua a riscontrare il problema, di trasmettere un messaggio CAN che è già in fase di trasmissione da un'altra ECU.

Nel modo in cui funziona CAN, ogni messaggio can ha un ID arbitrato chiamato anche ID messaggio. Durante il normale funzionamento, nessuna ECU trasmetterà mai un messaggio con lo stesso ID sullo stesso bus. Quando lo fai. In teoria dovresti essere in grado di bloccare o sbloccare la porta, allagando il bus, con il messaggio desiderato, ma non sarà qualcosa che userei all'interno di un prodotto, poiché il tuo abuso del bus interferirà con la comunicazione della ECU sull'autobus che trasmette con una priorità inferiore.

Ora di nuovo, se il messaggio CAN per bloccare e sbloccare la porta, è completamente guidato dagli eventi e non periodicamente trasmesso, allora cosa stai cercando di fare completamente fattibile.

Inoltre, i messaggi che stai annusando, che cambiano quando blocchi o sblocchi la porta, potrebbero non essere quelli di interesse. I messaggi di stato sono spesso trasferiti su altri bus, dovresti trasmettere il messaggio corretto sul bus da cui proviene.

Suggerimento: cerca online il pin out per il connettore OBD nel tuo veicolo.

1) Questo dovrebbe essere possibile tramite il bus CAN esposto sulla porta OBD-II? Ho visto fonti affermare che le porte sono controllate da un bus diverso, più lento, ma ho anche visto dei dispositivi pubblicizzati che bloccano le porte quando raggiungi una determinata velocità.

Sì, può essere possibile, ma devi conoscere il pin out per OBDII nella tua auto che probabilmente non è un'informazione pubblica, ma puoi capire quali sono di interesse eliminando i pin OBDII standard.

2) Gli altri autobus sono esposti in qualche modo?

Come spiegato sopra, penso che ci sia una buona possibilità, eliminare i pin OBD standard e le restanti coppie saranno quelle di interesse. Ogni canale dati della lattina ha un livello di dati elevato e un livello di dati basso.

3) Esiste un modo per scoprire il significato dei messaggi che ho catturato senza pagare ingenti somme di denaro a Toyota?

Hai bisogno di uno strumento CAN, per guardare i dati sui pin sospetti, la buona notizia è che catturerai messaggi can solo quando collegati ai pin corretti. Altrimenti lo strumento genererà errori. e potresti aver bisogno di uno strumento in grado di rilevare automaticamente i baud rate o puoi indovinarlo.

Richiederà un bel po 'di tempo e l'hacking.


1
La trasmissione e le collisioni non sono un problema. Il controller CAN si occupa di tutto ciò, ecco a cosa serve. Ho lo schema elettrico per l'auto e c'è solo un autobus in tutto. Ho un dongle che blocca le porte a una velocità impostata (circa 5 miglia all'ora), e questo trasmette il messaggio di "blocco della porta" una sola volta. Sembra che questo dovrebbe essere abbastanza facile da replicare.
Isvara,

Probabilmente hai ragione, ma in pratica, le centraline multiple non trasmettono lo stesso ID messaggio allo stesso tempo sullo stesso bus. Ma se la tua replica semplice, un dongle, è una questione di copiare i messaggi che provengono da esso e vedere quali bit si invertono o quando il messaggio viene inviato se è basato su eventi.
am6sigma,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.