物聯網設備固件獲取


固件獲取主要有三類方法,一類是直接從官網上找到目標型號的設備固件下載下來即可;一類是使用Telnet或者ssh從目標設備中獲取固件;最后一類是需要使用一些硬件工具和軟件工具,從開發板上的flash芯片中或者通過UART和JTAG調試接口將固件提取下來。

 

1)網上下載

D-Link路由器固件      ZOL驅動下載網站上也可以找到其他品牌路由器的固件,點擊鏈接

TP-Link路由器固件

華碩ASUS路由器固件(輸入產品型號,找到固件下載即可)      eg.RT-AC88U

騰達Tenda路由器固件(輸入產品型號)      eg.AC23

小米路由器固件(ROM)

小蟻智能攝像頭固件(但是這個下載下來不曉得文件是什么格式)

美國網件NETGEAR設備固件(輸入產品型號,下載壓縮包格式,其中是內核和根文件)   這個鏈接也可

 

下載得到的固件包一般是.bin格式,也有.trx格式:

.bin files are for flashing from a stock firmware. .trx files are for flashing from OpenWrt.  bin后綴文件一般為十六進制通過刷寫BIOS的工具來燒錄芯片常用的格式,bin文件是直接可以燒到固件里面執行的;bin文件是從硬盤啟動所需要的,會添加相應的文件系統頭,trx是flash啟動的,要把頭去掉,所以trx會比bin小些;一般說來,trx的固件是通用的版本,bin是為一些設備支持提供的文件,使它符合一些設備的特性。

.bin格式轉化為.trx格式

 

在查找資料過程中,還接觸到了Openwrt這個名詞:

Openwrt是嵌入式設備上運行的linux系統。OpenWrt 的文件系統是可寫的,開發者無需在每一次修改后重新編譯,令它更像一個小型的 Linux 電腦系統,也加快了開發速度。
無論是 ARM, PowerPC 或 MIPS 的處理器,都有很好的支持。並且附帶3000左右的軟件包,用戶可以方便的自定義功能來制作固件,也可以方便的移植各類功能到openwrt下。

相關資料:

openwrt是什么_openwrt有什么用從零開始編譯OpenWrt固件openwrt編譯入門(絕對詳細版)

 

2)遠程登錄獲取固件

前提條件是有目標物聯網設備,並且能正確聯網。

這里使用幾個工具,來對目標設備上的固件進行下載。①PuTTY,②WinSCP

PuTTY工具使用ssh協議登錄目標設備服務器,並將固件文件復制到/tmp文件夾;

WinSCP工具登錄目標設備后,可將/tmp中的固件下載到本地硬盤中。

參考(詳細步驟):https://jingyan.baidu.com/article/870c6fc31357ebb03fe4bedd.html

 

3)硬件提取

在網絡上找不到目標固件資源的情況下,可以選擇從硬件下手,提取固件。一般比較常用的是下邊兩種:

已知固件(firmware)一般存儲於設備中的電可擦除只讀存儲器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,不會存儲在RAM中。

一是從Flash芯片中讀取固件:①將導線連接到芯片的引腳,通過飛線連接RT809F編程器,進行編程器軟件在線讀取固件【該方法比較適合大型的、成本較高、價格昂貴的工控設備,該方法不會對開發板造成破壞】;②把芯片拆焊下來,通過燒錄座編程器,離線讀取固件【適用於芯片引腳采用點錫絲網焊接在背面,引腳太小或沒有暴露出引腳等情況】;案例和參考:鏈接

二是通過串口或調試接口讀取固件:①bootloader讀取,芯片和電腦之間通過UART串口連接通信,運行mcuisp軟件,點擊讀Flash即可(或者使用SSCOM軟件也可以);②需要用到硬件調試工具,一般可以通過下面兩類調試接口,把Flash中的數據讀取出來:

(1)SWD接口,利用硬件:J-LINK OB或者J-LINK或者ST-LINK;利用軟件:J-LINK驅動程序自帶的J-FLASH或者ST官網提供的STVP。

(2)JTAG接口,利用硬件:J-LINK;利用軟件:J-LINK驅動自帶的J-FLASH。

 

串口和調試接口的區別:

能用串口下載程序的單片機,其內部一般都有boot程序的支持,boot程序將要下載的數據通過串口接收到單片機之后調用boot中的flash編程程序,寫到內部的flash中;

JTAG是一種標准的調試接口,完全硬件實現,需要單片機內部有JTAG的硬件調試單元和外面的仿真器進行通信,既能調試又能下載。

嵌入式開發——串口 UART JTAG TTL 區別和聯系

 

固件分析工具:

binwalk – 通過固件文件頭來分析文件和文件系統(binwalk使用方法
file – 用來檢測是否是有效的文件和文件類型
hexdump --16進制導出工具
strings --跟hexdump類似但是可以以可讀的形式展示
lzma --解壓LZMA文件

 

主要參考資料:

IOT設備固件介紹及提取

滲透低性能智能設備的關鍵技術-固件提取

物聯網設備測試工具及方法簡介

IoT設備固件分析教程之固件是怎么存儲的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM