Заинтересовал меня следующий вопрос. Как работает Permeo Security Driver. Или как реализовать что-то подобное. Для тех, кто с данной программкой не знаком: данная программа перенаправляет некоторые соединения через Proxy. Можно указывать фильтры на программы (т.е. для каких программ перенаправлять). Данная программа весьма полезна для того, чтобы научить другие программы работать через прокси. Есть какие-либо идеи по этому поводу? Хотелось бы написать свою версию такого драйвера.
Достаточно поставить фильтр на устройство \device\tcp и контролировать запросы TDI_CONNECT. Написать можно за 1 день.
Результат пошуку "TarasCo" Проблема с TDI драйвером TDI фильтр для HTTP. Перенаправить в зависимости от URL
2 Apple: прочел обе ссылки. Сложилось впечатление, что все очень сложно должно быть ). На самом деле, в данном случае все на порядки проще - ведь запрос перенаправляется на основе имени текущего приложения, а не заголовка HTTP. Нужно сделать три несложных вещи: 1) Повесить свой фильтр на \device\tcp ( возможно еще \device\tcp6 \device\udp \device\udp6 ). Например с помощью IoGetDeviceObjectPointer + IoAttachDeviceToDeviceStack 2) Уметь определять имя по pid текущего процесса ( PsGetCurrentProcessId ) или по EPROCESS ( PsGetCurrentProcess ) - задайте такой вопрос отдельно - вам дадут сто советов 3) пропускать все кроме запроса TDI_CONNECT. Последний проверять каком процессу принадлежит ( см. пункт 2 ) и менять адрес назначения в запросе и уже после этого - пропускать. Все.
Permeo, насколько я знаю, LSP (Layered Service Provider) юзает, а не драйвер. А LSP вообще в юзер моде крутится.