Перехватывать вызовы сокетов процесса из драйвера ядра

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

Спасибо!


person user1262425    schedule 01.05.2012    source источник
comment
возможный дубликат модуля Linux для подключения функций процесса   -  person Flexo    schedule 01.05.2012
comment
извините, вы дали мне ссылку на linux hook, я спросил windows   -  person user1262425    schedule 01.05.2012


Ответы (2)


Вам может помочь использование поставщиков услуг Winsock Layer. Он позволяет перехватывать вызовы Winsock, но в пользовательском режиме. Это делает разработку более плавной, а приложение более стабильным.

person kuba    schedule 02.05.2012

Вы можете сделать это в ядре, используя фильтр TDI. Проверьте это: http://www.codemachine.com/article_tdi.html

Но фильтр TDI работает на уровне протокола сетевой структуры. Таким образом, он основан на протоколе TCP/UDP и т. д.

Если вы хотите реализовать это ниже. Вы можете попробовать использовать фильтр NDIS. Проверьте это: http://msdn.microsoft.com/en-us/library/windows/hardware/ff565492(v=vs.85).aspx

person doskey    schedule 08.05.2012
comment
Не рекомендуется использовать фильтры TDI в ОС Vista и более поздних версиях. Он считается устаревшим в этой и более поздних ОС, и его использование может создать множество проблем с производительностью сети. Лучше использовать платформу фильтрации Windows (msdn.microsoft.com/en- us/library/windows/hardware/gg463267.aspx), если это возможно. - person Gonmator; 23.07.2013