物聯網硬體安全分析基礎-串口調試

前言

上篇介紹了關於通過編程器直接讀取晶元獲取固件用來靜態分析的一點思路,本篇將介紹通過UART串口來直接與機器交互,通過串口輸出輸入信息,做動態調試。

UART串口調試

UART調試第一步需要先找到對應的四個PIN,在通電情況下,VCC口可以不要接,判斷 GND, RX, TX三個引腳是調試的關鍵,找四個引腳可以先看PCB上的印字。

但多數廠商在量產前會去掉用於調試的串口印字,如果找不到對應引腳的印字,就需要先分析PCB的結構,一般PCB上有3、4 、5個並排或相距不遠的焊點或通孔,就有可能是UART調試串口。

但PCB上可能存在多個這樣的焊點或通孔,從多個口中找出真正的調試串口,就需要藉助到萬用表。

萬用表找串口首先需要找到GND口,就是接地口,在疑似串口的焊點處,通過測量電勢差,可以判斷出GND口,通過連接焊點和輸入負極,如果電勢為0,就可能是GND口,如果電勢為最大值,例如3.6V、5V等,就可能是VCC口。然後通過UART轉換器對應的4個口,引出導線,並設置好串口輸出環境後,就可以依次嘗試。也可以通過短接其中的兩口,如果機器重啟,就可以判斷這兩口為VCC和GND。

需要注意的是,在TTL電平模式下,UATR轉換介面上的RX、TX口與上位設備,也就是PCB上的UART口的RX和TX是需要反接的。

案例一:調試某智能攝像頭

通過萬用表測量電勢差之後,在靠近CPU的地方有三個通孔,有可能是UART串口,用導線連接之後,設置波特率為115200。

用SecureCRT連接串口,給機器通上電之後,串口立馬輸出了啟動信息,並可以執行命令,說明串口正確,如果遇到無法輸入的情況,首先檢查接線是否鬆動,然後在SecureCRT中的, Session Options -> Connection -> Serial -> Flow Control,將原先選中的 RTS/CTS取消掉,這是因為如果選中了RTS/CTS ,則硬體上要有對應介面,軟體上實現對應協議,才能實現此流控制。如果串口輸出為亂碼,則需要切換波特率,直至輸出正常。

案例二:調試某路由器

在靠近cpu的地方有四個通孔,測量電勢差後,利用導線探針,確定了三個PIN,連接轉換器。

串口中輸出調試信息,因波特率設置問題,初始輸出為亂碼,改為38400即可正常輸出。

案例三:調試某路由器

在PCB上有四個焊點,先測量電勢差,分出GND和VCC,在利用焊槍分別焊上導線,連接轉換介面,測試出TX和RX口。

設置波特率為57600,串口輸出正確,並可執行命令。

案例四:調試某路由器

在PCB一側有5個通孔,並標註有UART-0字樣,通電後,測試各口電勢差,確實GND和VCC後,連接轉換介面,並測試出RX和TX口。

設置波特率為57600,串口輸出正確,並可執行命令。

通過本地架設的tftp伺服器,並在串口輸入命令,開啟相關服務,就可以通過tftp與機器傳輸文件。

案例五:調試某無線數據終端

拆開正面壓板,發現PCB上標註有印字,利用PCB夾具和探針,引出RX和TX口,連接轉換器,因該無線終端串口電壓不超過1.7V,焊接容易造成信號衰減,因此採用夾具。

因串口輸出信息過多,影響輸入和輸出結果,因此採用串口調試助手,設置波特率為115200,輸入命令並發送,可以成功執行。

案例六:調試某語音機器人

拆解機器,該型機器採用多塊電路板層級設計,其主要處理晶元位於頂部,拆解時注意走線位置,防止拉壞接線口,在PCB上有UART的PIN口印字,給每一個PIN口焊上導線,連接轉換器。

設置波特率為921600,連接串口,用root賬號登陸,密碼為空,成功進入系統,執行命令。

物聯網安全基礎系列

1、物聯網硬體安全分析基礎-硬體分析初探

2、物聯網硬體安全分析基礎-固件提取


伏宸安全實驗室-主頁future-sec.com圖標

新浪微博:伏宸安全實驗室

微信公眾號: 伏宸安全實驗室 (微信搜索「伏宸安全實驗室」關注即可)


推薦閱讀:

物聯網中的通信協議主要有哪些?
未來酒店2.0落地,智能音箱成布局未來智聯網關鍵棋子
物聯網大數據時代,什麼才的校園是你們心中的智慧校園?

TAG:物联网 | 智能硬件 | 网络安全 |