Отличие процесса от пакетов

Я захватил все пакеты с ПК с помощью драйвера NDIS и библиотеки Pcap.
Могу ли я отделить процессы от этих пакетов и отсортировать пакеты по процессам? Или я должен использовать recv, отправить хук функции обо всем процессе?


person Lightstar    schedule 17.01.2015    source источник


Ответы (1)


К тому времени, когда пакеты достигают уровня NDIS, метаданные более высокого уровня о том, кто отправил пакеты, исчезают. (Если вы все равно попытаетесь получить текущий процесс, вы обнаружите, что идентификатор текущего процесса часто неверен. NDIS отправляет трафик в произвольном контексте процесса, а не в исходном контексте отправителя.)

Предпочтительный способ сделать это в Windows — разработать выноска ВПП. Вызовы WFP содержат пакет, процесс отправки, идентификатор пользователя и другие метаданные.

Microsoft не рекомендует вам перехватывать функции. Не рекомендуются даже LSP, и ОС не будет запускать ваш LSP во всех случаях (например, хранить приложения).

person Jeffrey Tippet    schedule 17.01.2015
comment
Я пробовал отдельный пакет с портом для процесса. Но номер порта очень переменный. И интернет-браузер Chrome, и проводник также используют один и тот же номер удаленного порта 80 ... Но PID не один и тот же ... Должен ли я разработать WFP для использования pid из пакета? Нет пути в библиотеке Winpcap? у меня нет времени... - person Lightstar; 18.01.2015
comment
TCPView, вероятно, использует LSP, поскольку он был разработан для более старых версий Windows. TCPView не мог быть написан как драйвер NDIS. - person Jeffrey Tippet; 19.01.2015
comment
Тогда... WFP также является драйвером, как и NDIS? Я также искал wfp для разработки этой работы, но там нет примера кода и другой информации... Если WFP - один из способов решить мою проблему, я постараюсь разработать WFP как можно скорее... - person Lightstar; 21.01.2015
comment
WFP — это платформа драйверов, как и NDIS. Образец WFP находится здесь: code.msdn.microsoft.com/ оборудование для окон/ - person Jeffrey Tippet; 22.01.2015
comment
пользовательский режим wfp == пользовательское приложение? Я искал много информации о wfp, но нет никаких признаков разработки поиска pid из пакета... - person Lightstar; 23.01.2015
comment
@JeffreyTippet хороший .... из интереса, как вы передаете данные ОБРАТНО из вызова WFP в пользовательский процесс? - person horseyguy; 17.05.2020
comment
WFP не диктует, как обмениваться данными между вашим вызовом WFP и любыми компонентами пользовательского режима. Вы можете использовать ioctl или любой другой механизм, который вам нравится. - person Jeffrey Tippet; 19.05.2020