Russian Qt Forum

Qt => Вопросы новичков => Тема начата: venom2013 от Апрель 30, 2013, 15:56



Название: Sniffer com - порта.
Отправлено: venom2013 от Апрель 30, 2013, 15:56
Здравствуйте.
Есть необходимость написания sniffer com порта. Необходимо слушать порт не занимая его. Например, есть программа, которая работает с принтером и мне необходимо видеть обмен сообщениями между ними. Есть программа  «Free Serial Port Monitor» для просмотра протокола обмена, но мне нужно их сразу расшифровывать и отправлять на другой порт в реальном времени. Для работы с com портом использую «qextserialport», а у нее не нашел такую функцию. Есть у какие-то предложения, или может кто то работал над подобной задачей? Буду очень благодарен за пример!       


Название: Re: Sniffer com - порта.
Отправлено: Bepec от Апрель 30, 2013, 16:00
Конечно вы благородно написали ОС, под которой должна работать программа, просто мои старые глаза уже этого не видят?

У тех же HDD software есть комплект драйверов для сниффинга портов. Но он платный. Бесплатных аналогов я ещё не видел, но я их особо и не искал.

PS если на винду - то там нужен драйвер уровня ядра для этого.


Название: Re: Sniffer com - порта.
Отправлено: venom2013 от Апрель 30, 2013, 16:02
извини  - ОС Windows.


Название: Re: Sniffer com - порта.
Отправлено: kuzulis от Апрель 30, 2013, 18:10
Для такого сниффинга нужно писать драйвер, а именно Filter Driver.

Иначе никак (ну, только что хуками перехватывать вызовы ReadFile/WriteFile или как то так).
Но проще всего - драйвер накатать :)

Вот тебе исходники простейшего сниффера. Правда древние как сам знаешь что.
Я нашел их в гугле (гуглил оч долго) :)

Кстати, можешь прямо использовать этот драйвер (там есть бинарик), сделав к нему обертку
на Qt в которой будешь парсить I/O так как тебе надо.


Название: Re: Sniffer com - порта.
Отправлено: venom2013 от Апрель 30, 2013, 18:21
kuzulis. Большое спасибо!