Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #96, ДЕКАБРЬ 2006 г.

Создаем продвинутый боевой софт!

Иван Скляров

Хакер, номер #096, стр. 096-080-5


bpf_u_int32 len; /* длина этого пакета */

};

Последний аргумент указывает на буфер, который содержит весь пакет, перехваченный с помощью pcap_loop(). Callback-функция не возвращает никакого значения (void).

В callback-функции должна осуществляться обработка принятых пакетов. Делается это точно так же, как мы это делали в примерах без использования библиотеки libpcap, то есть определяются необходимые структуры заголовков сетевых пакетов и производится разбор принятого пакета на эти структуры, а значения полей выводятся на экран.

Закрытие сессии перехвата

Перед завершением работы следует закрыть сессию. Это делается с помощью функции pcap_close(), которая имеет следующий прототип:

void pcap_close(pcap_t *p)

Единственный аргумент функции — это дескриптор сессии, которую нужно закрыть.

Компиляция программ, использующих библиотеку libpcap, осуществляется с указанием ключа –lpcap. Для нашего снифера это выглядит так:

# gcc sklsniff_pcap.c –o sklsniff_pcap –lpcap

Вот пример использования:

# ./sklsniff_pcap tcp and dst host 192.168.10.1

В этом случае снифер будет отлавливать только TCP-пакеты, отправляемые на узел 192.168.10.1.

Сканер портов с использованием библиотек libpcap и libnet

Наш сканер портов, использующий метод скрытого сканирования (half-open scanning), задействует сразу две библиотеки. Я думаю, ты без труда разберешься в его исходном коде. Компиляция осуществляется следующим образом:

# gcc plscan.c –o plscan `libnet-config --defines` ` libnet-config --libs` `libnet-config --cflags` -lpcap

DVD

На DVD лежат исходные коды снифера (sklsniff_pcap.c), ARP-спуфера (arpspoofer.c), сканера портов (plscan.c), а также последние версии библиотек libpcap и libnet под UNIX и Windows.

WWW

Домашние страницы библиотек:

www.tcpdump.org - libpcap под UNIX;

www.winpcap.org - libpcap под Windows (WinPcap);

www.packetfactory.net/libnet - libnet под UNIX;

www.packetfactory.net/libnet/dist/deprecated/LibnetNT.zip - libnet под Windows;

www.infonexus.com - домашняя страница Майка Шифмана.

INFO

В моей книге «Программирование боевого софта под Linux» ты сможешь найти более подробную информацию о программировании с использованием библиотек libpcap и libnet.

Назад на стр. 096-080-4  Содержание