usi++ (UNIX Socket Interface) es una biblioteca de red de bajo nivel para enviar/recibir paquetes IP, IP6, ARP, etc. directamente en sockets RAW o PACKET. También se puede utilizar para el monitoreo de redes y el desarrollo rápido de herramientas de pentesting. Requiere libpcap
y libdnet
si desea el proveedor DNET Layer2.
usi++ está bajo la GPL. Ver archivo COPIANDO para más detalles.
Se incluye un archivo de datos para Ethernet-MAC. Fue tomado de arpwatch.
Dado que USI++ es GPL, NO HAY ABSOLUTAMENTE NINGUNA GARANTÍA. USTED LO UTILIZA BAJO SU PROPIO RIESGO.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
Tenga en cuenta que si tiene varias instalaciones libpcap
para realizar pruebas, el Makefile
generado es solo una propuesta. En realidad, el script de configuración no puede saber qué ruta de inclusión o biblioteca prefiere. En tal caso, debe editar el Makefile
generado para que apunte exactamente a él, además de configurar/desarmar las definiciones que necesita en config.h
.
Tener más de una instalación de libpcap no es raro, ya que recientemente aparecieron varias funciones como pcap_set_immediate_mode()
o mmapped package sockets.
Generalmente así:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
Si compiló usi++ con soporte dnet , lo que le permite enviar también paquetes en la capa de enlace de datos (no solo sockets RAW), también debe vincularse con -ldnet
. Es posible que la libpcap más nueva ya contenga pcap_inject()
por lo que también puede compilar usi++ sin libdnet , ya que esta función también proporciona una forma portátil de enviar tramas de enlace de datos.
Mire la documentación HTML (generada a través de doxygen) de libusi++
o los ejemplos.
Linux, BSD, OSX.
Ninguno.
El manejo del nivel de enlace ha cambiado. Ahora todas las clases se derivan de Layer2 {} que contiene un objeto RX y TX que se utilizan para recibir y transmitir datos. Las declaraciones de clase se pueden encontrar en los archivos .h correspondientes. Estas clases son abstractas, esto significa que debes derivar las tuyas propias para que funcionen. Mire los archivos .h qué funciones debe implementar. USI++ se envía con las clases Pcap
, TX_IP
, TX_eth_dnet
, etc. que le permiten capturar/enviar paquetes. Le brindan una funcionalidad básica para que pueda usar programas que funcionan con USI++ 1.67 o versiones anteriores con normalidad. Al hacer que RX
y TX
sean abstractos, nos aseguramos de que Layer2
pueda acceder a rutinas como sendpack()
. Eres libre de escribir tus propias clases basadas en RX/TX para diferentes hardware (FDDI,...). Puede cambiar el comportamiento de RX/TX en tiempo de ejecución, para que sea lo más flexible posible. Por ejemplo, podría detectar que está trabajando con PPP y luego cargar el transmisor PPP. Divertirse.