私は独自のスニファーを作成しようとしていました (楽しみのためだけに)、Mac で作業しています。私は、スニッフィングに非常に優れたライブラリである libpcap を使用しています。そこで、5 つのパケットをスニッフィングする次の単純なスニファーを使用しました (C で記述されています)。
#include <pcap.h>
#include "hacking.h"
void pcap_fatal(const char *failed_in, const char *errbuf) {
printf("Fatal Error in %s: %s\n", failed_in, errbuf);
exit(1);
}
int main() {
struct pcap_pkthdr header;
const u_char *packet;
char errbuf[PCAP_ERRBUF_SIZE];
char *device;
pcap_t *pcap_handle;
int i;
device = pcap_lookupdev(errbuf);
if(device == NULL)
pcap_fatal("pcap_lookupdev", errbuf);
printf("Sniffing on device %s\n", device);
pcap_handle = pcap_open_live(device, 4096, 1, 0, errbuf);
if(pcap_handle == NULL)
pcap_fatal("pcap_open_live", errbuf);
for(i=0; i < 5; i++) {
packet = pcap_next(pcap_handle, &header);
printf("Got a %d byte packet\n", header.len);
dump(packet, header.len);
}
pcap_close(pcap_handle);
}
ご参考までに、はい、本 (Hacking: The Art of Exploitation) から引用し、少し修正しました。問題は、これを Linux で実行すると、問題なく完全に動作することです。しかし、これを Mac で実行すると、機能せず、パケットをキャプチャしません。
あなたの誰かが助けることができますか?前もって感謝します!