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