Как стать автором
Обновить

Комментарии 19

Голова я садовая! Забыл указать пароль на открытие архива: habr
Интерtсно, хоть кто-то из скачавших пытался его открыть? (:
Если идет пост запрос от клиента, сниффер может поймать параметры? :)))
Если, допустим, речь идет о HTTP, то если сниффер бежит на сервере и запрос не в HTTPS, то да. Но, вообще-то, в этом случае и сам сервер может поймать параметры. А если это не HTTP, то все зависит от протокола и шифрации.
Затем! А если серьезно, Вы саму статью хоть читали, или только заголовок? Можно я не буду сам себя цитировать?)
Перечитал еще раз, все что обнаружил:

Сей труд предназначен прежде всего для новичков в сетевом программИровании


Для чего конкретно он может понадобиться новичкам в сетевом программировании? Узнать устройство сетевого стека — windows internals + sir Andrew Tanenbaum. Узнать как написать «программу которая работает с berkeley-сокетами»? Вас самую малость опередили. Узнать как работают снифферы? Скачиваем wireshark source code и смотрим как на самом деле все происходит, в реальном мире. Я ничего не имею против содержания статьи, но её академичность и отдаленность от реальных задач ставит под вопрос вообще смысл её написания, т.к. эти вопросы в таком виде уже тысячи раз освещались.

Все ИМХО.
Подходит вполне для обучения, особенно на начальных этапах, когда хочется видеть простые каркасы, а главное — работающие. И думается, что чтение исходников wireshark новичек не осилит.
>>Узнать устройство сетевого стека — windows internals + sir Andrew Tanenbaum.
Очень многие люди, и я в том числе, пока не «по щупают» фиг че запомнят или поймут! Если теория это «проявка», то практика это «фиксаж». Когда Вы говорите о WireShark, тулзах деда Руссиныча, то вы говорите о «проявке». Но многие вещи вылетают из головы, достаточно быстро. В случае «фиксажа» многие вещи остаются на долго и освежаются в памяти подзабытые вещи значительно быстрее!

Из своего опыта.
Я очень много читал об упаковщиках и вирусах когда-то, потом занимался практикой распаковывания. Но когда я взялся за написание своего первого упаковщика, тогда я понял, что ничего не смыслю в упаковке! При разработке упаковщика я открыл «бездну» просто огромное множество деталей, которых бы не смог открыть занимаясь только лишь распаковкой!
К примеру банальный вопрос: «Сколько TLS-калбаков может быть в PE-файле?» многих, не писавших упаковщик, ложит на лопатки!
Т.е. чтение чужих исходников вы считаете «фиксажом», и, что более интересно, «практикой»?
Я считаю, что чтение исходных кодов минимум на шаг ближе чем просмотр значений показываемых различными тулзами. Хотя, многое зависит от исходного кода.
При просмотре исходного кода, Вы можете столкнуться с некоторыми спорными, на Ваш взгляд, моментами и пытаясь понять почему программист так закодировал Вы можете получить те знания, которые бы вероятно и не получили бы при просмотре значений в выводе тулзов.
В моем понимании практика — нечто большее. Когда я хочу в чем-то разобраться, я делаю так:

1) Теория
2) Написание программульки, либо использование уже существующей
3) Windbg для полного понимания, что происходит «под капотом»

Чтение исходников, особенное дилетантских, обычно ни к чему не приводит кроме как «о да, вот тут я вижу что эта функция вызывается».
Перечитал еще раз

Спасибо :)

Узнать как работают снифферы?

Вы не поверите, но — да! Именно для этого написана эта статья, по мотивам собственного опыта. Симпатичная розовая меточка tutorial как-бы намекает ;)

Скачиваем wireshark source code и смотрим как на самом деле все происходит, в реальном мире.

Этот путь подойдет для профи. Лично мне больше нравится найти отдельные фрагменты, ключевые моменты, как это работает, ну а все остальное писать самому. Читать программы в сотни тысяч строк не так уж и просто, тем более делать это ради десятка строк кода, которые хочется понять.
Вы если хотите повысить свой уровень, узнать что-то новое, освоить новую технологию, тоже всегда открываете исходники проекта класса ААА? Слабо себе представляю, что можно изучить, например, написание ОС по ядру Linux (на начальной стадии).

Я ничего не имею против содержания статьи...

Ваш предыдущий комментарий говорит как раз об обратном.

но её академичность и отдаленность от реальных задач ставит под вопрос вообще смысл её написания

No problem. Статья не академичная и отдаленная от реальных задач. В меня убедили. Больше писать не буду. *пошел форматировать винчестер*
Всего вам хорошего :)
А модификацию трафика сложно реализовать?
Методом, который описан в статье, трафик модифицировать не получится при всем желании.
А на чем вы тестировали свой софт? Я когда-то тоже так разогнался, думал зачем мне WinPCap, сделаю на raw сокетах, а по факту:
Windows XP SP1 — все работает
Windows XP SP2 и выше — есть входящий трафик, но нет исходящего
Windows 7 — есть исходящий трафик, но нет входящего.
Посмотрев на это все, я решил что мне raw сокеты не подходят, и сделал на WinPCap.

p.s. Архив не качал.
На Windows 7 все работает отлично. Должно работать на всех ОС выше Windows 2000.
Масштабный тест не проводил, по-моему, на Windows XP тоже все ок.
Может, кто-то из скачавших прокомментирует работоспособность (хотя, наверняка у большинства Windows 7 или что-то из Linux).
Чуть позже проверю на WinXP SP2 в виртуалке, но мне кажется ничего не поменялось, и будет только половина трафика (либо исходящий, либо входящий)
Отличная статья, спасибо. С удовольствием «плюсанул». Пишите ещё, пусть будет больше статей на Хабре именно технических, для читателей разного уровня. И не слушайте всякие «а зачем?» :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории