IoT产品渗透系列(四)
固件提取的经验记录
使用工具
1.风枪(温度:有铅锡熔点是183℃,拆除理想温度是185~190℃。无铅锡熔点是217℃拆除理想温度是235℃。实际操作更复杂,要多练习才能完好的把芯片取下。) 2.助焊剂 3.镊子 4.RT809H编程器 or SUPERPRO610P编程器
使用热风枪脱焊,摘取芯片
1.将热风枪温度调节到280度,使用3挡风 吹30s上下,进行脱焊
清洗处理摘取出来的芯片
刚摘去出的芯片的引脚需要进行清洗 1.对于锡渣使用烙铁(低温度200)对其进行擦拭 2.对于胶层使用刀片以及镊子进行刮除,或者使用丙酮去除(注意:丙酮 易挥发 有一定毒性,需要佩戴口罩,通风的情况下进行操作)
程器读取芯片数据
1.用显微镜确认圆圈位以确定对应针脚1的位置,再使用夹子或者专用座子进行固定。注意对应针脚位 Note* 以八针脚为例,圆圈对应为针脚1,则放在对应的针脚位 2. 使用软件对芯片进行自动识别型号,读取数据,当进度条显示100%时,保存数据 (SUPERPRO610P编程器不支持自动识别,需要在显微镜下观察对应的芯片型号进行调试)
使用010Editor观察所得数据
1.BIN文件就是我们需要的固件,里面包含我们固件分析要用到的固件文件 2.将文件拖入010Editor,进行审计 如果您使用的是linux/debian系统,可以用strings去看该固件内的字符串,从而找到某些hard-code key
总结
主要总结了提取固件的一般流程:识别芯片,摘取芯片,读取芯片。 中间需要较多手动操作的环节,某一个环节操作不细致就有可能损坏芯片,造成损失或者出现一个很难排查的错误,排查错误本身也会造成时间成本浪费。 RT809H编程器加上专用的座子,省去了担心编程器是否兼容芯片,甚至可以帮你在不知道芯片型号的情况下自动识别芯片型号,提高工作效率,把精力放在固件安全分析上。
BTW: 对于评论区催更的那位小伙伴,我是很久没写文章了 哈哈哈 之后可能考虑迁移到Github等地方
|