天天看點

三、固件分析-固件提取

  上節初步介紹一些硬體基礎知識和分析硬體所需要的基本工具,本篇将講述利用程式設計器直接讀取晶片固件的方法。 為了讀取 Flash 晶片的内容,有以下兩種常用方式:

1、直接将導線連接配接到晶片的引腳,在通過飛線連接配接程式設計器,進行線上讀取固件;

三、固件分析-固件提取
2、把晶片拆焊下來,通過燒錄座程式設計器,離線讀取固件。
三、固件分析-固件提取
三、固件分析-固件提取

飛線法讀取

通過夾具夾住晶片引腳,然後連接配接程式設計器讀取晶片内容,通過程式設計器連接配接晶片需要注意引腳的順序,在 IC 晶片上都會有一個小點,大多數情況下,小點對應的引腳即為晶片的第一腳,而連接配接程式設計器的導線也需要插入程式設計器上相應的引腳。

三、固件分析-固件提取

案例一:讀取中控 F7 門禁固件

拆掉門禁外殼,通過電路圖和晶片印字分析,在主機闆上有一顆 FM25F04A 存儲晶片,通過夾具連接配接晶片到程式設計器,在通過專用程式設計器軟體,對該晶片進行讀取。

三、固件分析-固件提取

連接配接完成,确定引腳接線正确後,打開程式設計器對應軟體,通過智能識别晶片ID,即可開始讀取固件工作。 如無法識别,可根據印字說明,嘗試類似的型号,一般情況下相容。

三、固件分析-固件提取

點選讀取,即可開始固件提取,成功之後會儲存為 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解包固件内容。