Russian Qt Forum

Qt => Вопросы новичков => Тема начата: VVN от Август 14, 2016, 20:20



Название: Снифер COM порта и не только. Win7 - WinXP
Отправлено: VVN от Август 14, 2016, 20:20
Здравствуйте, Уважаемые.

Встал вопрос по мониторингу COM портов.
Нужно читать трафик по обмену программы на ПК с устройством на COM порту.

Подскажите какие технологии используются.
Как это реализовать для Win7 и XP.

Подскажите направление с чего начать, что читать и прочее.

Еще вопрос, есть ли в природе бесплатный нормально работающий снифер для Win7.



Название: Re: Снифер COM порта и не только. Win7 - WinXP
Отправлено: Bepec от Август 14, 2016, 21:21
www.aggsoft.ru/serial-port-monitor/serial-port-sniffer.htm
Рекомендую.


Название: Re: Снифер COM порта и не только. Win7 - WinXP
Отправлено: kuzulis от Август 14, 2016, 21:35
Цитировать
Подскажите направление с чего начать, что читать и прочее

Если интересует именно самому написать сниффер - то надо читать про написание фильтр-драйверов в Windows + про WinAPI по SC manager.
Помню, как-то давно тоже интересовался этой темой и нашел пример с исходниками простецкого WDM драйвера и кода по его загрузке и "прицеплянию" к устройству.

В принципе, написать самому все это несложно. Сложность только в подписывании драйвера фильтра, т.к.  сертификат то платный.

Также можно попробовать длл-инъекцию с подменой функций CreateFile, WriteFile, ReadFile и прочих специфичных, но я хз. в результате.

PS: Хотя, под WinXP будет работать и неподписанный драйвер (да даже должен работать вплоть до Win8, но только для 32 битной винды).

Цитировать
Еще вопрос, есть ли в природе бесплатный нормально работающий снифер для Win7.

Я таких не встречал, увы.


Название: Re: Снифер COM порта и не только. Win7 - WinXP
Отправлено: VVN от Август 14, 2016, 22:31
www.aggsoft.ru/serial-port-monitor/serial-port-sniffer.htm

Спасибо, видел я его для быстрого мониторинга пойдет, но нужно свое решение.
И это решение насколько объяснили ниже, не очень простое в реализации.


Если интересует именно самому написать сниффер - то надо читать про написание фильтр-драйверов в Windows + про WinAPI по SC manager.
Помню, как-то давно тоже интересовался этой темой и нашел пример с исходниками простецкого WDM драйвера и кода по его загрузке и "прицеплянию" к устройству.
Интересует, уже начал читать по теме, но пока в голове бардак, никак не сложу логическую последовательность.
Все перемешано Win XP - 7. Причем для Win7 инфы меньше.
Короче не знаю осилю ли эту тему, тема не главная так для домашнего использования.

В принципе, написать самому все это несложно. Сложность только в подписывании драйвера фильтра, т.к.  сертификат то платный.

Насколько понимаю можно в тестовом режиме поставить свой драйвер.

Также можно попробовать длл-инъекцию с подменой функций CreateFile, WriteFile, ReadFile и прочих специфичных, но я хз. в результате.

А это как делается?


Название: Re: Снифер COM порта и не только. Win7 - WinXP
Отправлено: kuzulis от Август 15, 2016, 08:25
Цитировать
Все перемешано Win XP - 7. Причем для Win7 инфы меньше.

В принципе, пофиг под какую ОС писать.. код драйвера что под XP что под Win10 будет тот-же.

Но, кажется, новому компилятору (из WDK8 и выше) при компиляции нужно задать флаг совместимости с WinXP (если WinXP нужен),
это если студия 2013/2015 (кстати, прямо из студии можно создавать проекты и писать).

Но, если используется WDK7.0 (вроде так оно было), то там или как-то прикручивать это дело, или компилить в консоли.

Вот, пример (но не тот что был у меня): http://www.codeproject.com/Articles/311159/SIMPLE-SERIAL-PORT-MONITOR

Цитировать
Насколько понимаю можно в тестовом режиме поставить свой драйвер.

Да, это тоже вариант, если "чисто для себя", а не для продакшена.

Цитировать
А это как делается?

Не имею понятия (слышал только звон и ни разу не использовал).  :)


Название: Re: Снифер COM порта и не только. Win7 - WinXP
Отправлено: Bepec от Август 15, 2016, 11:27
Писать драйвер - дело трудоёмкое и муторное. Потом его подписывать ещё надо.
Если вам своё решение нужно - ну пишите. Если нужно для разработки - лучше пользуйтесь вон приведённым или же купите персональную лицензию.

PS тоже смотрел на это дело, но мне нет необходимости в своём решении, приведённый софт вполне устраивал.