我最近买了一台 ALFA AWUSO36EAC,我想在 Mac OS 上使用它进行数据包注入和监控模式。有人告诉我,这是一个询问网卡相关问题的更好的页面。我已经安装了驱动程序,它可以很好地连接到 wifi。但是我无法让它进入监控模式。我使用了 pcap 库。如果相关的话,这是我的 c++ 代码:
char errbuf[PCAP_ERRBUF_SIZE];
char dev[] = "en7";
pcap_t *handler=pcap_create(dev, errbuf);
if (handler == NULL){
printf("unable to put in monitor mode\n");
return -1;
}
if(pcap_can_set_rfmon(handler) == 1){
printf("monitor mode can be set \n");
if(pcap_set_rfmon(handler, 1) == 0){
printf("monitor mode enabled\n");
}
pcap_set_snaplen(handler, 2048); //sets the max packet size to 2048 bytes
pcap_set_promisc(handler, 0); //turns off promiscuous mode
pcap_set_timeout(handler, 10000); //sets the timeout to 10 seconds
int status = pcap_activate(handler);
/* start the loop of capture, loop 5 times */
pcap_loop(handler, 0, (pcap_handler)got_packet, NULL);
pcap_close(handler);
}
else{
std::cout << "this was the return code: " << pcap_can_set_rfmon(handler) << std::endl;
printf( "This could not be opened as %s \n", pcap_geterr(handler));
printf("This was the errbuf output: %s \n", errbuf);
}
如果我将它与计算机附带的 wifi 驱动程序一起使用,它就可以正常工作。但是,如果我将它与 alfa wifi 卡一起使用,它不会给我错误,说明为什么它无法将其置于监控模式。它只是无法将其置于监控模式。我想知道是否有办法覆盖任何阻止 Mac OS 将驱动程序置于监控模式的块。因为,我知道驱动程序确实支持监控模式和数据包注入。
更新
我购买第三方网络系统的原因只是因为它说它支持数据包注入和监控模式。我无法在新的 Mac OS Catalina 上使用数据包注入。但是,我能够将其置于监控模式。有没有办法覆盖 Mac 上的系统以使其使用数据包注入?我假设这将使用 ac 语言,如果有另一个可以做到这一点的库,请发布它。