2010-07-16 64 views
0

我想在沒有wincap庫的情況下嗅探網絡包,請給我一些提示或方向,以便我可以做到這一點。在窗口下的c嗅探包操作系統

+2

你的意思是winpcap庫,是嗎?即使Cygwin相關的TCPDump工具也需要它。我不知道有沒有使用它。爲什麼你需要避免它? – AlG 2010-07-16 12:13:00

+0

只有我必須使用的窗口API。 – Siddiqui 2010-07-16 12:14:47

+2

這是一個開源項目,所以你可以下載源代碼,看看它在做什麼。當然,如果你花很多時間在winpcap源代碼上試圖複製winpcap的功能,那麼你也可以使用它。 http://www.winpcap.org/install/bin/WpcapSrc_4_1_2.zip – dsolimano 2010-07-16 12:17:43

回答

8

你知道,libpcap存在的原因是:它做了一些必要的事情。

您需要爲TCP/IP事件設置系統級掛鉤,並且全局掛鉤的工作方式意味着您需要從DLL中執行此操作。

掛鉤這些事件後,你必須弄清楚你得到的數據包的內容。

你確定要重新發明這個輪子嗎?

我發現了一些關於掛鉤Windows事件的介紹性信息here

0

您可以開始執行內核級編程並捕獲數據包。這當然很複雜,但你會學到很多東西。

+0

在內核中使用netfilter鉤子捕獲數據包是一件痛苦的事情。 當一個巨大的,沒有記錄的和封閉的內核捕獲數據包時,微軟正在用自己的腳射擊自己。 恕我直言,當然。 – 2010-07-16 14:03:31