问题标签 [pcap-ng]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cross-platform - 在 Mac 上创建的字节序列 0a 0d 0d 0a 的奇怪 pcap 标头?
我有一个在 Mac 上创建的 PCAP 文件,mergecap
可以在带有 Apple 的 libpcap 的 Mac 上解析,但无法在 Linux 系统上解析。组合文件有一个额外的 16 字节标题,包含在 pcap 文件中常见0a 0d 0d 0a 78 00 00 00
的介绍之前。4d 3c 2b 1a
这是一个十六进制转储:
有人知道这是什么吗?或者我如何在带有 libpcap 的 Linux 系统上阅读它?
python-2.7 - 在 Windows 7 中为 Python 2.7.x 构建 libpcap
我尝试了几种不同的方法,并在许多论坛上四处寻找这个问题的答案。
我的目标是使用 Python 简单地解析一个 wireshark .pcap-ng 跟踪文件。据我所知,我似乎需要 Python 或 WinCap 的 libpcap 包装器(PyCapy?)
我对 Python 比较陌生,所以如果大家对如何安装这个模块有任何指示,请告诉我。早些时候我安装了一个 32 位版本的 Python 并找到了一个 win32 安装程序,并且能够解析 .pcap 文件,但我真的希望能够解析 .pcapng 文件。谢谢大家,~Kyte
python - 如何在 Python 中打印 PCAPNG 元数据?
我正在尝试我的第一个 Python 程序,并且可以使用一些帮助。 我在 github 上的脚本
我需要一种在 PCAPNG 文件中打印元数据的方法。我想为初学者打印应用程序和版本、操作系统和界面。Section Header Block 和 Interface Description Block 包含我需要的数据。
我的问题是块/字段不是固定大小,因为每个块中的选项字段:
PCAPNG 格式,请参阅第 3.1 和 3.2 节
问题:
1.) 是否有任何 Python 库可以打印该信息?
2.)如果没有,有什么方法可以通过 Python 轻松获取信息
提前致谢。
networking - 转换 pcap <-> pcap-ng, pcap-ng 工具/库
我正在寻找有关 pcap-ng 的一些信息。
pcap-ng 和 pcap 有什么区别?
是否有任何用于 pcap-ng 的工具/库?
如何将 pcap 转换为 pcap-ng 并将 pcap-ng 转换为 pcap?
ffmpeg - 如何从 Wireshark Capture 中提取 RTP 数据包特定字段?
我有一个 PCAPNG 文件,我需要从中获取 RTP 数据包。具体来说,我的一个 RTP 数据包看起来像......
帧 N:线上 X 字节...
- 以太网 II,源:...
- IPv4,源:...
- TCP,源端口:rstp ...
- RTSP 交错帧,通道:0x02,163 字节
- 实时传输协议
...而我从每个数据包中需要的是...
- 来自 RTSP 交错帧的通道
- RTSP 交错帧的长度
- 来自 RTP 的有效负载
...使用这些数据,我将重新创建一个音频和视频文件,以从本地有效负载重新构建完整的视频(播放不是流式传输)。
我可以使用任何一种方法成功获取 RTP 数据包...
tshark -r my.pcap -R -T fields -e rtp.payload -w rtp.out
或者...
tshark -r my.pcap -R -T fields -e rtp.payload > rtp.out
...但我遇到的问题是第一种方法将保存我需要的所有内容,但由于某种原因,它会在奇怪的地方添加额外的数据(即不仅仅是 RTP 有效负载和 RTSP 交错帧内容)......阻止我编写程序来生成我需要测试的数据。我尝试使用几个正则表达式删除所有额外的数据,但是有太多不同的场景与其他有效场景重叠。
第二种方法将仅提供 RTP 有效负载,而没有我需要的交错属性(它将生成每个字节之间带有冒号的十六进制,但这很容易处理)。即使我可以再次调用以获取所有 RTSP 交错帧属性,我也需要通过使用分隔符/定界符识别每个数据包来组合 2 个输出,我想避免这种情况(我无法获得 tshark要么这样做......)。
我查看了 tshark 读取过滤器,它似乎应该能够做我需要的,但到目前为止我还没有弄清楚。请注意,我这样做只是为了创建示例数据并编写格式化播放所需数据的逻辑。最终,我的一位同事将修改流式客户端以以适当的格式捕获数据(因此我可以简单地通过 ffmpeg 运行数据而无需修改它)。关于如何创建所需格式的任何想法?
java - 将时间戳存储为两个 32 位字(pcapng 格式)
我正在生成我捕获的数据包的 PCAPNG 文件。一切似乎都很好,除了每个数据包的时间戳无效。
简而言之,我将时间戳与所有其他数据一起存储在字节缓冲区中,并将其写入文件。然后,当我使用十六进制编辑器检查文件时,我得到时间戳字段的以下值:
这似乎是一个有效的时间戳。但是,在 Wireshark 中打开文件我得到46860 年 1 月 12 日
查看有关时间戳的 PCAPNG 规范,它指出以下内容:
时间戳(高)和时间戳(低):表示时间戳的 64 位量的高 32 位和低 32 位。时间戳是一个 64 位无符号整数,表示自 1/1/1970 00:00:00 UTC 以来的单位数。解释该字段的方式由该数据包引用的接口描述块的“if_tsresol”选项(参见图 9)指定。请注意,与 libpcap 文件格式不同,时间戳不保存为两个 32 位值,用于计算自 1970 年 1 月 1 日以来的秒数和微秒数。它们保存为单个 64 位数量,另存为两个 32 位字。
所以我假设我只是将值作为 long 存储在字节缓冲区中然后将其保存到文件中是错误的。但是我应该如何将时间戳保存为两个 32 位字?我尝试了不同的方法,例如将值简单地存储为两个整数,但似乎没有什么能给我正确的格式。
请注意,我还在数据包中指定了 if_tsresol,但无论我给它什么值(3 表示 10^-3 => 毫秒),它都不会影响 Wireshark 解释文件的方式。
另一件需要注意的事情是,如果我将时间戳存储为秒,我会在 Wireshark 中得到一个有效的时间戳。如此处所见但是,毫秒被丢弃,这意味着在给定时间戳的情况下,无法解析在同一秒内接收到的所有数据包的顺序。
作为参考,这里是从之前的 wireshark TCP 捕获中获取的时间戳字段:
不知何故,我需要像他们一样存储我的时间戳。
python - 有没有办法从 PcapNG 跟踪文件中提取 WiFi 协议类型?
我正在构建一个 PcapNG 解析器(在 Python 中)来分析 WiFi 数据包。
我希望能够显示链接类型(例如,协议变体:802.11b、802.11a、802.11g 或 802.11n)。
但是,阅读PcapNG 格式定义时,我只看到以下内容:
- LINKTYPE_IEEE802_11 105 IEEE 802.11(无线)
- LINKTYPE_IEEE802_11_RADIO 127 802.11 加上 BSD 无线电报头
有没有办法从 PcapNG 跟踪文件中提取 WiFi 协议类型?
python - 无法理解 PcapNG 文件中的 802.11 数据帧格式
我有Wireshark 创建的PcapNG文件,我尝试使用python-pcapng
.
但是,我无法弄清楚如何协调从FileScanner
's收到的输出packet_payload_info
与802.11 数据帧格式:
这是我得到的输出(我的代码在底部):
你能告诉我packet_payload_data
802.11 数据帧的位置吗?*
- 即,它的第一个字节在帧中的位置
Python代码:
编辑1:
如果我打印几个EnhancedPacket
,packet_payload_data
我注意到它们都以00 00 19 00 6F 08 00 00
. 现在,08
是数据帧标记,这让我怀疑它packet_payload_data
不仅是有效载荷数据,还包括帧控制位。
merge - 使用 Wireshark/mergecap 合并两个文件后丢失数据包
我有两个 pcapng 文件。每一个都是发生在同一路由器但在不同接口上的流量捕获。
由于我想在全球范围内研究路由器协议的行为,因此我考虑将这两个文件合并为一个,因此研究不同的协议会更容易。
我使用了工具mergcap,例如:
根据mergecap的手册,文件将根据每个file1.pcapng和file2.pcapng中每个数据包的时间戳按时间顺序合并。
我现在面临的问题是,在合并发生后,我在 file1.pcapng 中的数据包在 new_file.pcapng 上找不到相同的时间戳。
有没有人做过这样的事情?我正在使用合并帽 2.0.2。
谢谢!
卢卡斯
c++ - 在 C++ 程序中生成 pcapng 文件
我有一个能够生成pcap
文件的 C++ 程序。但是,我想在记录的帧中嵌入额外的信息,并且我知道更新的格式pcapng
允许向帧添加任意评论,我想利用这一点。我也知道libwiretap
能够生成pcapng
文件,但我找不到参考、教程或示例。我的需求很简单:我只需要打开一个pcapng
文件,然后不时将一个数据包转储到其中,然后最后关闭它。您对从哪里开始有任何有用的参考吗?