物聯(lián)網(wǎng)硬件安全分析基礎(chǔ)-固件提取

前言

上節(jié)初步介紹一些硬件基礎(chǔ)知識和分析硬件所需要的基本工具,本篇將講述利用編程器直接讀取芯片固件的方法。
為了讀取Flash芯片的內(nèi)容,有以下兩種常用方式:

1、直接將導(dǎo)線連接到芯片的引腳,在通過飛線連接編程器,進行在線讀取固件;

image

2、把芯片拆焊下來,通過燒錄座編程器,離線讀取固件。

image
image

飛線法讀取

通過夾具夾住芯片引腳,然后連接編程器讀取芯片內(nèi)容,通過編程器連接芯片需要注意引腳的順序,在IC芯片上都會有一個小點,大多數(shù)情況下,小點對應(yīng)的引腳即為芯片的第一腳,而連接編程器的導(dǎo)線也需要插入編程器上相應(yīng)的引腳。


image

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

拆掉門禁外殼,通過電路圖和芯片印字分析,在主板上有一顆FM25F04A存儲芯片,通過夾具連接芯片到編程器,在通過專用編程器軟件,對該芯片進行讀取。


image

連接完成,確定引腳接線正確后,打開編程器對應(yīng)軟件,通過智能識別芯片ID,即可開始讀取固件工作。
如無法識別,可根據(jù)印字說明,嘗試類似的型號,一般情況下兼容。


image

點擊讀取,即可開始固件提取,成功之后會保存為BIN格式文件,打開即可看到16進制的內(nèi)容,為下一步分析提供基礎(chǔ)。


image
image

案例二:讀取某智能攝像頭固件

拆掉攝像頭外殼,通過分析PCB上的各個IC,找到Flash存儲芯片。


image

在顯微鏡下,可以看到是一顆25L64型號的Flash芯片。


image

用夾具連接各引腳,并和編程器連接,進行固件讀取。


image

識別到芯片型號為GD25Q64,點擊讀取,讀取完畢后按照提示保存到文件。


image
image

打開保存的BIN文件或者查看緩沖區(qū),即可看到固件內(nèi)容。


image
image

在Ubuntu中,用binwalk解包固件,做進一步分析。


image

案例三:讀取某智能攝像頭固件

打開外殼,在PCB背面發(fā)現(xiàn)一顆FLASH存儲芯片


image
image

通過顯微鏡發(fā)現(xiàn)芯片型號為25L128。


image

連接編程器讀取固件并保存。


image
image

案例四:讀取某路由器固件

打開外殼,發(fā)現(xiàn)PCB上有一顆Flash存儲器,但廠商出于安全考慮,把芯片印字涂抹掉了。


image
image

在不知道芯片型號的情況下,我們連接該芯片,讓編程器去嘗試讀取。


image

通過智能識別,發(fā)現(xiàn)編程器無法識別出具體型號,而因為Flash存儲芯片的種類多樣,通過查找又無法獲得該路由器的具體參數(shù),這時我們通過UART串口,讀取出UBOOT啟動信息,串口輸出里面發(fā)現(xiàn)了該芯片型號為W25Q128BV。(下一篇將會重點介紹關(guān)于串口調(diào)試的方法)


image
image

在編程器中選擇該型號,成功提取出固件。


image
image

用binwalk解包固件。


image

案例五:讀取某智能電飯鍋固件

拆掉外殼,背面嵌有一塊PCB,反面是WIFI處理芯片,正面為存儲器,連接編程器。


image
image

通過印字分析為25芯片,存儲大小為2M字節(jié),嘗試該型號芯片,成功讀取固件。


image
image

案例六:讀取某網(wǎng)絡(luò)監(jiān)控攝像機固件

在PCB上找到一塊25L128型號的Flash存儲芯片。


image
image

通過夾具連接編程器。


image

識別到芯片為MX25L128,選擇其中一種,成功提取固件。


image
image

用binwalk解包固件內(nèi)容。


image

拆焊芯片讀取固件

一般情況下,對于TSOP8封裝的閃存芯片,可以用上述方法來讀取,但可能存在在線讀取成功率不高或數(shù)據(jù)丟失的情況,對于更多引腳和封裝格式的芯片,飛線的難度更高,有一定錫焊基礎(chǔ)的建議采用拆焊芯片,用燒錄座離線讀取的方法。

image
image

熱風(fēng)槍設(shè)置在適合的溫度,吹下芯片,周圍的元件可以用鋁箔或錫箔紙適當(dāng)保護。

拆下的閃存芯片放在燒錄座上,在連接編程器進行讀寫,芯片放置的引腳方向要注意對齊編程器和燒錄座的第一腳。

image
image
image

讀取完成,用點焊法把芯片焊上焊盤即可。

image
image

更多芯片焊接修改操作請參考2.4.2 硬件修改一節(jié)

jtag提取固件

拆焊芯片

首先用熱風(fēng)槍拆下智能鎖主控芯片,該單片機型號為:Stm32F103R6。

image

燒錄座連接Jlink

芯片第一腳對齊燒錄座第一腳,然后把Jlink插入燒錄座引出的JTAG接口。


image
image

讀取固件

電腦上安裝好Jlink驅(qū)動,打開J-Flash客戶端,設(shè)置好參數(shù),主要在配置欄選擇正確的芯片型號,然后點擊連接,在點擊Target->Read Back->Entire trip即可讀寫固件。


image
image
image
image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容