Простой брандмауэр в .net - PullRequest
       12

Простой брандмауэр в .net

0 голосов
/ 26 октября 2009

Я хочу попробовать создать простой брандмауэр, который ограничивает доступ приложений к Интернету, за исключением приложений, которые я разрешаю. Как нетлимитер. Таким образом, он должен был бы разрешить доступ в Интернет для приложений, занесенных в белый список, и сбросить соединения для остальных. Это возможно с помощью c # или vb.net? Если это возможно, не могли бы вы указать мне правильное направление.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 декабря 2010

Ну, как сказал terR0Q, вам нужно использовать C ++ или другой низкоуровневый язык программирования (под низкоуровневым я подразумеваю, что он близок к машинному коду).

Если вы хотите придерживаться .NET, ваши возможности ОЧЕНЬ ограничены. Во-первых, вам нужно интенсивно использовать WinApi, что не очень удобно для .NET (хотя, конечно, не невозможно) - вы можете рассмотреть возможность использования VC ++ .NET - и вы можете попробовать EasyHook для управляемого перехвата. Обратите внимание, что это определенно не хорошее решение , учебник фактически предупреждает вас об использовании его в программном обеспечении безопасности:

В отличие от какого нибудь (коммерческого) перехвата библиотеки там есть реклама увеличить продажи, пользовательский режим может подключиться НИКОГДА не будет возможность применить дополнительные проверка безопасности любым безопасным способом. Если Вы только хотите «песочницу» выделенный процесс, вы хорошо знаете, и процесс на самом деле не знает о EasyHook, это может быть успешным! Но никогда не пытайтесь написать программное обеспечение безопасности на основе режима пользователя закреплять. Это не сработает, я обещаю тебе ... Это также, почему EasyHook не делает поддержка так называемой «общесистемной» инъекция, которая на самом деле просто иллюзия, потому что, как я уже сказал, с хуки пользовательского режима это всегда будет невозможно. Но если вы хотите сохранить эта иллюзия вы можете придерживаться других (коммерческие) библиотеки, пытающиеся сделай так ...

Некоторые другие подсказки в руководстве:

Вы должны рассмотреть возможность покупки PatchGuard API, который позволит вам писать приложения безопасности на основе ядра режим перехвата. Режим ядра перехват (или API PatchGuard) является Единственная возможность применить дополнительные проверки безопасности. Начиная с Windows Vista, также платформа фильтрации Windows и другие специальные API для Vista будут полезно написать программное обеспечение безопасности!

Как видите, использование .NET здесь не работает. Если вы все еще хотите попробовать EasyHook, продолжайте, но помните об опасностях. Я бы очень посоветовал вам пойти и изучить C ++ и получить глубокие знания WinApi, прежде чем пытаться что-то вроде брандмауэра.

0 голосов
/ 24 ноября 2009

AFAIK, вам понадобятся низкоуровневые инструменты, такие как C ++ и WIN API, для реализации системного уровня этого брандмауэра.

0 голосов
/ 26 октября 2009

PacketX - это простая маленькая библиотека для перехвата пакетов. Не уверен, что вы можете полностью заблокировать сеть. Вам нужно будет найти способ отключить сетевой адаптер, а затем сделать так, чтобы ваша программа отображалась как сетевой адаптер для пересылки пакетов соответствующим образом.

РЕДАКТИРОВАТЬ: Мой плохо. «PacketX нельзя использовать для блокирования сетевого трафика для создания брандмауэра».

...