
该存储库是关于逆向工程较旧的大众汽车收音机,例如上面显示的高级5收音机。这里研究的收音机已有15年的历史,是单盘大小。尽管他们的年龄很大,但他们还是聪明的,并且支持车载诊断(使用K-Line上的大众KWP1281协议)。您将在此处找到有关协议和硬件的注释,以及固件的部分分解,但没有原始的固件或EEPROM的二进制文件。
这个时代的大众收音机需要四位数的安全代码,通常称为“安全代码”。收音机通常将安全代码存储在串行EEPROM中,例如93C46或24C04。可以通过打开收音机,删除EEPROM,阅读它,然后将EEPROM焊接回去。我想知道是否有更简单的方法来找到安全的代码。
我拆除了这些收音机的固件:Premium 4(Clarion),Premium 5(Delco),Gamma 5(TechniSat)和Rhapsody(Technerisat)。我发现所有这些都有通过板上诊断读取安全代码的后门。以这种方式读取代码意味着无需打开收音机,甚至可能不需要从汽车中删除。由于此信息没有在任何地方发布,也找不到任何可以做到的工具,所以我构建了自己的工具。
kwp1281_tool :诊断协议工具(大众KWP1281)。它可以使用KWP1281协议将任意命令发送到无线电或任何其他模块。它还可以使用技术收音机中的专有协议发送命令。最后,它可以自动检索上述任何无线电的安全代码。
faceplate_emulator :面板模拟器(NEC µPD16432B)。它可以插入Premium 4无线电代替面板,并允许通过串行控制收音机。它还可以同时控制真实的面板。
tape_emulator :盒式磁带模拟器(Philips TDA3612)。它可以插入Premium 4收音机,以代替SCA4.4/TDA3612盒式磁带组件,并愚弄收音机以为磁带正在播放。
volume_monitor :音量监视器(三菱M62419FP)。它与Premium 4 Radio中使用的M62419FP声音控制器并行连接,并在更改声音寄存器时通过串行发送更新。
reverse_engineering :有关反向工程收音机的注释,包括评论的无线电固件清单。该存储库不包含任何原始的固件或EEPROM二进制文件。
这是我对收音机的一些更有趣的发现:
所有的收音机研究都支持在0x56的正常无线电地址上的一组KWP1281诊断功能。某些无线电(并非全部)在同一地址上也保护了KWP1281命令。可用的受保护命令因模型而有所不同,但可能包括读取微控制器的ROM或RAM的能力,并读取/编写串行EEPROM(S)。访问受保护的命令需要根据安全代码发送登录块,并执行隐藏组的组读数。
VW Premium 4(Clarion)具有未保护的KWP1281命令0xF0,该命令返回安全代码。它还包含一个隐藏模式,可以通过面板更改安全代码。输入此模式需要按面板上不存在的按键。我认为工厂使用了一种特殊的制造面板。
大众Premium 5(Delco)和SEAT LICEO(DELCO)在地址0x7C上响应了另一组KWP1281命令。这些命令需要使用硬编码的登录块进行身份验证。经过身份验证后,命令可用于读写EEPROM,可用于检索安全代码。
大众伽马5(技术)和狂想曲(TechniSat)在地址0x7C上具有专有的非KWP协议。这与我发现的任何文件不同,并且很可能是由TechniSat制造的,只是为了制造无线电的制造。它具有读取和编写EEPROM的命令,可用于检索安全代码。 EEPROM的安全代码区域通常从这些命令中过滤,但另一个命令禁用过滤。
我还开发了其他几个项目作为这项工作的副作用:
F2MC8DUMP:利用具有外部总线功能的Fujitsu F2MC-8L微控制器的内部ROM
F2MC8DASM:Fujitsu F2MC-8拆卸器,生成与ASF2MC8汇编器兼容的输出
K0DASM:NEC 78K0拆卸器,生成与AS78K0 Assember兼容的输出
K0emu:NEC 78K0模拟器,能够运行大众Premium 5固件的大部分
M740DASM:三菱740拆卸器,生成与AS740 Assember兼容的输出
迈克·纳伯雷斯尼(Mike Naberezny)