2010-04-11 37 views
0

我使用sharppcap捕獲TCP數據包。現在我想從TCP數據包重建HTTP數據包,但我不知道如何。我讀了一些地方,我可以找到TCP數據中的HTTP數據包的開始...我試圖將字節[] TCP數據轉換爲使用此代碼的字符串: string s = System.Text.Encoding.UTF8.GetString(tcp_pack.Data); 但字符串不可讀。就像用記事本打開的二進制文件一樣。 是因爲數據被加密還是代碼不正確? 我怎樣才能從TCP數據包重建HTTP數據包?如何轉換爲字符串並從TCP數據包讀取數據

+0

除非HTTP請求/響應經過SSL(HTTPS),否則不會對其進行加密。 是的,你可以重建HTTP數據包,但我以前從來沒有使用sharpcap,所以我無法分辨如何使用它的函數/方法。 C/C++示例能以任何方式幫助你嗎? – jweyrich 2010-04-11 09:51:53

回答

0

嘗試「Encoding.BigEndianUnicode.GetString(tcp_pack.Data)」

0

有沒有簡單的方法做到這一點,因爲你需要在內存中重建TCP會話。

實質上,如果發送的消息大於一個數據包,則它被分解爲多個數據包。因此,您需要捕獲這些數據包,按照正確的順序排列它們,然後手動重新組合數據。

如果信息短/簡單,並且不會分解成多個部分,那麼您需要找出有效載荷的格式。嘗試先用ASCII解碼。

相關問題