
Este repositorio se trata de radios de automóvil Volkswagen de ingeniería inversa, como la radio Premium 5 que se muestra arriba. Las radios estudiadas aquí tienen más de quince años y son del tamaño de una sola cena. A pesar de su edad, son inteligentes y apoyan el diagnóstico a bordo (utilizando el protocolo KWP1281 de VW en la línea K). Encontrará notas sobre protocolos y hardware aquí, junto con desmontaciones parciales de firmware, pero no hay binarios originales de firmware o eeproms.
Las radios VW de esta época requieren un código de seguridad de cuatro dígitos a menudo denominado "código seguro". Las radios generalmente almacenan el código seguro en un EEPROM en serie como un 93C46 o un 24C04. El código seguro se puede encontrar abriendo la radio, desolleando el Eeprom, leyéndolo y luego soldando el Eeprom de nuevo. Quería saber si había una manera más fácil.
Desmonté el firmware para estas radios: Premium 4 (Clarion), Premium 5 (Delco), Gamma 5 (Technisat) y Rhapsody (Technisat). Descubrí que todos tienen puertas traseras para leer el código seguro a través de diagnósticos a bordo. Leer el código de esta manera significa que la radio no necesita abrirse y es posible que ni siquiera necesite ser retirada del automóvil. Dado que esta información no se publica en ningún lado y no pude encontrar ninguna herramienta que pudiera hacerlo, construí mi propia herramienta.
kwp1281_tool : Herramienta de protocolo de diagnóstico (Volkswagen KWP1281). Puede enviar comandos arbitrarios a una radio, o cualquier otro módulo, utilizando el protocolo KWP1281. También puede enviar comandos utilizando un protocolo patentado que se encuentra en las radios Technisat. Finalmente, puede recuperar automáticamente el código seguro para cualquiera de las radios enumeradas anteriormente.
faceplate_emulator : Emulador de placa facial (NEC µPD16432B). Se conecta a la radio Premium 4 en lugar de la placa frontal y permite que la radio se controle a través de la serie. También puede controlar simultáneamente una placa frontal real.
tape_emulator : Emulador de cinta de cassette (Philips TDA3612). Se conecta a la radio premium 4 en lugar del conjunto de cinta de cassette SCA4.4/TDA3612 y engaña a la radio para que piense que se está reproduciendo una cinta.
volume_monitor : Volume Monitor (Mitsubishi M62419FP). Se conecta en paralelo con el controlador de sonido M62419FP utilizado en la radio Premium 4 y envía actualizaciones sobre serie cada vez que se cambian los registros de sonido.
reverse_engineering : Notas sobre las radios de la ingeniería inversa, incluidas las listas de desmontaje comentado de firmware de radio. Este repositorio no contiene ningún firmware original o binarios de EEPROM.
Estos son algunos de los descubrimientos más interesantes que hice sobre las radios:
Todas las radios estudiadas admiten un conjunto común de funciones de diagnóstico KWP1281 en la dirección de radio normal de 0x56. Algunas radios (no todas) también han protegido los comandos KWP1281 en esta misma dirección. Los comandos protegidos disponibles varían según el modelo, pero pueden incluir la capacidad de leer la ROM o RAM del microcontrolador, y de leer/escribir EEPRO (s) en serie. Acceder a los comandos protegidos requiere enviar un bloque de inicio de sesión basado en el código seguro y también realizar una lectura grupal de un grupo oculto.
VW Premium 4 (Clarion) tiene un comando KWP1281 sin protección 0xf0 que devuelve el código seguro. También contiene un modo oculto donde el código seguro se puede cambiar a través de la placa frontal. Entrando en este modo requiere presionar teclas que no existan en la placa frontal. Supongo que había una placa frontal de fabricación especial utilizada por la fábrica.
VW Premium 5 (DelCo) y LICO (DELCO) responden a un conjunto diferente de comandos KWP1281 en la dirección 0x7c. Estos comandos requieren autenticación utilizando un bloque de inicio de sesión codificado. Una vez autenticado, los comandos están disponibles para leer y escribir el EEPROM, que se puede usar para recuperar el código seguro.
VW Gamma 5 (Technisat) y Rhapsody (Technisat) tienen un protocolo patentado, no KWP en la dirección 0x7c. Es diferente a todo lo que he encontrado documentado y probablemente fue hecho por Technisat solo para la fabricación de la radio. Tiene comandos para leer y escribir el EEPROM, que se puede usar para recuperar el código seguro. El área de código seguro del EEPROM normalmente se filtra desde estos comandos, pero otro comando deshabilita el filtrado.
También desarrollé varios otros proyectos como un efecto secundario de este trabajo:
F2MC8DUMP: Explote para descargar la ROM interna de los microcontroladores F2MC-8L con capacidad de bus externo
F2MC8DASM: Fujitsu F2MC-8 Desmontaje que genera salida compatible con el ensamblador ASF2MC8
K0DASM: NEC 78K0 DESMONTAJER que genera una salida compatible con el As78k0 Assember
K0emu: emulador NEC 78K0 capaz de ejecutar grandes porciones del firmware VW Premium 5
M740DASM: Mitsubishi 740 Desensamblador que genera salida compatible con el AS740 Assember
Mike Naberezny