我有一些网络流量捕获pcap文件,并希望在NIC上发送其数据包; 可能吗?有没有申请这样做?
我目前需要调试我的应用程序和服务器之间的通信.我已经能够通过使用tcpdump开关启动模拟器来捕获数据包:
%emulator -tcpdump emulator.cap @MyDroid
我遇到的问题是,在打开Wireshark中的emulator.cap文件之前,我需要关闭模拟器.否则,Wireshark会抱怨捕获不完整.这个过程非常缓慢.我希望能够在Wireshark中获得emulator.cap文件的实时视图.
看来应该可以使用管道.我正在OS X上进行开发,并尝试了本指南中的Way 1和Way 2:http://wiki.wireshark.org/CaptureSetup/Pipes.
它至少允许我查看捕获的快照,但我没有得到实时更新的视图.单击Wireshark中的刷新按钮不会更新捕获的数据包.我必须关闭并重新打开Wireshark以获得更新(这比重新启动模拟器更快).
在OS X上的Wireshark中从Android模拟器查看实时捕获的步骤是什么?
我正在编写一个程序,它使用libpcap来捕获数据包并重新组装TCP流.我的程序只是监控流量,所以我无法控制数据包的接收和传输.我的程序忽略所有非TCP/IP流量.
我从ISN计算下一个预期的序列号,然后计算连续的SEQ号.我进行了设置,以便每个TCP连接由一个由源IP,源端口,dest IP和dest端口组成的元组唯一标识.一切都顺利进行,直到我收到一个序列号不同于我所期望的数据包.我上传了屏幕截图,以帮助说明我在这里描述的内容.
我的问题是:1."丢失"数据包中的数据在哪里?2. SEQ数字顺序如何从这种情况中恢复?3.我该怎么做才能处理这些事件.
请记住; 但是,我不是在编写一个遵循TCP的程序.我正在编写一个程序,被动地监视TCP流的网络流量并尝试将原始数据保存到磁盘,我很困惑为什么上面的状态发生以及如何编程来处理它.
谢谢
对不起,如果这是一个愚蠢的问题(我刚开始学习网络编程),但我一直在寻找关于如何将文件/数据分成数据包的谷歌.我已经到处读到,不知何故文件被分解为数据包,因为它们通过OSI模型并且通过线路发送,其中接收者基本上反向并删除标题.
我的问题是文件/数据究竟是如何分解成数据包的,以及它们如何在另一端重组?
重组的任何事情如何知道数据的最后一个数据包何时到达等?
是否可以重新组装从另一台机器捕获的数据包?如果是这样怎么样?
(如果它意味着我最感兴趣的是这对TCP类型数据包的工作方式)
我也通过WireShark从我的计算机上的应用程序捕获了一些数据包,它们被标记为TCP协议,我想要做的是将它们重新组装回原始数据,但是如何判断哪些数据包属于哪组数据?
任何指向资源的指标都非常感谢,谢谢!
我试图解析一个TCP包,然后分配给指向有效负载开始的指针.
我正在使用C,这是我的代码到目前为止:
void dump(const unsigned char *data, int length) { //*data contains the raw packet data
    unsigned int i;
    static unsigned long pcount = 0;
    // Decode Packet Header
    struct ether_header *eth_header = (struct ether_header *) data;
    printf("\n\n === PACKET %ld HEADER ===\n", pcount);
    printf("\nSource MAC: ");
    for (i = 0; i < 6; ++i) {
        printf("%02x", eth_header->ether_shost[i]); //? Why don't i use nthos here?
        if (i < 5) printf(":");
    }
    unsigned short ethernet_type = ntohs(eth_header->ether_type);
    printf("\nType: %hu\n", ethernet_type);
    if …我正在转储传出流量。我只想要发往局域网外的 TCP 和 UDP 数据包,别无其他。我只是在 tcpdump 中使用了以下过滤器:
ip and (tcp or udp) and (not icmp) and src host myIPAddr and not dst net myNet/myNetBits and not ip broadcast
但我捕获了以下数据包:
###[ Ethernet ]###
  dst       = ff:ff:ff:ff:ff:ff
  src       = 00:1e:4a:e0:9e:00
  type      = 0x806
###[ ARP ]###
     hwtype    = 0x1
     ptype     = 0x800
     hwlen     = 6
     plen      = 4
     op        = who-has
     hwsrc     = 00:1e:4a:e0:9e:00
     psrc      = X.X.X.X
     hwdst     = 00:00:00:00:00:00
     pdst      = Y.Y.Y.Y
###[ Padding ]###
        load      = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
这里发生了什么?我以为我只转储IP …
我在wireshark中使用了以下过滤器来查找包含这些字节的数据包:
frame contains "\x03\x00\x0e\xa8"
但是当我看到这个过滤器的结果时,它会显示超过1k的数据包,甚至不包含这些字节.例如,它甚至显示以下以太网数据包:
00219ba0610678e7d1c625f40800450000282a0340008006cd88c0a87801d43af65f059e00503bac54cf9f17722a5010ffff04e50000
这个字节包含在这个数据包中.类似地,显示了几个其他分组,而实际上只有两个包含这些字节的分组也被显示.谁能告诉我这里的问题是什么?任何帮助都将得到很高的评价.谢谢
network-programming packet-capture tcpdump wireshark wireshark-dissector
我有一个使用wireshark捕获的pcap文件.假设pcap有6个包,编号从1到6,如下所示.现在我想编辑这个pcap文件,以便我以不同的顺序获取数据包.例如,如果原始pcap包是
1,2,3,4,5,6
我想要一个新的pcap编辑后,现在数据包在顺序(例如)如下:
2,3,1,4,5,6
类似地,我可以有一些其他订单,例如,2,4,5,6,1,3或任何其他订单.
任何人都可以让我知道我该怎么做?(可能使用wireshark或任何其他方法).任何帮助将不胜感激.谢谢
network-programming packet-capture tcpdump wireshark wireshark-dissector
我试图只捕获包含对某个 API 端点的请求的数据包,因此尝试使用以下内容进行过滤:
 tshark -i 2 -f 'port 80' -T pdml http.request.uri contains "/google/"
但是我不断收到以下错误:
tshark: A capture filter was specified both with "-f" and with additional 
command-line arguments.
尝试删除 -f,但这也无济于事。有什么建议?