pcap_open_live无法打开eth0 hexinject

时间:2014-11-30 10:02:05

标签: c linux sockets network-programming virtualbox

我目前正在使用hexinject(嗅探器和注入器),并且在使用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检查控制器并显示;

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/

我是网络编程的新手,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

首先,pcap_open_live()完全要求errbuf用于错误说明,但您错过了在邮件中打印它。您可以将其内容添加到打印件中,以备将来使用。

其次,我90%确定原因是您以普通用户身份启动程序,没有root权限(我猜这是由于$ shell提示符后缀)。默认情况下,仅允许root用户连接到网络接口,或者至少允许具有CAP_NET_ADMINCAP_NET_RAW功能的用户连接到网络接口。您可以在susudo或模拟。

下重试测试