Я ищу способ эмулировать сетевой адаптер на Windows и иметь возможность использовать пакеты в программе. Затем программа отправит их через альтернативные средства. Мне просто нужно создать виртуальный сетевой адаптер, который дает мне доступ к пакетам. Есть ли предварительно написанный драйвер для этого или мне нужно написать свой собственный? Я читал что-то о драйвере TAP для Windows, но я не уверен, что это то, что мне нужно.
2 ответа
Да, для автономного виртуального интерфейса наиболее распространенным методом действительно является драйвер TAP, изначально созданный OpenVPN для имитации встроенного в Linux типа интерфейса «tap». Это с открытым исходным кодом, но вы, вероятно, захотите использовать официальный дистрибутив, поскольку он имеет цифровую подпись (требование в настоящее время).
Другой подход состоит в том, чтобы создать собственный драйвер, выполняющий то же самое. Я полагаю, что именно это делает VirtualBox для его функции «Сеть только на хосте» (которая также является виртуальным интерфейсом, отправляющим все пакеты программному обеспечению).
Если вам нужны только пакеты уровня 3 (IP), вы также можете попробовать реализовать приложение в качестве поставщика Windows VPN, хотя это доступно только для приложений UWP, но не требует драйвера.
Вам не нужно ничего подражать.
У вас уже есть адаптер на вашем компьютере, который вы можете использовать. Это петлевой адаптер Microsoft, также известный под именем localhost.
Если вы пишете программу, вот пара ссылок для начала: