usi++ (UNIX Socket Interface) é uma biblioteca de rede de baixo nível para enviar/receber pacotes IP, IP6, ARP etc. diretamente em soquetes RAW ou PACKET. Também pode ser usado para monitoramento de rede e desenvolvimento rápido de ferramentas de pentesting. Requer libpcap
e libdnet
se você quiser o provedor Layer2 DNET.
usi++ está sob a GPL. Veja o arquivo COPYING para mais detalhes.
Um arquivo de dados para Ethernet-MAC está incluído. Foi retirado do arpwatch.
Como USI++ é GPL, NÃO HÁ ABSOLUTAMENTE NENHUMA GARANTIA. VOCÊ O USA POR SUA CONTA E RISCO.
$ cd src
$ autoconf
$ ./configure
$ make
# make install
Observe que se você tiver várias instalações libpcap
para teste, o Makefile
gerado é apenas uma proposta. Na verdade, o script de configuração não pode saber qual caminho de inclusão ou lib você prefere. Nesse caso, você deve editar o Makefile
gerado para apontar exatamente para ele, bem como definir/desativar as definições necessárias em config.h
.
Ter mais de uma instalação de libpcap não é incomum, já que várias funções como pcap_set_immediate_mode()
ou soquetes de pacotes mmapped apareceram recentemente.
Geralmente assim:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
Se você compilou o usi++ com suporte a dnet , que permite também enviar pacotes na camada de enlace de dados (não apenas em soquetes RAW), você também precisará vincular-se -ldnet
. A libpcap mais recente pode já conter pcap_inject()
então você também pode construir usi++ sem libdnet , já que esta função também fornece uma maneira portátil de enviar quadros de datalink.
Por favor, consulte a documentação HTML (gerada via doxygen) do libusi++
ou os exemplos.
Linux,BSD,OSX.
Nenhum.
O tratamento do nível de link mudou. Agora todas as classes são derivadas da Camada2 {} que contém um objeto RX e um objeto TX que são usados para receber e transmitir dados. As declarações de classe podem ser encontradas nos arquivos .h correspondentes. Essas classes são abstratas, isso significa que você deve derivar as suas próprias para que funcionem. Veja os arquivos .h cujas funções você deve implementar. USI++ vem com as classes Pcap
, TX_IP
, TX_eth_dnet
etc que permitem capturar/enviar pacotes. Eles fornecem funcionalidades básicas para que você possa usar programas que funcionam normalmente com USI++ 1.67 ou inferior. Ao tornar RX
e TX
abstratos, garantimos que Layer2
possa acessar rotinas como sendpack()
. Você é livre para escrever suas próprias classes baseadas em RX/TX para diferentes hardwares (FDDI,...). Você pode alterar o comportamento RX/TX em tempo de execução, para que seja o mais flexível possível. Por exemplo, você pode detectar que está trabalhando com PPP e então carregar o transmissor PPP. Divirta-se.