Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 499|Відповідь: 0

[Джерело] .NET/C# використовує WinDivert для захоплення пакетів і їх зміни на Windows

[Копіювати посилання]
Опубліковано 26.09.2025 10:53:00 | | | |
Вимоги: TCP-пакети потрібно захоплювати під Windows і вони можуть змінювати пакети, подібно до атак «людина посередині» в мережевій безпеці.

Огляд:
.net написаний SharpPcap, інструментом захоплення пакетів
https://www.itsvse.com/thread-2914-1-1.html

.NET Core у захопленні трафіку Linux
https://www.itsvse.com/thread-9524-1-1.html

WinDivert: Windows Packet Divert

Windows Packet Divert (WinDivert) — це пакет для захоплення та передачі пакетів у користувацькому режимі для Windows 10, Windows 11 та Windows Server.

Офіційний вебсайт:Вхід за гіперпосиланням видно.

WinDivert дозволяє користувацьким програмам захоплювати/змінювати/скидати мережеві пакети, які надсилаються до/з мережевого стеку Windows. Підсумовуючи, WinDivert може:

  • Захоплення мережевих пакетів
  • Фільтрація/скидання мережевих пакетів
  • Сніффинг мережевих пакетів
  • (повторно) ін'єкція мережевих пакетів
  • Модифікація мережевих пакетів


WinDivert можна використовувати для реалізації користувацьких пакетних фільтрів, сніферів пакетів, фаєрволів, NAT, VPN, тунельних додатків та іншого.

Ключові особливості WinDivert включають:

  • Перехоплення пакетів, спонсування або скидання шаблонів
  • Підтримує трафік loopback (localhost)
  • Повна підтримка IPv6
  • Мережевий рівень
  • Простий, але потужний API
  • Розширена мова фільтрації
  • Пріоритет фільтра
  • Безшумна установка
  • Вона надається безкоштовно відповідно до умов GNU Broad General Public License (LGPL).


Build httpbin

httpbin(1): HTTP-сервіс запиту та відповіді, створення http-сервісу, модифікування запитуваного вмісту пакетів через WinDivert, інтуїтивно бачити, що пакет було змінено через вміст відповіді, і сервер отримує вміст пакета, який був перехоплений і змінений посередником.

Джерело:Вхід за гіперпосиланням видно.

Команда Docker build httpbin виглядає так:
Як показано нижче:



.NET-консоль

Спочатку створіть новий консольний додаток .NET 8, і посилання nuget виглядає так:
Код виглядає так:

Перед блокуванням і зміною бази даних, як показано на наступному рисунку:



Почніть перехоплення та модифікацію пакета, як показано на наступному рисунку:



(Кінець)




Попередній:Git синхронізує код гілки первинного репозиторію з гілкою приватного репозиторію
Наступний:Discuz оптимізує завантаження home.php?mod=misc&ac=sendmail&rand=1759095001
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com