#windows #winapi #networking #network-traffic
#Windows #winapi #сеть #сетевой трафик
Вопрос:
Как мне управлять сетевым интерфейсом в Windows? На самом деле, идея довольно проста.
-
Установите соединение с определенным адаптером на компьютере.
-
Направляйте весь трафик адаптера в эту программу.
-
Предоставьте этой программе права на то, что должно передаваться адаптеру, а что нет.
Я думаю, что программа должна реализовывать любой интерфейс сетевого адаптера Windows и быть зарегистрирована как драйвер адаптера. Таким образом, когда программа хочет передать данные на реальный адаптер, она должна вызывать методы драйвера адаптера. В свою очередь, методы реализуют тот же сетевой интерфейс Windows (или который вызывается по-другому, я действительно не знаю, надеюсь, вы понимаете смысл), не так ли?
В результате мы имеем здесь своего рода наследование. Перед использованием нашего нового драйвера: приложение Windows и сама Windows
________________________ для Windows сетевой интерфейс
ДРАЙВЕР адаптера1
________________________ конец ОС границ
Адаптер 1
Используйте наш новый драйвер: приложение Windows и саму Windows
________________________ для Windows сетевой интерфейс
наш ДРАЙВЕР
________________________ для Windows сетевой интерфейс
ДРАЙВЕР адаптера1
________________________ конец ОС границ
Адаптер 1
Я верю, что такой интерфейс существует, и я надеюсь, что он реализован очень просто.
Ответ №1:
Вероятно, вам потребуется подключить вызовы Windows API, чтобы действительно сделать это. Это возможно… Начните с поиска в Google hook API и Winternals — и посмотрите, сможете ли вы найти их пример кода.
До того, как Winternals была куплена Microsoft, они опубликовали свой код. http://technet.microsoft.com/en-us/sysinternals/bb545021
Идея заключается в следующем:
- Вы пишете программу пользовательского режима, которая управляет драйвером вашего подключаемого устройства.
- Драйвер вашего подключающего устройства определяет, разрешен ли сетевой трафик при заданных вызовах API.
- Драйвер позволяет обычным вызовам API завершаться успешно, если они выполняются.
Комментарии:
1. Да… Хороший вопрос. Но есть какие-то другие, более документальные способы или более конкретные.