C# — стек TCP пользовательского пространства в Windows XP SP III
-
05-09-2019 - |
Вопрос
Я пытаюсь создать приложение для создания пакетов, чтобы иметь возможность отлаживать здесь некоторые шлюзы и экспериментировать с ситуациями TCP DoS.Тем не менее, это должно быть очень просто, я не нашел способа реализовать это для приложения Windows.
Я начал использовать Импакет из Core Security в Python на компьютере Unix, но пока я хочу этого избежать.Прежде всего, Impacket не работает в Windows и, похоже, не делает именно то, что мне нужно.
Кто-нибудь знает, как получить простое поведение, подобное необработанным сокетам, в Windows?Я знаю, что Raw-сокетов больше нет.Но есть ли что-то подобное?Любая библиотека C#, которую я могу использовать...Я не нашел ничего реактивного.
Спасибо ;)
Решение
Создание сокета не требует особых усилий.
using System.Net.Sockets;
Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw);
или если вам нужны специальные TCP-пакеты:
Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
Если вы планируете отправлять IP-пакеты или пакеты более высокого уровня, которые не предоставляются платформой .Net.Однако пакеты IP и TCP довольно просто собрать вместе, и если вы тестируете некорректные пакеты, вам, скорее всего, все равно придется их настраивать.
Другие советы
Попробуйте использовать libpcap (winpcap), он может работать в стеке tcp/ip, только на уровне необработанных пакетов.