2010-05-06 12 views
2

我需要開發透明過濾器以將傳出的HTTP數據包重定向到本地代理,以執行透明內容過濾。用於數據包重定向到本地代理的NDIS或TDI

哪個是最好的技術,TDI或NDIS IM?

我的主要限制是避免與防病毒軟件發生衝突,防病毒軟件也會執行某種數據包重定向來檢查HTTP內容(我不知道防病毒程序是使用TDI,NDIS IM還是兩者)。我不是自己編寫驅動程序,實際上,我也在考慮使用兩個商用SDK進行數據包過濾/修改:一個使用TDI驅動程序,另一個使用NDIS IM驅動程序,所以這是我的問題的起源(I在查看這兩個SDK之前,他只知道NDIS IM)。

回答

1

NDIS IM,您可以訪問到的數據包。

如果您正在重定向到代理服務器,您可能正在連接(TCP)級別執行此操作,在這種情況下,在NDIS IM級別上這需要很多工作,因爲您需要實現完整的TCP堆棧來處理重試,排序等。

所以我會更多地關注TDI或WFP(取決於目標OS)。

大多數AV我知道使用LSP也是這樣,它是一個winsock過濾層。因此,TDI將遠低於此,並捕獲不使用TCP/IP的Windows套接字的應用程序(例如瀏覽器,SMB客戶端等)。