2016-07-25 83 views
1

我試圖創建一個工具,它會在特定數據包發送到特定網站之前追加/編輯特定數據包內的某些內容。捕獲和編輯TCP/UDP數據包

現在我正在使用Wpe Pro來應用此過濾器。

在C#中是否有類似的東西來創建這個工具?

+1

即使這有點寬泛,我也對可能的方式感興趣。我想我們正在談論編輯TCP/UDP數據包。使用SSL連接時,興趣點也在編輯數據包。 – C4u

+0

是的即時通訊談論TCP/UDP包:) – d4ne

+0

因爲你將不得不使用[Pcap](https://www.winpcap.org/),你可能想使用[this](http://pcapdotnet.codeplex .com/SourceControl/latest).NET實現。 – lokusking

回答

3

有沒有一個真正的一般方法來做到這一點。你需要考慮多種可能性,看看它們是否適合你的情況。例如,您可以輕鬆地使用Pcap.NET(如註釋中所述)編輯使用HTTP發送的數據包。網絡上有很多例子可以指導你使用Pcap修改數據包,例如官方Pcap.NET論壇上的this discussion。然而,如果數據包使用HTTPS(SSL/TLS),那麼作爲實際發送數據的有效載荷將被加密並且可以繞過;如果有一個/多個precondition(s) of SSL are broken或使用像sslstrip (python)這樣的工具。請注意,即使請求HTTPS,sslstrip也會嘗試強制通過HTTP發送套接字,但這並不保證能夠正常工作。

就我個人而言,我會盡量避免觸摸插座,甚至任何網絡相關的東西。特別是當它涉及HTTPS時,因爲你現在可能已經明白了,這很難繞過。我不知道你試圖破解什麼程序,但我覺得這樣做會對這個答案有好處。

對於HTTP,人們可以很容易地創建一個簡單的程序hooksWindows Socket API。您應該查看send函數,甚至可以查看recv(接收)函數。如果需要,您可以根據需要修改有效負載,甚至可以用另一個有效負載替換它。 請注意,通過winsock.send函數發送的數據已被加密(如果使用SSL/TLS),因爲應用程序將處理第7層(應用程序層),第6層(表示層)和第5層(會話層,這是d)OSI模型。 Winsock is a bridge在第5層和第4層之間。

對於HTTPS,您仍然可以使用掛鉤,但您必須鉤住處理連接的應用程序部分,並確保在初始化連接之前應用您的(已修改)有效載荷。這聽起來很難做到,如果你願意學習並且有一些時間,那麼做起來確實很容易。

+0

目標(至少對我而言)是用一些數據處理普通瀏覽器的行爲。如果面對SSL這麼多問題,另一種方式只能連接到瀏覽器本身。但由於它們有很多不同,我需要爲多個瀏覽器編寫代碼=需要做很多工作。我希望抓住數據包將所有這些數據包分組在一個地方...:/ – C4u

+0

如果瀏覽器使用HTTP訪問網站,您可以使用任何描述的方法,但是如果它使用HTTPS訪問網站,您需要擁有主證書或掛鉤瀏覽器以解密,修改和(重新)加密有效載荷。 –

+0

嗯沒有按照我希望的方式解決,但我想這個評論我們在這裏完成。感謝您的清除。只要倒數到0(22小時),我就會設置獎勵。 – C4u