上节初步介绍一些硬件基础知识和分析硬件所须要的基本工具,本篇将讲述利用编程器直接读取芯片固件的方法。 为了读取 Flash 芯片的内容,有如下两种经常使用方式:编程
一、直接将导线链接到芯片的引脚,在经过飞线链接编程器,进行在线读取固件;安全
二、把芯片拆焊下来,经过烧录座编程器,离线读取固件。网络
经过夹具夹住芯片引脚,而后链接编程器读取芯片内容,经过编程器链接芯片须要注意引脚的顺序,在 IC 芯片上都会有一个小点,大多数状况下,小点对应的引脚即为芯片的第一脚,而链接编程器的导线也须要插入编程器上相应的引脚。工具
拆掉门禁外壳,经过电路图和芯片印字分析,在主板上有一颗 FM25F04A 存储芯片,经过夹具链接芯片到编程器,在经过专用编程器软件,对该芯片进行读取。3d
链接完成,肯定引脚接线正确后,打开编程器对应软件,经过智能识别芯片ID,便可开始读取固件工做。 如没法识别,可根据印字说明,尝试相似的型号,通常状况下兼容。blog
点击读取,便可开始固件提取,成功以后会保存为 BIN 格式文件,打开便可看到 16 进制的内容,为下一步分析提供基础。路由
拆掉摄像头外壳,经过分析 PCB 上的各个 IC,找到 Flash 存储芯片。监控
在显微镜下,能够看到是一颗 25L64 型号的 Flash 芯片。基础
用夹具链接各引脚,并和编程器链接,进行固件读取。软件
识别到芯片型号为 GD25Q64,点击读取,读取完毕后按照提示保存到文件。
打开保存的 BIN 文件或者查看缓冲区,便可看到固件内容。
在Ubuntu中,用binwalk解包固件,作进一步分析。
打开外壳,在PCB背面发现一颗 Flash 存储芯片
经过显微镜发现芯片型号为 25L128。
链接编程器读取固件并保存。
打开外壳,发现 PCB 上有一颗 Flash 存储器,但厂商出于安全考虑,把芯片印字涂抹掉了。
在不知道芯片型号的状况下,咱们链接该芯片,让编程器去尝试读取。
经过智能识别,发现编程器没法识别出具体型号,而由于 Flash 存储芯片的种类多样,经过查找又没法得到该路由器的具体参数,这时咱们经过 UART 串口,读取出 UBOOT 启动信息,串口输出里面发现了该芯片型号为 W25Q128BV。
在编程器中选择该型号,成功提取出固件。
用 binwalk 解包固件。
拆掉外壳,背面嵌有一块 PCB,反面是 WIFI 处理芯片,正面为存储器,链接编程器。
经过印字分析为25芯片,存储大小为 2M 字节,尝试该型号芯片,成功读取固件。
在 PCB 上找到一块 25L128 型号的 Flash 存储芯片。
经过夹具链接编程器。
识别到芯片为 MX25L128,选择其中一种,成功提取固件。
用binwalk解包固件内容。