C # - пользовательский TCP-стек в Windows XP SP III - PullRequest
0 голосов
/ 07 апреля 2009

Я пытаюсь создать приложение для создания пакетов, чтобы иметь возможность отлаживать некоторые шлюзы здесь и экспериментировать с ситуациями TCP DoS. Тем не менее, это должно быть очень легко, я не нашел способа реализовать это для приложений Windows.

Я начал использовать Impacket из Core Security в Python для Unix-систем, но пока хочу этого избежать. Прежде всего, Impacket не работает для Windows, и, похоже, он не выполняет то, что я хочу.

Кто-нибудь знает, как получить простое поведение типа raw-socket в Windows? Я знаю, что больше нет сырых сокетов. Но есть ли что-то подобное? Любая библиотека C #, которую я могу использовать ... Я ничего не нашел.

Спасибо;)

Ответы [ 2 ]

1 голос
/ 07 апреля 2009

Создание сокета не так уж и много.

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 довольно просто собрать, и если вы тестируете искаженные пакеты, вам, скорее всего, все равно придется настраивать пакеты.

1 голос
/ 07 апреля 2009

Попробуйте использовать libpcap (winpcap), он может работать в стеке tcp / ip, просто на уровне необработанных пакетов.

...