Windows Packet Divert(WinDivert)是一個適用於Windows 10、Windows 11和Windows Server的使用者模式資料包捕獲和重定向工具。
WinDivert 允許使用者模式應用程式捕獲/修改/丟棄傳送到/從 Windows 網路堆疊的網路資料包。總之,WinDivert 可以:
- 捕獲網路資料包
- 過濾/丟棄網路資料包
- 嗅探網路資料包
- 重新注入網路資料包
- 修改網路資料包
WinDivert 可用於實現使用者模式資料包過濾器、資料包嗅探器、防火牆、NAT、VPN、隧道應用程式等。
WinDivert 的主要特點包括:
- 資料包攔截、嗅探或丟棄模式
- 支援迴環(本地主機)流量
- 完整的 IPv6 支援
- 網路層支援
- 簡單而強大的 API
- 高階過濾語言
- 過濾優先順序
- 靜默安裝
- 在 GNU Lesser General Public License(LGPL)條款下免費提供
詳細文件和示例可參考以下連結:
- WinDivert 參考手冊:WinDivert 2.2
- WinDivert README
- WinDivert 變更日誌
- WinDivert 常見問題解答
- WinDivert 2.2 示例應用程式,包括流跟蹤、簡單資料包捕獲和轉儲、簡單防火牆應用程式、具有多執行緒的基本 WinDivert 應用程式框架、套接字操作轉儲、將 TCP 流重定向到本地代理伺服器、簡單 URL 黑名單過濾器等。
原始碼託管在 GitHub 上:https://github.com/basil00/Divert
下載WinDivert 的原始碼和二進位制包請參考以下連結:
- WinDivert-2.2.2-Source.zip(原始碼壓縮包)
- WinDivert-2.2.2-A.zip(二進位制包)
注意事項:
- WinDivert A/B/C 變體除了驅動簽名外是相同的。對於大多數應用程式來說,使用哪個變體並不重要。
- 商業使用者應儘可能使用自己的證書對驅動程式進行簽名。
- 要使用 WinDivert,請確保應用程式具有管理員特權,否則 WinDivert 將無法載入。
還有一些專案使用了 WinDivert,如 ReQrypt、TcpCrypt、Suricata、GoodbyeDPI 等。這些專案均使用 WinDivert 來實現各種功能,例如 HTTP 請求隧道、網路流量加密、網路威脅檢測等。