Power-One通信電源監(jiān)控系統(tǒng)通信協(xié)議破解[圖]
通信電源通常被稱為通信系統(tǒng)的心臟,其工作不正常,將造成通信系統(tǒng)故障,甚至導致整個系統(tǒng)癱瘓。因此,為保證整個通信系統(tǒng)的暢通,節(jié)約人力成本和能源損耗,通信電源監(jiān)控系統(tǒng)應運而生。通信電源監(jiān)控系統(tǒng)對分布的通信電源設備和空調機房進行遙測、遙信和遙控,能實時監(jiān)視和顯示其運行參數,并自動監(jiān)測和處理系統(tǒng)內各種設備的故障。
本文引用地址:http://m.butianyuan.cn/article/201612/328133.htm鑒于國外發(fā)達國家通信電源監(jiān)控系統(tǒng)的研發(fā)工作較早且產品成熟,我國相關研究工作通常是先借鑒國外的經驗,然后研發(fā)具有自主知識產權的系統(tǒng)。其中,最關鍵的問題就是通信協(xié)議的破解。一般的破解思路是通過不斷試探,截獲通信信息,分析其規(guī)律性,進而推測得到通信協(xié)議,然后按此協(xié)議發(fā)送指令進行驗證。這種方法具有一定的盲目性,工作量較大,而且具有一定的局限性。
文中在破解美國Power-One通信電源監(jiān)控系統(tǒng)時,以數據鏈路層通信協(xié)議的一般格式為指導,結合監(jiān)控系統(tǒng)生成的各種文件,通過合理的邏輯推理和分析,破解通信規(guī)約和通信命令,并利用破解的通信命令直接對電源系統(tǒng)實施監(jiān)控,實際驗證其正確性。這種方法,準確性高、通用性強,而且節(jié)省時間和精力。
1 通信協(xié)議解析
1.1 解析思路
通信協(xié)議(Communication Protoco1)是兩個實體完成通信或服務所必須遵循的規(guī)則和約定。協(xié)議定義了數據單元使用的格式,信息單元應該包含的信息與含義,連接方式,信息發(fā)送和接收的時序,從而確保網絡中數據順利地傳送到確定的地方。以下對Power-One通信電源監(jiān)控系統(tǒng)所采用的通信協(xié)議進行破解。
PowCom是一個基于Windows的通信軟件,用于實現對Power-One的AC/DC電源變換系統(tǒng)的監(jiān)控。破解時,運行上位機軟件PowCom,并利用串口監(jiān)聽工具,截獲Power-One通信電源監(jiān)控系統(tǒng)上位機(PC)與下位機(即電源控制模塊PCU)之間的通信信息,即捕獲下行(PC→PCU)和上行(PCU→PC)數據幀。對于截獲的上下行數據幀,首先根據高級數據鏈路控制規(guī)程HDLC幀結構如圖1所示,推理出對通信協(xié)議的格式和各種功能命令;然后根據菜單界面和監(jiān)控系統(tǒng)生成的各種文件,如配置文件(.pcg)、參數文件(.prm)、測試文件(.tst)和告警歷史文件等,推理出各種功能命令中數據字段的格式。
1.2 協(xié)議破解
基于上述思路,就可以進行具體的解析。
首先,將Power-One通信電源監(jiān)控系統(tǒng)上位機(PC)通過串口Com1與PCU相連,運行上位機軟件PowCom,選擇通信(Communication)菜單下的菜單項端口設置(Port Setup),選擇COM1口,波特率9 600 bit·s-1,如圖2所示,然后選擇該菜單下的菜單項Direct直接通信(Communicat ion)實現與PCU連接如圖3所示。注意,通信采用10 bit異步方式:起始位1 bit,數據位8 bit,停止位1bil,無校驗,波特率9 600 bit·s-1,必須與PCU設置相同。
依次選擇PowCom各個菜單下的各種監(jiān)控功能,包括通信(Communication),如圖3所示;監(jiān)控(Supervision),如圖4所示;使用工具(Uti lities),如圖5所示,菜單下的各種監(jiān)控功能。參照圖1的一般格式,分析用SUDT SerialTrace Monitor截獲的上下行數據幀,推斷通信協(xié)議的格式如下:每個數據幀的第一個Byte均為FFH,由此推斷為標志字段。最后一個Byte可能是校驗和字段,經過計算,它是幀中其他字段的校驗和。第2個Byte很顯然是幀長字段。第3和第4個Byte在上下行數據幀中數值總是顛倒,初步推斷為發(fā)送地址字段和接收地址字段,選擇對不同整流模塊進行監(jiān)控操作,證明了上述推斷,其中,上位機的地址始終為00H,下行接收地址為整流模塊的地址。第5個Byte在下行數據幀時為01H,而在上行數據幀時為00H,推斷為應答字段,即00H表示無須應答;01H表示必須應答。第6個Byte始終為01H,可能是結構控制字段。第7個Byte對每個監(jiān)控功能而言都是惟一的,而在每對上下行數據幀中相同,故此推斷為功能碼或命令字字段。最后,第7個Byte與最后一個Byte之間的部分顯然為數據字段,其長度為(幀長-8)。
綜合以上的分析推理結果,得到Power-One通信電源上下位機間通信協(xié)議的格式,如表1所示。
其中,標志字段表示每一幀的開始,取值恒為FFH。幀長字段為幀中所有字段的字節(jié)數,取值范圍為08H~FFH。發(fā)送地址和接收地址字段分別表示數據發(fā)送和接收者的地址,上位機監(jiān)控系統(tǒng)地址始終為00H,整流模塊的地址為01H~FFH。應答字段表示接受者是否需要對接收的數據進行回復:00H表示無須回復;01H表示必須回復。結構控制字段恒為01H。功能碼字段為請求或響應數據幀的功能編碼,取值范圍為00H~FFH。數據字段為請求或應答數據,數據格式取決于具體的監(jiān)控功能。校驗和字段對幀中其他字段按字節(jié)計算的校驗和,用于檢測數據幀在傳輸中是否出現差錯。
在推斷通信協(xié)議的同時,根據菜單功能與上下行數據幀的對應關系,可以解析出Power-One通信電源上下位機間的各種通信命令,如表2所示。
1.3 數據字段解析
在解析出表2中所列出的功能命令以后,下一步的工作就是解析出每一種命令數據字段的格式。這本來是一個耗時且繁瑣的過程。但是,只要掌握文中的基本分析方法,特別是有效地利用監(jiān)控系統(tǒng)生成的各種文件,最終能夠獲得令人滿意的結果。
1.3.1 設置日期/時間、日期/時間設置完成
通過上位機PowCom菜單命令將日期和時間設置為2011年3月15日15時13分時,如圖6所示,截獲如下的設置日期/時間下行數據幀
將數據字段與預設定的日期和時間比對后,推斷數據字段的格式如表3所示.
其中,YY為年份(0~99);MM為月份(1~12);DD為日(1~31);hh為小時(0~23);mm為分鐘(0~59),所有數據Byte以16進制表示。注意應答字段為01H,表示PCU必須回復。
此時,截獲到PCU回復如下的日期/時間設置完成數據幀,表示日期/時間設置成功。注意應答字段為00H,表示PC無須回復。
FF 08 00 01 00 01 07 10
1.3.2 設置/更改密碼、密碼設置完成
通過上位機PowCom菜單命令將密碼設置或更改為8888時,如圖7所示,截獲如下的設置/更改密碼下行數據幀
顯然,數據字段為密碼數字的ASCII碼,因為十進制0~9對應的ASCII碼30H~39H。注意應答字段為01H,表示PCU必須回復。
此時,截獲到PCU回復如下的密碼設置完成上行數據幀,表示密碼設置成功。注意應答字段為00H,表示PC無須回復。
FF 08 00 01 00 01 08 11
1.3.3 驗證密碼、密碼確認
當通過上位機PowCom菜單命令輸入錯誤密碼5678時,截獲如下的驗證密碼下行數據幀
注意應答字段為01H,表示PCU必須回復。此時截獲到PCU回復如下的密碼確認上行數據幀
根據PowCom此時的顯示界面如圖8所示,推斷數據字段00H表示密碼錯誤。同樣,應答字段為00H,表示PC無須回復。
當通過上位機PowCom菜單命令輸入正確的密碼8888時,截獲如下驗證密碼下行數據幀
注意應答字段為01H,表示PCU必須回復。此時截獲到PCU回復如下的密碼確認(password confirmation)上行數據幀
數據字段01H表示密碼正確。同樣,應答字段為00H,表示PC無須回復。
1.3.4 其他
對于其它數據幀的解析,只說明大致的解析方法和過程:在相關菜單運行相應的菜單項監(jiān)控功能,將截獲的數據幀與菜單項的參數、配置數據等進行比對,推斷數據字段的格式。另外,在解析很多數據幀的數據字段時,參考了系統(tǒng)生成的相關文件。這樣,既節(jié)省了大量的時間,又提高了推理的準確性。
(1)借助于配置文件(.pcg),解析了與配置相關的數據幀,如表2中序號33~36和39~44。
(2)借助于參數文件(.prm),解析了與參數相關的數據幀,如表2中序號1~6。
(3)借助于測試文件(.tst),解析了與測試相關的數據幀,如表2中序號7~12。
(4)借助于告警歷史文件,解析了與告警相關的數據幀,如表2中序號25~28。
2 實際驗證
首先利用串口調試工具替代PowCom上位機軟件,直接與下位機PCU通信;然后將以上解析得到的下行(PC→PCU)數據幀逐一經串口調試工具發(fā)出,檢查PCU是否正確響應,返回正確的上行(PCU→PC)數據幀,并正確無誤地完成監(jiān)控工作。
圖9~圖13分別是設置日期/時間、設置密碼、請求系統(tǒng)信息、請求歷史告警數據和請求系統(tǒng)信息的測試截圖。測試截圖顯示,利用破解的通信命令可以直接與PCU通信,并正確地完成監(jiān)控工作。
以圖9為例加以說明。PC通過串口測試工具向PCU發(fā)送設置日期/時間下行數據幀
通過串口測試工具截獲的PCU回復如下的日期/時間設置完成(date/time set)數據幀
FF 08 00 01 00 01 07 10
表明設置日期/時間(set date/time)下行數據幀格式正確,PCU能正確識別,并成功設置日期/時間。
3 結束語
基于數鏈層通信協(xié)議一般格式的破解方法,對于各種數鏈層通信協(xié)議的破解具有通用性。但是,文中的破解結果具有一定的局限性,原因是Power-One通信協(xié)議的格式和通信命令并不是開放的和通用的。盡管如此,對于通信電源的監(jiān)控管理人員以及通信電源監(jiān)控系統(tǒng)的設計人員仍具有一定的理論指導意義。破解是手段而不是目的,下一步的工作是在此基礎上設計適合中國國情,而且適應通信電源發(fā)展的監(jiān)控系統(tǒng)和通信協(xié)議。通信電源地理上的分散化,必然要求監(jiān)控的分布式,而分布式電源監(jiān)控系統(tǒng)必然要求通信協(xié)議的規(guī)范化和統(tǒng)一化。因此,研究工作的重點是我國通信電源分布式監(jiān)控軟件的設計和實現。
評論