Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 499|Yanıt: 0

[Kaynak] .NET/C#, Windows'ta paketleri yakalamak ve paketleri değiştirmek için WinDivert kullanır

[Bağlantıyı kopyala]
2025-9-26 10:53:00 tarihinde yayınlandı | | | |
Gereksinimler: TCP paketlerinin Windows altında yakalanması gerekir ve paketleri değiştirebilir; bu, ağ güvenliğindeki ortada adam saldırılarına benzer şekilde.

Eleştiri:
.net, SharpPcap adlı bir paket yakalama aracı tarafından yazılmıştır
https://www.itsvse.com/thread-2914-1-1.html

Linux trafik yakalamada .NET Core
https://www.itsvse.com/thread-9524-1-1.html

WinDivert: Windows Packet Divert

Windows Paket Yönlendirmesi (WinDivert), Windows 10, Windows 11 ve Windows Server için kullanıcı modunda bir paket yakalama ve aktarma paketidir.

Resmi Web Sitesi:Bağlantı girişi görünür.

WinDivert, kullanıcı modu uygulamalarının Windows ağ yığınına gönderilen ve gönderilen ağ paketlerini yakalamasına/değiştirmesine veya bırakmasına olanak tanır. Özetle, WinDivert şunları yapabilir:

  • Ağ paketlerini yakalama
  • Ağ paketlerini filtrele/bırak
  • Ağ paketlerini koklama
  • (yeniden) ağ paketlerini enjekte et
  • Ağ paketlerini değiştirin


WinDivert, kullanıcı modunda paket filtreleri, paket koklayıcıları, güvenlik duvarları, NAT, VPN'ler, tünel uygulamaları ve daha fazlasını uygulamak için kullanılabilir.

WinDivert'in temel özellikleri şunlardır:

  • Paket yakalama, koklama veya bırakma desenleri
  • Loopback (localhost) trafiğini destekler
  • Tam IPv6 desteği
  • Ağ katmanı
  • Basit ama güçlü API
  • Gelişmiş filtreleme dili
  • Filtre önceliği
  • Sessiz kurulum
  • GNU Geniş Genel Kamu Lisansı (LGPL) şartları kapsamında ücretsiz olarak sunulmaktadır.


httpbin oluştur

httpbin(1): HTTP istek ve yanıt servisi, bir http servisi oluşturun, istenen paket içeriğini WinDivert üzerinden değiştirin, paketin yanıt içeriği üzerinden değiştirildiğini sezgisel olarak görebilirsiniz ve sunucu, aracı tarafından ele geçirilip değiştirilen paketin içeriğini alır.

Kaynak:Bağlantı girişi görünür.

Docker build httpbin komutu şöyledir:
Aşağıda gösterildiği gibi:



.NET konsolu

İlk olarak, yeni bir .NET 8 konsol uygulaması oluşturun ve nuget referansı şu şekildedir:
Kod şöyledir:

Veritabanını engellemeden ve değiştirmeden önce, aşağıdaki şekilde gösterildiği gibi:



Aşağıdaki şekilde gösterildiği gibi paketi yakalamaya ve değiştirmeye başlayın:



(Son)




Önceki:Git, birincil depo dal kodunu özel depo dalıyla senkronize eder
Önümüzdeki:Discuz yüklemeyi optimize ediyor home.php?mod=misc&ac=sendmail&rand=1759095001
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com