Power-One通信電源監(jiān)控系統(tǒng)通信協(xié)議破解
摘要 根據(jù)數(shù)據(jù)鏈路層通信協(xié)議的一般格式,對串口監(jiān)聽工具截取的Power-One通信電源監(jiān)控系統(tǒng)中的通信信息進(jìn)行了邏輯推理和分析,破解了其通信協(xié)議的格式和各種通信命令。實(shí)驗(yàn)表明,破解結(jié)果正確無誤。對于通信電源分布式監(jiān)控系統(tǒng)通信協(xié)議的設(shè)計(jì)和實(shí)現(xiàn),具有一定的借鑒意義。
關(guān)鍵詞 通信電源;監(jiān)控系統(tǒng);通信協(xié)議;解析;Power-One;PowCom
通信電源通常被稱為通信系統(tǒng)的心臟,其工作不正常,將造成通信系統(tǒng)故障,甚至導(dǎo)致整個(gè)系統(tǒng)癱瘓。因此,為保證整個(gè)通信系統(tǒng)的暢通,節(jié)約人力成本和能源損耗,通信電源監(jiān)控系統(tǒng)應(yīng)運(yùn)而生。通信電源監(jiān)控系統(tǒng)對分布的通信電源設(shè)備和空調(diào)機(jī)房進(jìn)行遙測、遙信和遙控,能實(shí)時(shí)監(jiān)視和顯示其運(yùn)行參數(shù),并自動(dòng)監(jiān)測和處理系統(tǒng)內(nèi)各種設(shè)備的故障。
鑒于國外發(fā)達(dá)國家通信電源監(jiān)控系統(tǒng)的研發(fā)工作較早且產(chǎn)品成熟,我國相關(guān)研究工作通常是先借鑒國外的經(jīng)驗(yàn),然后研發(fā)具有自主知識產(chǎn)權(quán)的系統(tǒng)。其中,最關(guān)鍵的問題就是通信協(xié)議的破解。一般的破解思路是通過不斷試探,截獲通信信息,分析其規(guī)律性,進(jìn)而推測得到通信協(xié)議,然后按此協(xié)議發(fā)送指令進(jìn)行驗(yàn)證。這種方法具有一定的盲目性,工作量較大,而且具有一定的局限性。
文中在破解美國Power-One通信電源監(jiān)控系統(tǒng)時(shí),以數(shù)據(jù)鏈路層通信協(xié)議的一般格式為指導(dǎo),結(jié)合監(jiān)控系統(tǒng)生成的各種文件,通過合理的邏輯推理和分析,破解通信規(guī)約和通信命令,并利用破解的通信命令直接對電源系統(tǒng)實(shí)施監(jiān)控,實(shí)際驗(yàn)證其正確性。這種方法,準(zhǔn)確性高、通用性強(qiáng),而且節(jié)省時(shí)間和精力。
1 通信協(xié)議解析
1.1 解析思路
通信協(xié)議(Communication Protoco1)是兩個(gè)實(shí)體完成通信或服務(wù)所必須遵循的規(guī)則和約定。協(xié)議定義了數(shù)據(jù)單元使用的格式,信息單元應(yīng)該包含的信息與含義,連接方式,信息發(fā)送和接收的時(shí)序,從而確保網(wǎng)絡(luò)中數(shù)據(jù)順利地傳送到確定的地方。以下對Power-One通信電源監(jiān)控系統(tǒng)所采用的通信協(xié)議進(jìn)行破解。
PowCom是一個(gè)基于Windows的通信軟件,用于實(shí)現(xiàn)對Power-One的AC/DC電源變換系統(tǒng)的監(jiān)控。破解時(shí),運(yùn)行上位機(jī)軟件PowCom,并利用串口監(jiān)聽工具,截獲Power-One通信電源監(jiān)控系統(tǒng)上位機(jī)(PC)與下位機(jī)(即電源控制模塊PCU)之間的通信信息,即捕獲下行(PC→PCU)和上行(PCU→PC)數(shù)據(jù)幀。對于截獲的上下行數(shù)據(jù)幀,首先根據(jù)高級數(shù)據(jù)鏈路控制規(guī)程HDLC幀結(jié)構(gòu)如圖1所示,推理出對通信協(xié)議的格式和各種功能命令;然后根據(jù)菜單界面和監(jiān)控系統(tǒng)生成的各種文件,如配置文件(.pcg)、參數(shù)文件(.prm)、測試文件(.tst)和告警歷史文件等,推理出各種功能命令中數(shù)據(jù)字段的格式。
1.2 協(xié)議破解
基于上述思路,就可以進(jìn)行具體的解析。
首先,將Power-One通信電源監(jiān)控系統(tǒng)上位機(jī)(PC)通過串口Com1與PCU相連,運(yùn)行上位機(jī)軟件PowCom,選擇通信(Communication)菜單下的菜單項(xiàng)端口設(shè)置(Port Setup),選擇COM1口,波特率9 600 bit·s-1,如圖2所示,然后選擇該菜單下的菜單項(xiàng)Direct直接通信(Communicat ion)實(shí)現(xiàn)與PCU連接如圖3所示。注意,通信采用10 bit異步方式:起始位1 bit,數(shù)據(jù)位8 bit,停止位1bil,無校驗(yàn),波特率9 600 bit·s-1,必須與PCU設(shè)置相同。
依次選擇PowCom各個(gè)菜單下的各種監(jiān)控功能,包括通信(Communication),如圖3所示;監(jiān)控(Supervision),如圖4所示;使用工具(Uti lities),如圖5所示,菜單下的各種監(jiān)控功能。參照圖1的一般格式,分析用SUDT SerialTrace Monitor截獲的上下行數(shù)據(jù)幀,推斷通信協(xié)議的格式如下:每個(gè)數(shù)據(jù)幀的第一個(gè)Byte均為FFH,由此推斷為標(biāo)志字段。最后一個(gè)Byte可能是校驗(yàn)和字段,經(jīng)過計(jì)算,它是幀中其他字段的校驗(yàn)和。第2個(gè)Byte很顯然是幀長字段。第3和第4個(gè)Byte在上下行數(shù)據(jù)幀中數(shù)值總是顛倒,初步推斷為發(fā)送地址字段和接收地址字段,選擇對不同整流模塊進(jìn)行監(jiān)控操作,證明了上述推斷,其中,上位機(jī)的地址始終為00H,下行接收地址為整流模塊的地址。第5個(gè)Byte在下行數(shù)據(jù)幀時(shí)為01H,而在上行數(shù)據(jù)幀時(shí)為00H,推斷為應(yīng)答字段,即00H表示無須應(yīng)答;01H表示必須應(yīng)答。第6個(gè)Byte始終為01H,可能是結(jié)構(gòu)控制字段。第7個(gè)Byte對每個(gè)監(jiān)控功能而言都是惟一的,而在每對上下行數(shù)據(jù)幀中相同,故此推斷為功能碼或命令字字段。最后,第7個(gè)Byte與最后一個(gè)Byte之間的部分顯然為數(shù)據(jù)字段,其長度為(幀長-8)。
評論