usi++ (UNIX Socket Interface) ist eine Low-Level-Netzwerkbibliothek zum Senden/Empfangen von IP-, IP6-, ARP- usw. Paketen direkt auf RAW- oder PACKET-Sockets. Es kann auch zur Netzwerküberwachung und zur schnellen Entwicklung von Pentesting-Tools verwendet werden. Es erfordert libpcap
und libdnet
wenn Sie den Layer2-DNET-Anbieter wünschen.
usi++ fällt unter die GPL. Weitere Einzelheiten finden Sie unter Datei KOPIEREN.
Eine Datendatei für Ethernet-MACs ist im Lieferumfang enthalten. Es wurde von Arpwatch übernommen.
Da USI++ GPL ist, gibt es ABSOLUT KEINE GARANTIE. SIE BENUTZEN ES AUF EIGENE GEFAHR.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
Bitte beachten Sie: Wenn Sie mehrere libpcap
Installationen zum Testen haben, ist das generierte Makefile
nur ein Vorschlag. Das Konfigurationsskript kann tatsächlich nicht wissen, welchen Include- oder Lib-Pfad Sie bevorzugen. In einem solchen Fall müssen Sie das generierte Makefile
bearbeiten, um genau darauf zu verweisen, und außerdem die Definitionen festlegen/deaktivieren, die Sie in config.h
benötigen.
Mehr als eine libpcap-Installation ist keine Seltenheit, da verschiedene Funktionen wie pcap_set_immediate_mode()
oder mmapped packet sockets erst kürzlich erschienen sind.
Normalerweise so:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
Wenn Sie usi++ mit dnet- Unterstützung kompiliert haben, wodurch Sie Pakete auch auf der Datenverbindungsebene (nicht nur auf RAW-Sockets) senden können, müssen Sie auch eine Verknüpfung mit -ldnet
herstellen. Neuere libpcap enthalten möglicherweise bereits pcap_inject()
sodass Sie usi++ auch ohne libdnet erstellen können, da diese Funktion auch eine portable Möglichkeit zum Senden von Datalink-Frames bietet.
Bitte schauen Sie sich die HTML-Dokumentation (generiert mit doxygen) von libusi++
oder die Beispiele an.
Linux, BSD, OSX.
Keiner.
Die Linklevel-Behandlung hat sich geändert. Jetzt werden alle Klassen von Layer2 {} abgeleitet, der ein RX- und ein TX-Objekt enthält, die zum Empfangen und Senden von Daten verwendet werden. Die Klassendeklarationen finden Sie in den entsprechenden .h-Dateien. Diese Klassen sind abstrakt, das heißt, Sie müssen Ihre eigenen ableiten, damit sie funktioniert. Schauen Sie sich die .h-Dateien an, welche Funktionen Sie implementieren müssen. USI++ wird mit den Klassen Pcap
, TX_IP
, TX_eth_dnet
usw. geliefert, mit denen Sie Pakete erfassen/senden können. Sie bieten Ihnen grundlegende Funktionalitäten, sodass Sie Programme, die mit USI++ 1.67 oder niedriger funktionieren, normal verwenden können. Indem wir RX
und TX
abstrahieren, stellen wir sicher, dass Layer2
auf Routinen wie sendpack()
zugreifen kann. Es steht Ihnen frei, Ihre eigenen RX/TX-basierten Klassen für verschiedene Hardware (FDDI,...) zu schreiben. Sie können das RX/TX-Verhalten zur Laufzeit ändern, um es so flexibel wie möglich zu gestalten. Sie könnten beispielsweise erkennen, dass Sie mit PPP arbeiten, und dann den PPP-Transimitter laden. Viel Spaß.