Сниффинг пакетов с использованием необработанных сокетов в Linux на C

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

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


person Sajad Bahmani    schedule 28.10.2009    source источник


Ответы (3)


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

person gte525u    schedule 03.11.2009
comment
Если целью является просмотр http-пакетов, то почему бы не использовать ETH_P_IP? Вам не нужно все. - person JXG; 03.11.2009
comment
Цель состоит в том, чтобы увидеть исходящие http-пакеты. ETH_IP_P видит только входящие пакеты. См. ветку: lkml.indiana.edu/hypermail/linux/kernel/9604.1 /0603.html - person gte525u; 03.11.2009

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

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

Инструмент urlsnarf в dnsiff стоит посмотреть.

person Anders Lindahl    schedule 28.10.2009

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

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

person bua    schedule 28.10.2009
comment
мы не можем использовать какую-либо библиотеку, такую ​​как libcap или dnet - person Sajad Bahmani; 28.10.2009
comment
Вы уверены, что ваша система позволяет определять исходящие пакеты? Вы можете использовать libpcap, чтобы определить, возможно ли это. - person JXG; 03.11.2009
comment
@bua Я не могу использовать никакие библиотеки, такие как libcap (запрещено). - person karimvai; 11.12.2016