gpt4 book ai didi

json - 读取 pcapng 文件并获取 json 格式的 header

转载 作者:行者123 更新时间:2023-12-04 10:03:33 25 4
gpt4 key购买 nike

我有一个wireshark数据包捕获(.pcapng),并且必须将文件读取到python程序的内存中。需要将数据包转换为 JSON 格式,如下所示:

$ tshark -r cap.pcapng -T json > ip.json

我需要将 json 数据写回 pcapng 文件。
请告诉我怎么做。

最佳答案

-T json

如果您像问题中那样输出为 JSON,您将无法转换回 pcap。问题是独立的 JSON 没有字节偏移或字节来告诉转换器要存储哪些字节以及在哪里。

如果这是您的 JSON,则可以使用数据手动编码一个新的 pcap,具体取决于 JSON 值的详细程度。如果您绝对绝望(即避免这种方法),这就是您所做的那种费力的硬编码。
-T json值如下所示:

[
{
"_index": "packets-2020-05-09",
"_type": "doc",
"_score": null,
"_source": {
"layers": {
"frame": {
"frame.interface_id": "0",
"frame.interface_id_tree": {
"frame.interface_name": "en0",
"frame.interface_description": "Wi-Fi"
},
"frame.encap_type": "1",
"frame.time": "May 9, 2020 20:03:11.303663000 PDT",
"frame.offset_shift": "0.000000000",
"frame.time_epoch": "1589079791.303663000",
"frame.time_delta": "0.000000000",
"frame.time_delta_displayed": "0.000000000",
"frame.time_relative": "0.000000000",
"frame.number": "1",
"frame.len": "92",
"frame.cap_len": "92",
"frame.marked": "0",
"frame.ignored": "0",
...

-T jsonraw/-T json -x

这些选项是等效的,并输出每个字段的字节和字节偏移量。 Wireshark 有一个内置的 Python 实用程序,专门用于此目的,称为 json2pcap ,但只会消耗这种类型的输出。

Martin Kacer 编写了这个实用程序并拥有 documentation for it在他的网站上。本文提供了一个分步指南,从 pcap 到 json 再到 pcap。可以找到源码单独使用: json2pcap.py位于 Wireshark 的 github 仓库中。
-T jsonraw输出如下所示:
[
{
"_index": "packets-2020-05-09",
"_type": "doc",
"_score": null,
"_source": {
"layers": {
"frame_raw": [
"cc65adda39706c96cfd87fe70800450000a40000400040061ec4c0a801f69765c18cd13b01bb72f797c64990e967801826c562c300000101080a52be1ece06253aa9170303006b00000000000043350c719c8d15f3339346992e557abac51ade350316082fa92225912552dde4ccec7197c6c7745b91b66747c1c8bea3337656213e59425f35c13fdf1739a174a7528d97b0eb10fce4daaba613840d8ce7f28bbbe094abd97db97da3f8f91b68e4db30d982",
0,
178,
0,
1
],
"frame": {
"frame.interface_id": "0",
"frame.interface_id_tree": {
"frame.interface_name": "en0",
"frame.interface_description": "Wi-Fi"
},
"frame.encap_type": "1",
"frame.time": "May 9, 2020 20:02:25.845268000 PDT",
"frame.offset_shift": "0.000000000",
"frame.time_epoch": "1589079745.845268000",
"frame.time_delta": "0.000000000",
...

如您所见, frame_raw具有数据包的完整字节,这在重构中很重要。

关于json - 读取 pcapng 文件并获取 json 格式的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61705980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com