usi++ (UNIX Socket Interface) — это низкоуровневая сетевая библиотека для отправки/получения пакетов IP, IP6, ARP и т. д. непосредственно через сокеты RAW или PACKET. Его также можно использовать для мониторинга сети и быстрой разработки инструментов пентестирования. Если вам нужен поставщик DNET уровня 2, требуются libpcap
и libdnet
.
usi++ распространяется под лицензией GPL. См. файл COPYING для более подробной информации.
Включен файл данных для Ethernet-MAC. Это было взято с arpwatch.
Поскольку USI++ распространяется по лицензии GPL, АБСОЛЮТНО НИКАКИХ ГАРАНТИЙ НЕТ. ВЫ ИСПОЛЬЗУЕТЕ ЕГО НА СВОЙ РИСК.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
Обратите внимание: если у вас есть несколько установок libpcap
для тестирования, созданный Makefile
— это всего лишь предложение. Сценарий настройки на самом деле не может знать, какой путь include или lib вы предпочитаете. В таком случае вам необходимо отредактировать сгенерированный Makefile
, чтобы он точно указывал на него, а также установить/отменить необходимые определения в config.h
.
Наличие более одной установки libpcap не является редкостью, поскольку недавно появились различные функции, такие как pcap_set_immediate_mode()
или сокеты пакетов mmapped.
Обычно так:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
Если вы скомпилировали usi++ с поддержкой dnet , что позволяет вам также отправлять пакеты на канальном уровне (а не только через сокеты RAW), вам также необходимо установить связь с -ldnet
. Более новая версия libpcap может уже содержать pcap_inject()
поэтому вы также можете собрать usi++ без libdnet , поскольку эта функция также обеспечивает переносимый способ отправки кадров канала передачи данных.
Пожалуйста, посмотрите HTML-документацию (сгенерированную с помощью doxygen) libusi++
или примеры.
Линукс, БСД, OSX.
Никто.
Обработка уровня канала изменилась. Теперь все классы являются производными от Layer2 {}, который содержит объекты RX и TX, которые используются для приема и передачи данных. Объявления классов можно найти в соответствующих файлах .h. Эти классы абстрактны, а это означает, что вам придется создать свой собственный, чтобы он работал. Посмотрите в файлах .h, какие функции вы должны реализовать. USI++ поставляется с классами Pcap
, TX_IP
, TX_eth_dnet
и т. д., которые позволяют захватывать/отправлять пакеты. Они предоставляют вам базовую функциональность, позволяющую использовать программы, работающие с USI++ 1.67 или ниже, как обычно. Сделав RX
и TX
абстрактными, мы гарантируем, что Layer2
сможет получить доступ к таким процедурам, как sendpack()
. Вы можете писать свои собственные классы на основе RX/TX для различного оборудования (FDDI,...). Вы можете изменить поведение RX/TX во время выполнения, чтобы оно было максимально гибким. Например, вы можете обнаружить, что работаете с PPP, а затем загрузить передатчик PPP. Веселиться.