- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用 hexinject(嗅探器和注入(inject)器),在使用 gcc 生成其目标文件后,当我尝试运行它时,它显示无法打开适配器。
这里是源文件中调用pcap_open_live函数的代码部分;
/* Parse cmdline options */
parseopt(argc, argv);
/* Open the output device */
if ( (fp = pcap_open_live( options.device, // name of the device
BUFSIZ, // portion of the packet to capture
1, // promiscuous mode
-1, // read timeout
errbuf // error buffer
)) == NULL)
{
fprintf(stderr,"\nUnable to open the adapter. %s is not supported.\n", options.device);
return 1;
}
我在终端使用的命令是;
chetan@chetan-VirtualBox:~/hexinject-1.0/hexinject$ ./hexinject -s -i eth0
Unable to open the adapter. eth0 is not supported.
现在我尝试使用 lspci 检查 Controller ,它显示了;
chetan@chetan-VirtualBox:~/hexinject-1.0/hexinject$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02)
我尝试了 ifconfig eth0,它显示了;
chetan@chetan-VirtualBox:~/hexinject-1.0/hexinject$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:34:d0:0f
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe34:d00f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13497 errors:0 dropped:0 overruns:0 frame:0
TX packets:11729 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10512163 (10.5 MB) TX bytes:1754437 (1.7 MB)
这意味着 eth0 没有问题。但是为什么它没有按应有的方式显示输出。我在 Windows 8 主机上的 VirtualBox 上使用 Ubuntu。这里使用的 hexinject 版本也是 1.0。这是 sourceforge 链接,http://sourceforge.net/projects/hexinject/files/hexinject-1.0/ .
我是网络编程的新手,因此不胜感激。
最佳答案
首先,pcap_open_live()
需要 errbuf
来准确描述错误,但您错过了在消息中打印它。您可以将其内容添加到您的打印品中以备将来使用。
其次,我 90% 确定原因是您以普通用户身份启动程序,没有 root 权限(我猜这是由于 $
shell 提示符后缀)。默认情况下,仅允许 root 连接到网络接口(interface),或者至少允许具有 CAP_NET_ADMIN
和 CAP_NET_RAW
功能的用户。您可以在 su
、sudo
或 analog 下重试测试。
关于c - pcap_open_live 无法打开 eth0 hexinject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27212047/
对于下面的函数,如果我想从多个以太网端口中获取特定以太网端口上的数据包捕获句柄,我在哪里可以获得值参数 const char *device ? pcap_t *pcap_open_live(cons
我目前正在使用 hexinject(嗅探器和注入(inject)器),在使用 gcc 生成其目标文件后,当我尝试运行它时,它显示无法打开适配器。 这里是源文件中调用pcap_open_live函数的代
我正在尝试构建 reaver在 Ubuntu 12.04 32 位上。我已经构建并安装了 libpcap . 运行 ./configure,我得到以下错误: checking for pcap_ope
我是一名优秀的程序员,十分优秀!