标签: pcap

在wireshark中设置数据包长度的过滤器

我捕获了一个pcap文件并将其显示在wireshark上.我想分析那些'Length'列等于443的udp数据包.

在wireshark上,我试图找到适当的过滤器.

udp && length 443 # invalid usage
udp && eth.len == 443 # wrong result
udp && ip.len == 443 # wrong result
Run Code Online (Sandbox Code Playgroud)

顺便说一句,wireshark的过滤器可以直接应用于libpcap的过滤器吗?

pcap wireshark libpcap

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

pcap struct pcap_pkthdr len vs caplen

我们在linux上使用libpcap嗅探数据包我们在每个数据包上获得的头部如下所示:

struct pcap_pkthdr {
        struct timeval ts;      /* time stamp */
        bpf_u_int32 caplen;     /* length of portion present */
        bpf_u_int32 len;        /* length this packet (off wire) */
};
Run Code Online (Sandbox Code Playgroud)

现在,我的理解是caplen是我们捕获的数据的长度,而len是线路上数据包的长度.在某些情况下(例如,在打开pcap设备时将snaplen设置得太低),我们可能只捕获数据包的一部分,该长度将为'caplen',而'len'为原始长度.因此,caplen应该等于或小于len,但绝不会大于len.

这是正确的理解吗?我们在某些机器上看到了caplen> len

c pcap

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

如何解析python库中的数据包?

如何使用python从.pcap文件或接口解析数据包?

我特意寻找使用文档齐全的库的解决方案.

python tcp pcap

28
推荐指数
4
解决办法
5万
查看次数

从scapy中更改src/dst的pcap发送数据包

我试图用scapy发送以前记录的流量(以pcap格式捕获).目前我被困在剥离原始的Ether层.流量是在另一台主机上捕获的,我基本上需要更改IP和Ether层src和dst.我设法替换IP层并重新计算校验和,但以太层给我带来了麻烦.

任何人都有经验重新发送来自捕获文件的数据包,并对IP和以太层(src和dst)应用了更改?此外,捕获相当大的Gb,如此具有这样的流量的scapy性能?

python scapy pcap

19
推荐指数
3
解决办法
3万
查看次数

如何连接两个tcpdump文件(pcap文件)

如何连接两个tcpdump文件,以便一个流量将在文件中出现?具体来说,我想"加倍"一个tcpdump文件,以便所有会话将一个接一个地重复顺序几次.

networking tcp tcpdump pcap wireshark

17
推荐指数
3
解决办法
3万
查看次数

如何使用tcpdump过滤MAC地址?

我在DD-WRT路由器上运行tcpdump,以便从手机中捕获上行链路数据.我想只听一些mac地址.为此,我尝试使用类似于Wireshark的语法运行命令:

tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337

这样我就可以收听所有具有初始mac地址的设备5c:95:ae.

问题是语法错误,我想知道是否有人知道正确的语法来获得我想要的东西.

ethernet packet-capture tcpdump pcap wireshark

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

按域过滤

我想通过他们的域过滤我的pcap文件.我的意思是,我希望看到网站上的数据包以".com",".org"或".net"结尾.

我试过:dns包含"com",ip.src_host == com,ip.src_host == com,http包含"com".他们都没有正常工作.

networking filter pcap wireshark tshark

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

将pcap转换为JSON的最简单方法

我有一堆用tcpdump创建的pcap文件.我想将这些存储在数据库中,以便于查询,索引等.我认为mongodb可能是一个不错的选择,因为以Wireshark/TShark将它们呈现为JSON文档的方式存储数据包似乎很自然.

应该可以使用tshark创建PDML文件,解析它们并将它们插入到mongodb中,但我很好奇是否有人知道现有/其他解决方案.

json tcpdump pcap wireshark libpcap

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

在python中解析一个pcap文件

我试图通过python中的pcap文件进行解析.我的目标是能够提取TCP或UDP文件的类型以及它们开始/结束的时间.有没有人在任何某些软件包中有任何建议可能对它们有用,并且有关于它们的文档或一般性的建议吗?

python parsing pcap

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

如何将H264 RTP流从PCAP转换为可播放的视频文件

我在PCAP文件中捕获了H264流,并尝试从数据创建媒体文件.容器并不重要(avi,mp4,mkv,...).
当我使用videosnarf或rtpbreak(结合在每个数据包之前添加00 00 00 01的python代码)然后ffmpeg时,仅当输入帧速率恒定(或接近常量)时结果才可以.但是,当输入为vfr时,结果播放得太快(并且在相同的罕见情况下太慢).
例如:

videosnarf -i captured.pcap -c
ffmpeg -i H264-media-1.264 output.avi

在对该问题进行一些调查后,我现在相信,由于videosnarf(和rtpbreak)正在从数据包中删除RTP标头,因此时间戳丢失,ffmpeg将输入数据称为cbr.

  1. 我想知道是否有传递的方式(在一个单独的文件?)时间戳载体或任何其他信息的ffmpeg所以结果会正确创建?
  2. 有没有其他方法可以将数据从PCAP文件中取出并播放或转换然后播放?
  3. 由于所有工作都是用Python完成的,因此欢迎任何有助于工作的库/模块建议(即使需要一些编码).

注意:所有工作都是离线完成的,输出没有限制.它可以是cbr/vbr,任何可播放的容器和转码.我唯一的"限制":它应该全部运行在Linux上...

谢谢你

一些额外的信息:
由于没有为FFMPEG提供时间戳数据,我决定尝试不同的方法:跳过videosnarf并使用Python代码将数据包直接传送到ffmpeg(使用"-f -i - "选项)但是然后它拒绝接受它,除非我提供SDP文件...
我如何提供SDP文件?它是一个额外的输入文件?("-i config.sdp")

以下代码尝试执行上述操作是不成功的:

import time  
import sys  
import shutil  
import subprocess  
import os  
import dpkt  

if len(sys.argv) < 2:  
    print "argument required!"  
    print "txpcap <pcap file>"  
    sys.exit(2)  
pcap_full_path = sys.argv[1]  

ffmp_cmd = ['ffmpeg','-loglevel','debug','-y','-i','109c.sdp','-f','rtp','-i','-','-na','-vcodec','copy','p.mp4']  

ffmpeg_proc = subprocess.Popen(ffmp_cmd,stdout = subprocess.PIPE,stdin = subprocess.PIPE)  

with open(pcap_full_path, "rb") as pcap_file:  
    pcapReader = dpkt.pcap.Reader(pcap_file)  
    for ts, data in pcapReader: …
Run Code Online (Sandbox Code Playgroud)

python ffmpeg pcap h.264

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

标签 统计

pcap ×10

wireshark ×5

python ×4

tcpdump ×3

libpcap ×2

networking ×2

tcp ×2

c ×1

ethernet ×1

ffmpeg ×1

filter ×1

h.264 ×1

json ×1

packet-capture ×1

parsing ×1

scapy ×1

tshark ×1