2

我需要开发一个透明过滤器将传出的 HTTP 数据包重定向到本地代理,以进行透明内容过滤。

哪种技术最好,TDI 还是 NDIS IM?

我的主要限制是避免与防病毒软件发生冲突,这些软件还会执行某种数据包重定向来检查 HTTP 内容(我不知道防病毒程序是使用 TDI、NDIS IM 还是两者都使用)。

实际上,我不是自己编写驱动程序,而是考虑使用两个商业 SDK 进行数据包过滤/修改:一个使用 TDI 驱动程序,另一个使用 NDIS IM 驱动程序,所以这就是我的问题的起源(我只知道NDIS IM,在查看这两个 SDK 之前)。

4

2 回答 2

2

NDIS IM 使您可以访问数据包。

如果您要重定向到代理,您可能在连接 (TCP) 级别执行此操作,在这种情况下,这将在 NDIS IM 级别进行大量工作,因为您需要实现完整的 TCP 堆栈来处理重试、排序等

所以我会更多地研究 TDI 或 WFP(取决于目标操作系统)。

我知道的大多数 AV 也为此使用 LSP,这是一个 winsock 过滤层。因此 TDI 将远低于此值,并且还会捕获不使用 Windows 套接字进行 TCP/IP 的应用程序(例如资源管理器、SMB 客户端等)。

于 2014-01-07T09:36:24.110 回答
0

我发现这个软件可以做到这一点。他的软件使用 NDIS IM

http://www.softperfect.com/products/bandwidth/

于 2013-04-04T17:29:16.933 回答