标签: pcap

如何让 Wireshark 读取没有 UDP/IP/以太网标头的无标头 pcap 文件?

Wireshark 是否支持不需要每个数据包中包含 TCP/UDP/以太网标头的格式?

任何其他(非 pcap)格式的wireshark支持将不胜感激。我需要将无标头数据放入wireshark中以进行进一步检查。

udp packet-capture pcap wireshark

2
推荐指数
1
解决办法
3231
查看次数

在 Mac 上创建的字节序列 0a 0d 0d 0a 的奇怪 pcap 标头?

我有一个在 Mac 上创建的 PCAP 文件,mergecap可以使用 Apple 的 libpcap 在 Mac 上解析该文件,但无法在 Linux 系统上解析。组合文件有一个额外的 16 字节标头,其中包含pcap 文件中常见的介绍0a 0d 0d 0a 78 00 00 004d 3c 2b 1a这是一个十六进制转储:

0000000: 0a0d 0d0a 7800 0000 4d3c 2b1a 0100 0000  ....x...M<+.....
0000010: ffff ffff ffff ffff 0100 4700 4669 6c65  ..........G.File
0000020: 2063 7265 6174 6564 2062 7920 6d65 7267   created by merg
0000030: 696e 673a 200a 4669 6c65 313a 2037 2e70  ing: .File1: 7.p
0000040: 6361 7020 0a46 …
Run Code Online (Sandbox Code Playgroud)

cross-platform pcap pcap-ng

2
推荐指数
1
解决办法
2891
查看次数

使用 dpkt 和 Python 解析数据包捕获时遇到问题

我已将 Cisco 路由器配置为转储 pcap 文件以获取特定接口上的流量,我尝试使用 dpkt 和 Python (2.7) 解析该接口。基本代码是:

f = open('pktrace1.pcap','rb')
pcap = dpkt.pcap.Reader(f)

for ts,buf in pcap:
    eth = dpkt.ethernet.Ethernet(buf)
    ip = eth.data
    tcp = ip.data

f.close()
Run Code Online (Sandbox Code Playgroud)

现在不幸的是,无论出于何种原因,来自路由器的 pcap 转储都将第 2 层信息留空,并且该帧以原始 IP 格式封装。上面的代码在第 7 行失败,并出现以下 AttributeError: 'str' object has no attribute 'data'

我想这是有道理的,因为它期望解析不存在的第 2 层以太网信息。

我对 Python 比较陌生,dpkt 文档对我没有太大帮助。有谁知道我如何让 dpkt 处理这些缺少以太网信息的数据包?或者也许如何让路由器(Cisco 2911,IOS 15.0)将它们与以太网信息原封不动地导出?

我觉得必须有一种简单的方法让 dpkt 处理这些转储,因为 Wireshark 可以完美地读取它们。任何帮助深表感谢!:)

python parsing pcap

2
推荐指数
1
解决办法
6586
查看次数

在OS X上使用pypcap和dpkt的Python嗅探器

我实际上是想用python嗅探数据包(使用pypcap和dpkt).

我尝试了以下方法:

import dpkt, pcap
pc = pcap.pcap()     # construct pcap object
pc.setfilter('src host X.X.X.X or dst host X.X.X.X')
for timestamp, packet in pc:
    print dpkt.ethernet.Ethernet(packet)
Run Code Online (Sandbox Code Playgroud)

但是当我启动脚本时没有任何反应......我错过了什么吗?

在OS X Yosemite上使用Python 2.7(10.10)

python pcap packet-sniffers dpkt

2
推荐指数
1
解决办法
7244
查看次数

DIX 与 802.3 链路层解释

我的问题与 DIX(以太网 II)和以太网有关:链路层有什么区别(如果有)?我在标准列表中没有看到链接层,但是在进行 pcap 捕获时,我看到wireshark 会以不同的方式构建它们(我不打算发布 pcap,但我确定发布了标准)。来源:http : //www.tcpdump.org/linktypes.html

pcap rfc1122

2
推荐指数
1
解决办法
4352
查看次数

过滤前十分钟的 pcap

