-
Добрый день.
Пишу курсовую и столкнулся со следующей проблеммой. Необходимо по Windows перехватывать IP пакеты "чужых" приложений, производить их оппознание и если пакет идет конкретному адресату производить его шифрование и отправлять. Для приходящих пакетов тоже самое, но надо дешифровать.
Нашел 2 пути.
1) Пишем dll и ставим её вместо родной ws2_32.dll и перед вызовом "родных" функцый send/recive выполняем наши действия над данными. Тут очь много писать, нужно туеву кучу функций продублировать.
2) Пишем в память процесса и меняем там таблицу вызова, поставив вместо recive/send свои функции. Тут проблемма в том, что нужно узнать када левый процесс будет грузить ws2_32.dll.
Вот.
Хотелось бы получить комментарии по моей проблемме. Если есть у кого идеи, как можно всё это реализовать другим способом, то буду благодарен, если поделитесь.
-
3) WinPCap
-
Сергей, а можно по подробней?
-
-
Спасибо)
-
Что-то я не нашел возможности в WinPCap перехватить пакеты. Прочитать их можно, а изменить данные в пакете нельзя. Может плохо искал? Помогите плиз.
-
-
А можно в VPN задать свой метод шифрации? Дело в том, что суть курсовой именно в применении "особого" метода шифрации.
-
> можно в VPN задать свой метод шифрации?
В принципе - конечно можно. А где в курсовой оговорено, что должен осуществляться какой-то там перехват ?
-
Да не где. Дело в том, что нужно разработать ПО которое используя придуманный моим научруком медод шифрации защищало весь траффик между двумя подсетями. Возник вопрос: " А как защищать траффик, если не ты его посылаешь?". Вот и решил, что нужно перехватить его. Если можно применить этот "метод шифрации" на чем-то готовом, то в принципе даже хорошо - меньше мороки.
-
> придуманный моим научруком медод шифрации защищало весь > траффик между двумя подсетями
Ну вы и кулибины с вашим научруком)
> Если можно применить этот "метод шифрации" на чем-то готовом, > то в принципе даже хорошо - меньше мороки
Эт точно)
Начинайте копать в сторону организации VPN. Внедрить в эту технологию свои передовые кулибинские методы довольно легко, для этой цели можно использовать, например, проект OpenVPN
|