usi++(UNIX 套接字接口)是一个低级网络库,用于直接在 RAW 或 PACKET 套接字上发送/接收 IP、IP6、ARP 等数据包。它还可用于网络监控和渗透测试工具的快速开发。如果您需要 Layer2 DNET 提供程序,则需要libpcap
和libdnet
。
usi++ 受 GPL 约束。有关更多详细信息,请参阅文件复制。
包含以太网 MAC 的数据文件。它是从 arpwatch 获取的。
由于 USI++ 是 GPL,因此绝对没有任何保证。您使用它的风险由您自行承担。
$ cd src
$ autoconf
$ ./configure
$ make
# make install
请注意,如果您安装了多个libpcap
进行测试,则生成的Makefile
只是一个建议。配置脚本实际上无法知道您更喜欢哪个 include 或 lib 路径。在这种情况下,您必须编辑生成的Makefile
以准确指向它,以及设置/取消设置config.h
中所需的定义。
安装多个 libpcap 并不罕见,因为诸如pcap_set_immediate_mode()
或映射数据包套接字等各种函数最近才出现。
通常是这样的:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
如果您编译了支持dnet 的usi++,这允许您在数据链路层(不仅仅是 RAW 套接字)发送数据包,您还需要链接-ldnet
。较新的libpcap可能已经包含pcap_inject()
因此您也可以在没有libdnet 的情况下构建 usi++ ,因为此函数还提供了一种发送数据链路帧的可移植方式。
请查看libusi++
的 HTML 文档(通过 doxygen 生成)或示例。
Linux、BSD、OSX。
没有任何。
链路层处理已更改。现在所有类均派生自 Layer2 {},其中包含用于接收和传输数据的 RX 和 TX 对象。类声明可以在相应的 .h 文件中找到。这些类是抽象的,这意味着您必须派生自己的类才能使其正常工作。查看 .h 文件,您必须实现哪些函数。 USI++ 附带了Pcap
、 TX_IP
、 TX_eth_dnet
等类,可让您捕获/发送数据包。它们为您提供基本功能,以便您可以正常使用适用于 USI++ 1.67 或更低版本的程序。通过使RX
和TX
抽象,我们确保Layer2
可以访问诸如sendpack()
之类的例程。您可以自由地为不同的硬件(FDDI,...)编写自己的基于 RX/TX 的类。您可以在运行时更改 RX/TX 行为,因此它尽可能灵活。例如,您可以检测到您正在使用 PPP,然后加载 PPP 发射器。玩得开心。