驴Qu茅 se puede hacer a trav茅s del conector OBD en el autom贸vil?

No es ning煤n secreto que en los autom贸viles modernos todos los sistemas de los globos oculares est谩n obstruidos con varios dispositivos electr贸nicos, incluso un simple regulador de ventana tiene su propio microcontrolador y una direcci贸n en la red compartida. Como propietario interesado, me preguntaba qu茅 se puede hacer con solo acceder al conector OBD y nada m谩s.

Todo lo descrito en el art铆culo se refiere al autom贸vil de 2008 (Mitsubishi Lancer), pero como lo ha demostrado la pr谩ctica, despu茅s de 10 a帽os, el fabricante no ha cambiado nada y todas las funciones se siguen utilizando y funcionan en autom贸viles modernos.

La estructura de red en el autom贸vil se muestra en la imagen:

imagen

El autom贸vil tiene 3 buses CAN (bus de motor de alta velocidad de 500 kbps, cabina de baja velocidad de 83.3 kbps, diagn贸stico) y un bus LIN. El enlace de conexi贸n entre ellos es el bloque ETACS (Sistema electr贸nico de control total del autom贸vil), que act煤a como una "puerta de enlace" y env铆a mensajes de un autob煤s a otro, de acuerdo con ciertas reglas, y tambi茅n procesa algunos de ellos. 驴Qu茅 se puede hacer con el bus CAN? Por ejemplo, chatear con bloques, o tal vez cambiar algo. Para iniciar un di谩logo con cualquier bloque, debe conocer su direcci贸n, as铆 como las funciones compatibles (PID), que puede procesar y dar una respuesta.

En el dominio p煤blico se encuentra el software para concesionarios llamado MUT III. Despu茅s de estudiar la base de datos de ella, puede encontrar toda la informaci贸n que nos interesa.

Acerca de las direcciones (solicitud-respuesta) en la red CAN:

imagen

PID de solicitudes, descifrado completo de respuestas de todos los bloques, incluida la posici贸n de los bytes en la respuesta (si se env铆an varios valores en un marco) y factores con unidades:

imagen

Por ejemplo, queremos saber el 谩ngulo de direcci贸n. Para hacer esto, env铆e el comando 2102 a la unidad de control ESP. En respuesta, llegar谩 el mensaje 6102 FFEA000008FFF302

Mirando la tabla, descubrimos que se necesitan los bytes 2 y 3.

imagen

El valor en int16. 0xFFEA = -22, multiplicando por un factor de 0.04375 obtenemos un 谩ngulo de direcci贸n de -0.9625 grados.

Por lo tanto, puede solicitar una gran cantidad de informaci贸n a las unidades de control, hasta cu谩ntas horas se reprodujo la radio y cu谩ntos discos se cargaron en la radio, as铆 como ejecutar pruebas de diagn贸stico en todos los nodos (puede encender diferentes luces en el tablero y tirar flechas, por ejemplo).

imagen


Bueno, todo lo que quer铆amos era lo que aprendimos, pero 驴de qu茅 sirve? Ahora, si cambia / habilita / deshabilita algo ...

Un simple ejemplo. En la unidad de control de transmisi贸n autom谩tica hay un contador de software para el nivel de envejecimiento del aceite, y cuando se acumula un cierto valor umbral, aparece un mensaje en la pantalla bk que indica que la transmisi贸n necesita servicio. Se cambi贸 el aceite, y el mensaje contin煤a mostr谩ndose en la pantalla, porque nadie puede reiniciar el contador y solo se puede reiniciar el esc谩ner del distribuidor MUT-III (que cuesta alrededor de $ 1000, no todos pueden pagarlo) y algunos programas (tampoco gratuitos). En todas las mismas tablas puede encontrar el equipo con el nombre que se explica por s铆 mismo CLEAR_CVT_oil_degradation_level_Start. Puede re铆rse viciosamente en direcci贸n a OD y reiniciar este contador desafortunado. Enviamos el comando 31 03 al bloque CVT y ... obtenemos 7F 31 33 en respuesta.

Una peque帽a digresi贸n. Casi todos los veh铆culos usan el mecanismo UDS (tambi茅n conocido como ISO 14229) para diagn贸stico y mantenimiento.

Simplifica la vida de los desarrolladores de esc谩neres de diagn贸stico automotriz y est谩 unificada para todos los fabricantes de autom贸viles (pero esto no significa que algunos no puedan inventar sus propios complementos).

Como resultado, tenemos una respuesta descifrada del variador: 7F: la solicitud es rechazada, 31 es el PID que enviamos y el c贸digo de respuesta negativa 33, es decir, Acceso de seguridad denegado. Es decir, no tenemos derechos para cambiar o solicitar esta funci贸n. 驴A qui茅n tiene ella?

Digresi贸n 2. UDS utiliza un mecanismo para restringir el acceso a varios niveles: una sesi贸n de diagn贸stico regular, una sesi贸n extendida, una sesi贸n de programaci贸n, etc. Cada sesi贸n tiene niveles de acceso que deciden qu茅 puede y qu茅 no. Para acceder a ellos, debe solicitar la llamada Semilla del bloque, procesarla con un algoritmo espec铆fico y enviarla nuevamente al bloque (Clave). Lee m谩s aqu铆 .

Intentemos solicitar una semilla. Enviamos el comando 2701 a la ECU y obtenemos la respuesta 6701 6A43FD3C.
Enviando cualquier valor de 4 bytes en respuesta ( 27 02 DEADBEEF), obtenemos la respuesta 7F 27 35, donde 35 es la clave inv谩lida (clave inv谩lida), porque se envi贸 el valor "desde el techo". 驴D贸nde buscar un algoritmo de c谩lculo clave? No hay otro lugar en el firmware de la unidad de control. Es bastante f谩cil obtenerlo (pero no en todos los bloques, todo depende del microcontrolador utilizado), primero encontramos el controlador de recepci贸n CAN, luego la funci贸n de procesamiento PID 0x27.

imagen

Repitiendo el intercambio de clave de semilla con el algoritmo del firmware, obtenemos 6702 34 en respuesta, donde 34 es "Acceso permitido". Despu茅s de eso, el comando para restablecer el nivel de degradaci贸n del aceite cumple con 茅xito y no devuelve un c贸digo de respuesta negativa, sino una respuesta positiva 7103 01 y el contador se restablece con 茅xito.

Por lo tanto, a trav茅s del conector OBD, puede hacer casi cualquier cosa con el autom贸vil: cambie los n煤meros VIN en los bloques, configure la codificaci贸n (configuraci贸n), apague el inmovilizador en menos de un segundo, borre la informaci贸n de error, ingrese el bloque en el estado de arranque cuando pueda cargar cualquier codificar y ejecutarlo. El sistema de seguridad japon茅s es un poco cojo.

Un ejemplo de cambio de configuraci贸n en un video:


El art铆culo est谩 escrito solo con fines informativos. Cualquier intervenci贸n en las unidades de control electr贸nico del autom贸vil puede ser la 煤ltima para ellos. 隆Que tengan un buen d铆a todos!

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


All Articles