<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址:http://drops.wooyun.org/tips/11105

    0x00前言


    對于串口通信大多時候是固定的,所以對于大多數的攻擊主要就是對數據的抓取然后模擬通信就可以了。如何確定設別是不是串口通信的最簡單辦法,windows系統右鍵計算機,管理的設備管理中可以查看是否增加com口。

    0x01 使用的工具


    在抓取時要使用類似于wireshark的抓包工具SerialMonitor。

    SerialMonitor程序截圖 Alt text

    在進行模擬串口時,為了方便采用虛擬串口工具Virtual Serial Port Driver,在調試時采用串口調試助手(當然這里也可以自己寫個串口程序調試),然后就是模擬數據通信程序,這個要自己編寫個人建議采用C#編寫(原因簡單方便)。

    Virtual Serial Port Driver程序截圖 Alt text

    串口調試助手程序截圖 Alt text

    0x01 串口數據抓取


    安裝完SerialMonitor后,打開程序選擇Session——>new Session后會跳出配置,框這里選擇增加的com口和Select all后,點擊Start monitoring。

    Alt text

    這個時候就開啟了監聽com口了。接下來就是就是使用設置正常操作,從而抓取通信的數據內容。這里拿一次SS628M10芯片的身份證讀卡器的數據來做演示。

    抓取的數據如圖 Alt text

    這里我們主要看Dump view窗口。從窗口數據我們可以看見開啟端口然后使用的程序會向設備發送一段請求碼,然后會返回多次數據,對于抓取一次完整的通信要從com口打開到com口關閉,暫時遇到一直通信的是GPS模塊,其它都是通信結束就會關閉。

    到此通信數據抓取完畢。

    0x02 模擬串口數據通信


    先說一下模擬串口通信的原因,由于使用串口通信設備的程序在通信時是搜索本機還有的com然后打開未被占用的最小的com口進行通信,于是我們就可以創建一個虛擬的串口對,在然后使用數值比較小的串口號這樣就可以替代設備進行通信。這里要使用串口對,要不然的話你發送數據沒有回復,串口對相當于一條數據線在設備程序和虛擬串口程序間連接。

    使用虛擬串口程序創建虛擬串口對如圖 Alt text

    創建完串口后,按照上面分析設備使用程序會打開COM1進行通信。這樣程序把數據發給COM1,通過串口對,數據會發送給COM2從而讀出,這時只要對COM2口進行串口編程就可以模擬數據通信了。

    PS:這里要說下大多程序都可以使用這種方法進行模擬通信,不過在利用ActiveX控件的web頁面調用時會出現識別不出串口的問題,這里要插一條相同芯片的數據線即可。

    97av