变砖就在一念间

简单写两句,如何让智能门锁变砖。
拆壳,看到门锁的主控芯片是STM8L052R8,即8位低功耗处理器,EE容量256B,Flash容量64KB,RAM容量4KB的小玩意儿。看了一眼板子,发现一组4口的接口。刚开始以为是UART,但逻辑分析仪抓了一下啥信号都没有(按理至少应该有一组时钟信号)。于是翻资料,发现STM8系列与STM32不同,后者使用SWD功能更复杂和高速,前者的调试采用了SWIM接口,即单线双向接口。四条信号线分别是:VDD, DATA, GND, RST。如何判断PIN脚的定义,就利用电压表将PIN脚与64根SoC上的针一一测定短路状况,再翻SoC的针脚手册即可。

样例
样例

果断在SWIM接口焊上飞线引出信号,接上ST-LINK V2,用ST visual programmer软件即可读出一些状态。然而对照手册发现,在option byte的第一个字节设置成了0xAA,同时数据和程序区无法读取,断定在写入程序的最后通过修改这个字节,做了软熔断,这是STM为了防止数据被读出做的一个机制。
毛躁小伙,我,想都没想,上来把option byte的锁定开关从ON改为OFF,没有一丝的犹豫,也没有一丝的警告,写入成功。接着发现,所有的数据都可以读写,但
>>> 结果全是零 <<<
几秒钟后反应过来,好像是把主控芯片内容擦除了。从技术手册中找到,如果软熔断设置后要修改设置或任何数据,会首先清空所有数据。想想这样也对,擦除了也就无法读取之前存储的内容……
第一次hack智能锁,在第二天就把样品变了砖。吃一堑长一智吧。

Comments
Write a Comment
  • 哈哈,原来你在搞这么底层的东西!

    • wellsleep reply

      @trypsin 从顶到底都在搞,也不知道都在忙什么。

'