Я бы предложил два возможных решения:
Скомпилируйте схему ASN.1 с asn1c , она не поддерживает JSON, но поддерживает формат XER / XML,таким образом, вам нужно будет преобразовать JSON в формат XML / XER, ожидаемый asn1c, а затем преобразовать сообщение XER в двоичный файл, используя пример converter, который генерируется asn1c.Wireshark также может экспортировать в формате XML, но этот XML будет иметь структуру, отличную от той, которая поддерживается asn1c (XER), поэтому вам потребуется преобразовать его.
Вы можете экспортировать данные вjsonraw
, а затем извлеките поле *_raw
интересующего вас протокола. Таким образом, вам не нужно конвертировать JSON в ASN.1 в binary
, поскольку вы получаете binary
непосредственно из JSON какHEX строка.
$ tshark -T jsonraw -j "incorrect" -r test_capture.pcap
[
{
"_index": "packets-2019-04-17",
"_type": "pcap_file",
"_score": null,
"_source": {
"layers": {
"frame_raw": ["02112233445502778899aabb08004500003cc8c1400040060fcfac100501ac10050ac01a20fbcfc1fd2f00000000a00272108f2e0000020405b40402080a00a035ee0000000001030307", 0, 74, 0, 1],
"frame": {
"filtered": "frame"
},
"eth_raw": ["02112233445502778899aabb0800", 0, 14, 0, 1],
"eth": {
"filtered": "eth"
},
"ip_raw": ["4500003cc8c1400040060fcfac100501ac10050a", 14, 20, 0, 1],
"ip": {
"filtered": "ip"
},
"tcp_raw": ["c01a20fbcfc1fd2f00000000a00272108f2e0000020405b40402080a00a035ee0000000001030307", 34, 40, 0, 1],
"tcp": {
"filtered": "tcp"
}
}
}
}