标签: pcap

pcap为什么总是8字节的包...为什么?

我正在使用pcap库,但我不知道为什么我总是得到这个输出:

大小的新数据包:udata = 8 hdr = 8 pkt = 8

这是代码:

void handle_pcap(u_char *udata, const struct pcap_pkthdr *hdr, const u_char *pkt)
{
  DEBUG("DANY new packet with size: udata= %d hdr=%d pkt=%d", (int) sizeof(udata),(int) sizeof(hdr),(int) sizeof(pkt) );
...
stuff
}
Run Code Online (Sandbox Code Playgroud)

在我使用的另一个文件中:

status = pcap_loop (pcap_obj,
    -1     /* How many packets it should sniff for before returning (a negative value
       means it should sniff until an error occurs  (loop forever) ) */,
    handle_pcap  /* Callback that will be called*/,
    NULL   /* Arguments …
Run Code Online (Sandbox Code Playgroud)

c pcap

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

无线嗅探使用pcap,MAC地址过滤器

我正在用C编写无线数据包嗅探器程序.我已经使用airmon-ng将我的无线接口设置为监控模式,现在我正在嗅探"mon0"接口.我正在使用linux(ubuntu 10.10).

我想将MAC地址设置为数据包的过滤器.我已经完成了如下所示,但它说"mon0没有分配IPV4地址"

 pcap_lookupnet(dev,&net,&mask,errbuf);
    printf("%s\n",errbuf);
    /* Open the session in promiscuous mode */
    handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
    if (handle == NULL) {
        printf("Couldn't open device %s: %s\n", dev, errbuf);
        return 2;
    }
    if(pcap_compile(handle,&fp,argv[0],0,net)==-1){
        fprintf(stderr,"Error calling pcap_compile\n");exit(1);}
    if(pcap_setfilter(handle,&fp) == -1){
        fprintf(stderr,"Error setting filter\n");exit(1);}
    /* The call pcap_loop() and pass our callback function */
    pcap_loop(handle, 10, my_callback, NULL);
Run Code Online (Sandbox Code Playgroud)

请帮帮我,我怎样才能设置过滤MAC地址?

wireless mode monitor capture pcap

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

分组数据拦截和修改

我希望能够在tcp客户端的tcp流中拦截/修改数据.pcap的示例显示了如何解析tcp包头/有效负载.但是假设,我想在tcp客户端读取之前修改数据包有效负载,或者完全丢弃数据包.我怎么能用pcap capure做到这一点?

pcap libpcap

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

使用dpkt解析pcap文件

我正在做一个任务,我必须解析一个 pcap 文件,我正在使用 dpkt 来做到这一点。我是网络新手,所以我很难调试代码/入门。

第一组代码:

import dpkt

filename='test.pcap'
f = open(filename)
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)

错误是 AttributeError: 'str' 对象没有属性 'data'

因此,从之前的 Stackoverflow 中,我发现也许我应该“跳过 dpkt 以太网解码并直接跳转到 IP 解码”,因此我更改了代码并转到:

import dpkt

filename='test.pcap'

f = open(filename)
pcap = dpkt.pcap.Reader(f)

for ts,buf in pcap:
    ip = dpkt.ip.IP(buf)
    tcp = ip.data

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

它现在给我的错误是“UnpackError: invalid header length”

不太明白如何继续前进,任何帮助将不胜感激

python networking pcap python-2.7 dpkt

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

如何使用c中的pcap执行扫描附近的wifi ap

基本上我想要一个简单的C代码,它说明了在混杂模式下捕获数据包并从中提取出ssid.

EDIT1

我正在编写我编写的代码来执行基本的嗅探.

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

int main(int argc, char *argv[]){
    pcap_t *handle;
    struct pcap_pkthdr header;
    const u_char *packet;
    int i;

    char *dev, errbuf[PCAP_ERRBUF_SIZE];
    //      dev = pcap_lookupdev(errbuf);
    dev = argv[1];
    if( dev == NULL ){
            fprintf(stderr, "Couldn't find default device\n");
            return 0;
    }
    printf("Device: %s\n", dev);
    handle = pcap_open_live( dev , BUFSIZ , 0 , 1000 , errbuf);
    if( handle == NULL ){
            fprintf(stderr , "couldn't open device %s: %s\n" , dev , errbuf);
            return 0;
    }
    else{ …
Run Code Online (Sandbox Code Playgroud)

c sockets pcap libpcap 802.11

-3
推荐指数
1
解决办法
871
查看次数

标签 统计

pcap ×5

c ×2

libpcap ×2

802.11 ×1

capture ×1

dpkt ×1

mode ×1

monitor ×1

networking ×1

python ×1

python-2.7 ×1

sockets ×1

wireless ×1