在智能设备漏洞挖掘过程中,固件提取是分析的第一步,也是迈向成功的第一步。
以前分析的设备,固件存储于tsop8角封装的nor flash,可以直接通过芯片夹夹取,或者直接焊下flash利用芯片座提取,然后无脑binwalk获得整个文件系统。但最近分析的设备,固件存储于tsop48角封装的nand flash,没有对应的芯片夹,而且要求有一定的焊接技术。此外,由于nandflash存储的特性(如OOB数据的干扰),即使成功进行了物理提取,后续的数据处理也相当复杂。
接下来,我将结合最近的实验,与各位分享下本人在nand flash固件提取过程中,摸索和总结出来的一种利用UART串口调试提取固件的方法。由于本人能力有限,如有错误,还请各位师傅提出指正。 一、前提条件
UART串口调试,可进入linux系统命令行。 二、基本概念
MTD(MemoryTechnology Device),存储技术设备,用于访问存储设备(ROM,flash)的Linux子系统。 通过proc文件系统查看mtd设备的分区情况,可以发现mtdN和mtdblockN描述的是同一个MTD分区,对应同一个硬件分区。两者是同一个MTD分区的两种不同描述:mtdN是实现MTD分区所对应的字符设备,而mtdblockN设备则是在对应生成的块设备,两者内容一致,但具体