物业互联网设备也称边端设备,常见在工业生产线上,进行生产状态监控和异常行为分析。拿到某产品后,第一时间进行硬件分析,发现了SMT32F4xxx的芯片及预留给产品开发和生产制造过程中的通讯接口。下面来分享一下业务流。
0x00. SMT32芯片存储空间分析

0x01. SWD接口分析

0x02. 飞线上板

这里稍微停顿一下,ARM芯片的开发利器JLink,原厂工具在xD和xbao有售。

0x03. J-Link直接开始进行数据会读

0x04. 回读的数据在IDA中进行加载,在之前读取信息阶段我们已经设定了特定EEPROM区段,所以保存的数据从0x00000000开始就是有效数据,请大家注意。

补充一个知识点,ARM 32位的Cortex™-M3 按照ARM公开的资料配置:v7内核,Thumb-2指令集不支持ARM指令集。

0x05. 通过IDA搜索字符串,发现默认密钥“01234567890ABCDEF@0X”。

0x.06 补充一些场景信息,依据阿里云的IoT开发文档,阿里物联网平台的连接注册也需要用到“三元组”:ProductKey;DeviceName;DeviceSecret,这个三元组并不是直接拿来用的,而是需要按照官方设定的协议规则得到UserName、PassWord、ClientID、IP这几个参数,规则就是:

PassWord生成:一般来说,hmac_sha1进行编码时会有两个参数:Key和value。Key对应三元组中的:DeviceSecret,value就要复杂一点(XXXX,替换成实际的值):clientIdXXXXdeviceNameXXXXproductKeyXXXXXXtimestamp789
最后,部分图片来自网络,如有侵权,请联系作者删除。分析就到这里,点到为止,欢迎大家多多拍砖。
本文迁移自知识星球“火线Zone”