Сниффер для Windows на RAW-Sockets

Автор: | 2018-02-15

Иногда нужно посмотреть, какими данными обменивается хост с сетью. И если в большинстве дистрибутивов *nix систем, tcpdump поставляется из коробки, то в Windows встроенных средств диагностики сети не много. Можно, конечно же, поставить Wireshark, но не всегда это доступно, да и для того, чтобы сдампить пару пакетов, ставить драйвер в систему не очень оправданно.
Столкнувшись с данной проблемой в далеком 2009 я написал снифер на Raw Socket‘ах, не требующий сторонних библиотек и установки.

По прошествии лет, мне снова понадобился подобный инструмент. Не смотря на то, что изначально программа писалась под Windows XP, она успешно скомпилировалась на Windows 10 и заработала!
После проведения небольшого рефакторинга получился сниффер со следующими скилами:

  • Мало весит (30 кб — как картинка ниже, хотя кого сейчас это валнует);
  • Не требует установки;
  • Не требует сторонних драйверов/библиотек;
  • Декодирует основные параметры пакета;
  • Может выводить содержимое пакета в ASCII/HEX виде;

К сожалению, сырые сокеты в Windows не могут быть забиндины на INADDR_ANY, в связи с чем слушать интерфейс без адреса нельзя, а значит отладка DHCP идет мимо :(. Но для того чтобы понять, что нерадивый банк-клиент не цепляет настройки прокси-сервера и шлёт пакеты на шлюз — будет весьма кстати.
Запуск необходимо выполнять от имени локального администратора компьютера.
netdump
netdump-hex-view
По этой ссылке лежит архив с проектом для IDE CodeLite и скомпилированный бинарник.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *