Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 10:11   #1
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию Firewall for Windows, handsmake

Приветствую.

Теория
В универе предлагают курсовой на тему защита / фильтрация комп. сетей. Ну грубо говоря. Индивидуальное задание заключается в том, чтобы создать подобие файрвола для Windows, к примеру выдавать запрос на разрешение или отклонения входного/выходного сетевого подключения.

Решение
Как я понимаю, следует внедрять свою .dll во все процессы (хуки помогут), после чего отлавливать WinSock функции подключения, создания сокетов и др. После чего к примеру слать SendMessage что в свою очередь вернет результат отработки в моем приложении и заморозит тред который пытается создать сокет (к примеру). Далее, либо вернуть ошибку либо вызвать оригинал функции WinSock перехватываемой.

Вопрос
Будет ли работать такая логика? Может еще чего перехватить, дописать, проверить? Кто знает, прошу выкладывать свои мысли, думаю может еще кому то будет интересно.
BOBAH13 вне форума Ответить с цитированием
Старый 03.09.2010, 10:18   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Статейку в "хакере" давно уже видел, найду - ссылку кину.

А какой язык?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 03.09.2010, 10:19   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

идея нормальная, работать будет. вот только при такой реализации возникает проблема постоянного поиска новых процессов и куча других проблем, так как программы могут обращаться напрямую к ядру мимо перехваченных тобой функций.
Наиболее оптимальный вариант в данном случае написать драйвер режима ядра, который в ядре системы будет перехватывать функции работы с сетью.
rpy3uH вне форума Ответить с цитированием
Старый 03.09.2010, 10:43   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Можно посмотреть как сделано здесь и здесь. Лучше всё же через драйвер делать. Это решение мне кажется надежнее, изящнее и в целом лучше. А вот хуки выглядят как костыль... но зато в реализации попроще пожалуй будет Сам правда я этим всем не занимался, так что мнение моё основано на теоретических знаниях.
pu4koff вне форума Ответить с цитированием
Старый 03.09.2010, 11:29   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Думаю, будет нелишним зайти на http://SourceForge.net и найти какой-нибудь файрвол. Затем просто открыть его исходник и посмотреть, как это устроено. Как вариант - пойти по стопам Попова и просто изменить автора программы

P.S. Про Попова я серьезно!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 03.09.2010 в 11:31.
Alex Cones вне форума Ответить с цитированием
Старый 03.09.2010, 12:22   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

На счет метода "Попова" смысла для меня никакого нет, ну да ладно. Я прочитал статьи там оказывается есть несколько вариантов файрволов, попробую свой метод, посмотрим что будет. Спасибо за подсказки и помощь.

Просто если мой метод, заморочки с драйвером не нужны, загрузка и в 32х и в 64х процессы, всегда грузится через хук во все процессы, к примеру используя GetMessage хук (гарантия загрузки в процессы). Перехват API тестировал, работает.

Если интересно, и если заработает, то потом может и статью еще одну выпущу в журнал если надо.

Язык не важен, я думаю что .dll на C++, UI наверное на C#/WPF.
BOBAH13 вне форума Ответить с цитированием
Старый 03.09.2010, 12:54   #7
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
может и статью еще одну выпущу в журнал
Если еще и поподробнее - то было б замечательно!
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 03.09.2010, 13:26   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
Будет ли работать такая логика?
Будет. Но файрвол ничего не заметит, если кто-то воткнётся прямо в стек TCP/IP

Цитата:
заморочки с драйвером не нужны
Заморочки с драйвером не нужны для курсовой Да и не выйдет вот так с бухты-барахты написать более-менее корректно работающий и учитывающий все тонкости драйвер.
пыщь

Последний раз редактировалось JTG; 03.09.2010 в 13:29.
JTG вне форума Ответить с цитированием
Старый 03.09.2010, 13:39   #9
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Заморочки с драйвером не нужны для курсовой Да и не выйдет вот так с бухты-барахты написать более-менее корректно работающий и учитывающий все тонкости драйвер.
Именно это больше будет разминка для меня, более менее работающий файрвол, покрывающий точно рядовые приложения, ну и оценка в поряде, т.к. это будет "ух ты..." для препода моего универа.
BOBAH13 вне форума Ответить с цитированием
Старый 03.09.2010, 13:44   #10
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Чтобы Ваш препод сделал "Ух, ты!", достаточно направить его сюда и показать Ваши ответы, либо статейку в журнале...
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
firewall своими руками badfilin Общие вопросы C/C++ 0 24.01.2010 22:14
firewall на Delphi ikot Работа с сетью в Delphi 4 20.01.2010 22:27
Простейший firewall ytkopobot Помощь студентам 1 08.05.2008 13:14