Russian Qt Forum

Qt => Работа с сетью => Тема начата: Bepec от Июнь 18, 2012, 19:31



Название: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 18, 2012, 19:31
Приветствую заглянувших.

Собственно хочу задать вопрос:

Как можно прослушать порты TCP/IP в Windows.

Уточняю - имеется приложения, открывающее рандомный порт и посылающее в него данные. Как можно реализовать прослушку - т.е. получать данные, которые приходят/уходят, при этом чтобы сохранялось работоспособность приложения?


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: V1KT0P от Июнь 18, 2012, 19:52
Один из способов что то перехватывать незаметно в винде это хуки.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 18, 2012, 20:06
Виктор, со всем моим уважением к вашему опыту - КАК? :D

Хук поставить я могу. Вопрос только какой тип хука, точнее он позволит перехватывать по отдельному порту данные или нет? А если ставить хук глобальный то это просто ппц :D

Я не против хуков, но напомню - у нас Qt шный так то форум.

PS В любом случае СПАСИБО огромное за ответ.

PPS есть у кого уточнения, ещё идеи?

PPPS вопрос пока о "незаметности прослушки" не стоит. Просто перехватить?


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: V1KT0P от Июнь 18, 2012, 20:11
Виктор, со всем моим уважением к вашему опыту - КАК? :D

Хук поставить я могу. Вопрос только какой тип хука, точнее он позволит перехватывать по отдельному порту данные или нет? А если ставить хук глобальный то это просто ппц :D

Я не против хуков, но напомню - у нас Qt шный так то форум.

PS В любом случае СПАСИБО огромное за ответ.

PPS есть у кого уточнения, ещё идеи?

PPPS вопрос пока о "незаметности прослушки" не стоит. Просто перехватить?
Посмотри в сторону Wireshark. Он бесплатен, открыт и превосходно мониторит весь трафик.
Да кстати совсем забыл, есть же библиотека Pcap: http://ru.wikipedia.org/wiki/Pcap (http://ru.wikipedia.org/wiki/Pcap). Специально сделана для тех кому надо мониторить трафик.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 18, 2012, 20:25
Кхм... Тут собственно и кроется проблема :)

Стукнуло меня по голове отлетевшей лопастью вентилятора из системника, и захотелось сделать это самому, без сторонних библиотек :)

К тому же я не просто так спрашиваю - необходимо в дальнейшем результат этой сумасшедшей темы использовать в своей программе.

PS Wireshark крут, не спорю. Но лопасть от вентилятора сильнее :D


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: mutineer от Июнь 18, 2012, 20:27
PS Wireshark крут, не спорю. Но лопасть от вентилятора сильнее :D

Что мешает посмотреть сорцы Wireshark? Думаю лопасть не обидится на такое читерство


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 18, 2012, 20:35
Проблема в моей не очень большой опытности в просмотре и разборе чужого кода, увы :)
Очень сложно воспринимаю чегой то :)

PS К тому же WireShark использует  Pcap библиотеку :)


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: V1KT0P от Июнь 18, 2012, 21:12
Стукнуло меня по голове отлетевшей лопастью вентилятора из системника, и захотелось сделать это самому, без сторонних библиотек :)
Сперва ты начнешь делать перехват без сторонних библиотек, затем ты решишь что сетевой карте не нужен сторонний драйвер и решишь его написать сам. А там глядишь и до своей не сторонней ОС и своему процу дойдешь =).


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 19, 2012, 00:15
Просто хочется освоить winapi/возможности C++ на сетевом уровне.
Конечно готовое это хорошо. Очень хорошо. Но основы надо знать и понимать, что ты можешь сделать :)

Я вот к примеру (кто не слышал) изучил сначала Qt. А потом начал плюсы :D Вот Qt это готовое :) А плюсы это как раз конструктор блин )

То есть никто незнает, как иначе можно "подслушать порт", не пользуясь сторонними библиотеками?

PS меня на 2 форумах забанили, когда я начал спрашивать про "незаметный перехват" :D Типа хацкер блин я :)

update: А вот до драйверов дело наверняка дойдёт. Ибо позволяют мноооогое. Тот же перехват видео с экрана - влёт идёт, в отличие от bitBtl.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: V1KT0P от Июнь 19, 2012, 04:20
Просто хочется освоить winapi/возможности C++ на сетевом уровне.
Конечно готовое это хорошо. Очень хорошо. Но основы надо знать и понимать, что ты можешь сделать :)
WinPcap вроде как использует свой сетевой драйвер. Советую все-таки полазить по сайту, может и найдешь ссылки на нужные статьи.
А так советую начать с официальной виндовой документации.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Serr500 от Июнь 19, 2012, 07:49
Год назад изучал этот вопрос, хотел сделать свой счётчик трафика. Насколько я понял, PCap не самое лучшее решение. Медленное и способное пропустить пакеты. Пришёл к выводу, что лучше всего NDIS-драйвера. Проект бросил из-за сложности написания драйверов ядра. Если мне не изменяет память, существует что-то около семи различных методов перехвата трафика. Если вспомню, напишу.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: CuteBunny от Июнь 19, 2012, 09:36
http://www.xakep.ru/post/30601/ (http://www.xakep.ru/post/30601/) - средствами windows sockets.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 19, 2012, 12:02
Официальную виндовую документацию ненавижу :D

100% впадение в ярость, после десяти минут чтения :D

Как же надо было поступить, чтобы написать о классе в одном месте, о его функциях во втором, о параметрах функций в третьем, о необходимых инклудах в четвёртом и как добивающий - о необходимых перечислениях в пятом, шестом и седьмом месте :D


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Serr500 от Июнь 19, 2012, 12:05
Официальную виндовую документацию ненавижу :D

100% впадение в ярость, после десяти минут чтения :D
А я уже привык...  :(


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 19, 2012, 12:34
Человек такое существо. Адаптивность зашкаливает :)

Таки иных предложений не поступает видимо.

Промежуточный итог(надеюсь ещё кто нить что нить напишет):
1) писать свой драйвер ядра NDIS
2) использовать сторонние библиотеки (бее)
3) использовать winSock
 
Ещё будут варианты? :)


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: alexis031182 от Июнь 19, 2012, 12:35
С горя перейти на Linux


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: fuCtor от Июнь 19, 2012, 17:54
http://habrahabr.ru/post/111672/  Пишем свой промежуточный драйвер. Часть 1
http://habrahabr.ru/post/111592/  Краткий обзор драйверов спецификации NDIS
http://habrahabr.ru/post/113233/  NDIS. Введение


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 19, 2012, 18:45
Очень хорошие статьи, много нового, спасибо. Жалко автор не дошёл до процесса написания самого драйвера.

Таки ещё будут решения? :)


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: Bepec от Июнь 23, 2012, 19:53
Ап( прошу понять - тема увяла, надо ж и интерес поднять ) :D


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: DmitryM от Июнь 29, 2012, 14:20
Насколько я понял, PCap не самое лучшее решение. Медленное и способное пропустить пакеты.
Дайте свеженький пруф.


Название: Re: Прослушивание TCP/IP портов в windows
Отправлено: ZicoRio от Июль 07, 2012, 09:15
Присоединяюсь к теме.
Тоже хочу написать снифер, но только, чтобы localhost нюхал.

Просьба ткнуть носом в какой-нибудь пример на Qt или статью.
Вобщем пригодится любая информация по теме.