Обнаружение пакетов с помощью Raw Sockets в Linux в C - PullRequest
4 голосов
/ 28 октября 2009

Мне нужно написать перехватчик пакетов в Linux, который обнаружит отправленные пакеты HTTPS и сохранит URL-адрес из запроса. Я нашел код для этого в security-freak и запустил его. Этот код выполняется и только прослушивает полученный пакет, но мне нужно получить отправленный пакет в сниффере. Как получить отправленный пакет в этом коде?

Я не могу использовать любую библиотеку, например libcap (запрещено). Код: sniffer.c

Ответы [ 3 ]

8 голосов
/ 03 ноября 2009

Вы должны использовать ETH_P_ALL вместо ETH_P_IP в качестве протокола. ETH_P_IP прослушивает только входящие IP-пакеты.

3 голосов
/ 28 октября 2009

Почему вы не можете использовать какую-либо библиотеку? Домашнее задание

Трудно ответить без примеров из вашего кода, например, как вы установили sll_pkttype.

Инструмент urlsnarf из набора dnsiff может стоить посмотреть.

0 голосов
/ 28 октября 2009

При соответствующем использовании libpcap или DNET Вы должны иметь возможность получить всю сеть трафик на нужный уровень (протокол - 5) (тоже этот исходящий). Но ты должен знать это уже.

Вам необходимо просмотреть руководства по библиотекам и найти соответствующую фильтрацию.

...