我有一个很大的 pcap 文件,我想生成一个仅包含前十分钟流量的新 pcap。我可以这样做tcpdump吗?我在editcap网上看到提到过,但tcpdump如果可能,我想使用。

tcpdump pcap editcap

2
推荐指数
1
解决办法
1388
查看次数

需要一种简单的方法来本地修改wireshark .pcap数据包的数据

我一直在尝试 Scapy,但文档太稀疏,我无法让它很好地进行简单编辑。

本质上,我正在Python中寻找一个简单的解决方案,从.pcap中获取每个数据包,读取/修改一些数据/删除数据包并将其另存为.pcap。

例如:

给定一个 sACN 数据包,我需要读取/修改优先级八位字节(108)和全域八位字节(113-114)并再次保存。

谢谢!

python scapy pcap wireshark

2
推荐指数
1
解决办法
4156
查看次数

netcat:监听并捕获TCP数据包

是否可以在已使用的端口上侦听(而不是创建新连接)TCP 数据包,即将数据从路由器发送到服务器。

我知道以下内容启动了上述端口上的侦听过程,并将其保存在文件中pcap

服务器端:nc -l -p <port> > file_name.pcap

客户端:sudo tcpdump -s 0 -U -n -i eth0 not host <server_ip> -w file_name.pcap | nc <server_ip> <port>

但这会在给定端口上创建一个新连接并捕获与其相关的数据包。我想捕获已用于发送数据包的端口上的数据包。

tcpdump pcap netcat

2
推荐指数
1
解决办法
1万
查看次数

如何将整数转换为没有 0x 的十六进制字符串(Julia 1.0)

我有一个问题,我想解码 pcap 记录的 MAC 地址并将其表示为UInt8数组中的4c:76:25:e9:78:42 。

该数组看起来像这样,它是 pcap 记录的一部分。

UInt8[0x4c, 0x76, 0x25, 0xe9, 0x78, 0x42, 0xe0, 0x0e, 0xda, 0x58  …  0x3c, 0xb6, 0x47, 0x00, 0x00, 0x00, 0xe6, 0x5a, 0xa0, 0x29]
Run Code Online (Sandbox Code Playgroud)

其他人为 Julia 0.6.4 创建的逻辑不再适用于 Julia 1.0

这是项目中的一些代码。

数据

julia> cap = PcapOffline("C:/users/XXX/desktop/31072018_1800_2000_IMSI_XXXXXXXXXXXXXXX.pcap")
PcapOffline("C:/users/XXX/desktop/31072018_1800_2000_IMSI_XXXXXXXXXXXXXXX.pcap", IOStream(<file C:/users/rsteel7/desktop/31072018_1800_2000_IMSI_XXXXXXXXXXXXXXX.pcap>), PcapFileHeader(0xa1b23c4d, 0x0002, 0x0004, 0, 0x00000000, 0x00000800, 0x00000001), PcapRec(0x00000000, 0x00000000, 0x00000000, 0x00000000, UInt8[]), true)

julia> rec = pcap_get_record(cap)
PcapRec(0x5b60a3a1, 0x1acb91ba, 0x00000082, 0x00000082, UInt8[0x4c, 0x76, 0x25, 0xe9, 0x78, 0x42, 0xe0, 0x0e, 0xda, 0x58  …  0x00, …
Run Code Online (Sandbox Code Playgroud)

string hex pcap julia

2
推荐指数
1
解决办法
1013
查看次数

libpcap:未检测到无线设备

我想捕获从我的机器出来的数据包,我正在使用libpcap(版本1.0.0-1).问题是,像这样的基本程序 -

#include <stdio.h>
#include <pcap.h>

int main(int argc, char *argv[]) {
    char *dev, errbuf[PCAP_ERRBUF_SIZE];
    dev = pcap_lookupdev(errbuf);
    if (dev == NULL) {
        fprintf(stderr, "%s\n", errbuf);
        return (2);
    }
    printf("Device : %s\n", dev);
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

似乎没有显示无线接口.每次我编译并运行程序时,它都会检测到eth0.我怎样才能捕获无线接口呢?

c pcap libpcap

1
推荐指数
1
解决办法
1647
查看次数