
Ce référentiel consiste à des radios de voiture Volkswagen à l'ingénierie inverse, comme la radio Premium 5 indiquée ci-dessus. Les radios étudiées ici ont plus de quinze ans et sont la taille unique. Malgré leur âge, ils sont intelligents et prennent en charge les diagnostics embarqués (en utilisant le protocole KWP1281 de VW sur la K-Line). Vous trouverez ici des notes sur les protocoles et le matériel, ainsi que des démons de firmware partiels, mais pas de binaires d'origine de firmware ou de poivrations.
Les radios VW de cette époque nécessitent un code de sécurité à quatre chiffres souvent appelé "code sûr". Les radios stockent généralement le code sûr dans une EEPROM en série comme un 93C46 ou un 24C04. Le code sûr peut être trouvé en ouvrant la radio, en désobligeant l'EEPROM, en le lisant, puis en soudant l'EEPROM. Je voulais savoir s'il y avait un moyen plus facile.
J'ai démonté le firmware de ces radios: Premium 4 (Clarion), Premium 5 (Delco), Gamma 5 (Technisat) et Rhapsody (Technisat). J'ai trouvé que tous ont des délais pour lire le code sûr via des diagnostics embarqués. La lecture du code de cette façon signifie que la radio n'a pas besoin d'être ouverte et peut même ne pas avoir besoin d'être retirée de la voiture. Étant donné que ces informations ne sont publiées nulle part et que je n'ai trouvé aucun outil qui pourrait le faire, j'ai construit mon propre outil.
kwp1281_tool : outil de protocole de diagnostic (Volkswagen KWP1281). Il peut envoyer des commandes arbitraires à une radio ou à tout autre module, en utilisant le protocole KWP1281. Il peut également envoyer des commandes à l'aide d'un protocole propriétaire trouvé dans les radios Technisat. Enfin, il peut récupérer automatiquement le code sûr pour l'une des radios énumérés ci-dessus.
faceplate_emulator : Faceplate Emulator (NEC µPD16432B). Il se branche sur la radio Premium 4 à la place de la plaque de face et permet à la radio d'être contrôlée en série. Il peut également contrôler simultanément une véritable plaque de face.
tape_emulator : Cassette Tape Emulator (Philips TDA3612). Il se branche sur la radio Premium 4 à la place de l'assemblage de bande de cassette SCA4.4 / TDA3612 et trompe la radio en pensant qu'une bande joue.
volume_monitor : Volume Monitor (Mitsubishi M62419FP). Il se connecte en parallèle avec le contrôleur de son M62419FP utilisé dans la radio Premium 4 et envoie des mises à jour sur Serial chaque fois que les registres sonores sont modifiés.
reverse_engineering : Notes sur les radios de l'ingénierie inverse, y compris les listes de démontage commenté du firmware radio. Ce référentiel ne contient aucun firmware d'origine ou binaires EEPROM.
Voici quelques-unes des découvertes les plus intéressantes que j'ai faites sur les radios:
Toutes les radios étudiées soutiennent un ensemble commun de fonctions de diagnostic KWP1281 sur l'adresse radio normale de 0x56. Certaines radios (pas tous) ont également protégé les commandes KWP1281 sur cette même adresse. Les commandes protégées disponibles varient selon le modèle mais peuvent inclure la possibilité de lire la ROM ou la RAM du microcontrôleur, et de lire / écrire des EEPROM série. L'accès aux commandes protégées nécessite l'envoi d'un bloc de connexion basé sur le code sûr et l'exécution d'une lecture de groupe d'un groupe caché.
VW Premium 4 (Clarion) a une commande KWP1281 non protégée 0xf0 qui renvoie le code sûr. Il contient également un mode caché où le code sécuritaire peut être modifié via la plaque de face. La saisie de ce mode nécessite d'appuyer sur des touches qui n'existent pas sur la plaque face. Je suppose qu'il y avait une plaque faciale de fabrication spéciale utilisée par l'usine.
VW Premium 5 (Delco) et Seat Liceo (Delco) répondent à un autre ensemble de commandes KWP1281 à l'adresse 0x7c. Ces commandes nécessitent une authentification à l'aide d'un bloc de connexion codé en dur. Une fois authentifiés, des commandes sont disponibles pour lire et écrire l'EEPROM, qui peut être utilisée pour récupérer le code sûr.
VW Gamma 5 (Technisat) et Rhapsody (Technisat) ont un protocole propriétaire non KWP à l'adresse 0x7c. Il est différent de tout ce que j'ai trouvé documenté et probablement fabriqué par Technisat uniquement pour la fabrication de la radio. Il a des commandes pour lire et écrire l'EEPROM, qui peut être utilisée pour récupérer le code sûr. La zone de code sûre de l'EEPROM est normalement filtrée à partir de ces commandes, mais une autre commande désactive le filtrage.
J'ai également développé plusieurs autres projets comme un effet secondaire de ce travail:
F2MC8DUMP: Exploiter pour vider la ROM interne des microcontrôleurs Fujitsu F2MC-8L avec une capacité de bus externe
F2MC8DASM: Désassembleur Fujitsu F2MC-8 qui génère une sortie compatible avec l'assembleur ASF2MC8
K0dasm: Désassembleur NEC 78K0 qui génère une sortie compatible avec l'assèce AS78K0
K0EMU: émulateur NEC 78K0 capable d'exécuter de grandes parties du firmware VW Premium 5
M740DASM: Désassembleur Mitsubishi 740 qui génère une sortie compatible avec l'assèce AS740
Mike Naberezny