1
我試圖扭轉嵌入式設備的二進制協議。我是能夠捕捉4個樣品的數據的包,這裏它們被以十六進制編碼形式:根據數據扭轉校驗和
5E:A1:00:10:10:00:00:02:01:05:F0:F6:4B:00:01:03
5E:A1:00:10:10:00:00:06:01:93:79:DA:F9:00:01:07
5E:A1:00:10:10:00:00:03:01:C9:B1:F0:81:00:01:04
5E:A1:00:10:10:00:00:04:01:A3:BE:2A:3A:00:01:05
基於其他包,我可以斷言以下:
- 前6個字節(5E:A1: 00:10:10:00) - 郵件標題,它在所有其他郵件中都是靜態的。
- 接下來的2個字節(00:02或00:06或00:03或00:04) - 消息數字ID,int16。它與消息到消息不同。
- 接下來的4個字節(05:F0:F6:4B或93:79:DA:F9或C9:B1:F0:81或A3:BE:2A:3A)是消息的校驗和。它取決於數據和消息號碼。我嘗試通過手動形成包:當我更新消息的數據區域或消息號碼中的字節時,而不是校驗和 - 消息被遠程服務器拒絕。
- 其他一切只是一個可變長度的數據。
我的問題是:如何理解用於校驗和生成的算法?有沒有可以用於這種目的的軟件?例如,我在數據中輸入掩碼並嘗試猜測算法。
嗨馬克,非常感謝您的建議。不幸的是,我檢查了30多個樣品,結果沒有。我甚至試圖把校驗和放在十六進制編碼的字符串的末尾,但仍然沒有檢測到模型。所以我認爲這不是默認的CRC,而是一些未知的自定義實現。 – 2014-09-02 05:51:11
你嘗試過'-s'選項嗎?您可能還需要嘗試不同的組合,它們構成了計算CRC的消息。 – 2014-09-02 06:01:10