usi++ (UNIX Socket Interface) est une bibliothèque réseau de bas niveau pour envoyer/recevoir des paquets IP, IP6, ARP etc. directement sur des sockets RAW ou PACKET. Il peut également être utilisé pour la surveillance du réseau et le développement rapide d’outils de test d’intrusion. Il nécessite libpcap
et libdnet
si vous souhaitez le fournisseur Layer2 DNET.
usi++ est sous licence GPL. Voir COPIE de fichiers pour plus de détails.
Un fichier de données pour Ethernet-MAC est inclus. Il a été extrait d'arpwatch.
Puisque USI++ est GPL, il n'y a ABSOLUMENT AUCUNE GARANTIE. VOUS L'UTILISEZ À VOS PROPRES RISQUES.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
Veuillez noter que si vous avez plusieurs installations libpcap
à tester, le Makefile
généré n'est qu'une proposition. Le script de configuration ne peut en fait pas savoir quel chemin d'inclusion ou de bibliothèque vous préférez. Dans ce cas, vous devez modifier le Makefile
généré pour y pointer exactement, ainsi que définir/désactiver les définitions dont vous avez besoin dans config.h
.
Avoir plus d'une installation de libpcap n'est pas rare, puisque diverses fonctions telles que pcap_set_immediate_mode()
ou les sockets de paquets mmapped sont apparues récemment.
Généralement comme ça :
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
Si vous avez compilé usi++ avec le support dnet , qui vous permet également d'envoyer des paquets au niveau de la couche liaison de données (pas seulement sur les sockets RAW), vous devez également établir un lien avec -ldnet
. La nouvelle libpcap peut déjà contenir pcap_inject()
vous pouvez donc également construire usi++ sans libdnet , car cette fonction fournit également un moyen portable d'envoyer des trames de liaison de données.
Veuillez consulter la documentation HTML (générée via doxygen) de libusi++
ou les exemples.
Linux, BSD, OSX.
Aucun.
La gestion au niveau des liens a changé. Désormais, toutes les classes sont dérivées de Layer2 {} qui contient un objet RX et un objet TX qui sont utilisés pour recevoir et transmettre des données. Les déclarations de classe peuvent être trouvées dans les fichiers .h correspondants. Ces classes sont abstraites, cela signifie que vous devez dériver les vôtres pour que cela fonctionne. Regardez les fichiers .h quelles fonctions vous devez implémenter. USI++ est livré avec les classes Pcap
, TX_IP
, TX_eth_dnet
etc qui vous permettent de capturer/envoyer des paquets. Ils vous offrent des fonctionnalités de base afin que vous puissiez utiliser normalement des programmes qui fonctionnent avec USI++ 1.67 ou une version antérieure. En rendant RX
et TX
abstraits, nous nous assurons que Layer2
peut accéder à des routines telles que sendpack()
. Vous êtes libre d'écrire vos propres classes basées sur RX/TX pour différents matériels (FDDI,...). Vous pouvez modifier le comportement RX/TX au moment de l'exécution, afin qu'il soit aussi flexible que possible. Par exemple, vous pouvez détecter que vous travaillez avec PPP, puis charger l'émetteur PPP. Amusez-vous.