Ich arbeite viel mit der seriellen Kommunikation mit einer Vielzahl von Geräten, und deshalb muss ich oft Hex-Dumps in Protokolldateien analysieren. Momentan mache ich das manuell, indem ich auf die Dumps schaue, die Protokollspezifikationen ansehe und die Ergebnisse aufschreibe. Dies ist jedoch mühsam und fehleranfällig, insbesondere wenn Nachrichten Hunderte von Bytes enthalten und Mischungen von Big-Endian- und Little-Endian-Daten, ASCII, Unicode, Komprimierung, CRCs,. . . .Beliebige allgemeine Dienstprogramme oder Bibliotheken zum Konvertieren von Hex-Dumps in eine für Menschen lesbare Form?
Ich habe ein paar Python-Skripte geschrieben, um die häufigsten Fälle zu unterstützen. Aber es gibt viele Protokolle, mit denen man sich befassen muss, und es macht keinen Sinn, die Zeit damit zu verschwenden, ein benutzerdefiniertes Skript zu schreiben, wenn ich nicht weiß, dass ich viele Dumps analysieren muss.
Was ich möchte ist eine Art von Dienstprogramm, das diese Aktivität automatisieren kann. So zum Beispiel, wenn ich einen Text-hex haben Dump wie folgt aus:
7e ff 00 7b 00 13 86 04
00 41 42 43 44 56 ef 7e
und eine Art von Beschreibung des Nachrichtenformat wie folgt aus:
# Field Size Byte Order Output Format
Flag 1 hex
Address 1 hex
Control 1 hex
DataType 1 decimal
LineIndex 1 decimal
PollAddress 2 msb hex
DataSize 2 lsb decimal
Data (DataSize) ascii
CRC 2 lsb hex
Flag 1 hex
ich eine Ausgabe wie diese bekommen würde:
Flag 0x7e
Address 0xff
Control 0x00
DataType 123
LineIndex 0
PollAddress 0x1386
DataSize 4
Data "ABCD"
CRC 0xef56
Flag 0x7e
Hardware-basierte Protokoll-Analysatoren haben oft ausgefallene Funktionen für diese Art der Sache zu tun, aber ich muß mit Textprotokolldateien arbeiten.
Gibt es ein solches Dienstprogramm oder eine solche Bibliothek?
Einige gute Antworten sind gekommen, seit ich das Kopfgeld eingerichtet habe. Ich denke Bounties funktionieren!
Wireshark und HexEdit sehen beide vielversprechend aus; Ich schaue mir diese an und werde das Kopfgeld vernünftigerweise an das geben, was mir am besten passt. Aber ich bin offen für andere Ideen.
Kann Wireshark einen Hex-Dump aus einer Textprotokolldatei analysieren oder nur das, was er selbst erfasst? –
Normalerweise erwartet Wireshark Dinge im PCAP-Format. Es ist jedoch nicht sehr schwierig, Dinge in das PCAP-Dump-Format zu packen (zumindest war es nicht sehr schwierig, einen PCAP-Dump-Leser zu schreiben). – Vatine