NDIS 或 TDI,用于将数据包重定向到本地代理
我需要开发一个透明过滤器来将传出的 HTTP 数据包重定向到本地代理,以进行透明内容过滤。
TDI 或 NDIS IM 哪种技术最好?
我的主要限制是避免与防病毒软件发生冲突,防病毒软件也会执行某种数据包重定向来检查 HTTP 内容(我不知道防病毒程序是否使用 TDI、NDIS IM,或两者都使用)。
实际上,我不是自己编写驱动程序,而是在考虑两个用于数据包过滤/修改的商业 SDK:一个使用 TDI 驱动程序,另一个使用 NDIS IM 驱动程序,所以这就是我的问题的根源(我只知道NDIS IM,在查看两个 SDK 之前)。
I need to develop a transparent filter to redirect outgoing HTTP packets to a local proxy, to do transparent content filtering.
Which is the best technology to do it, TDI or NDIS IM?
My main constraint is to avoid conflicts with antivirus software, which also do some kind of packet redirection to inspect HTTP content (I don't know whether antivirus programs use TDI, NDIS IM, or both).
Rather than writing the driver myself, actually, I'm also considering two commercial SDKs for packet filtering/modification: one uses a TDI driver while the other uses a NDIS IM driver, so that's the origin of my question (I was only aware of NDIS IM, before looking at the two SDKs).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
NDIS IM 使您可以访问数据包。
如果您要重定向到代理,您可能在连接 (TCP) 级别执行此操作,在这种情况下,这将在 NDIS IM 级别进行大量工作,因为您需要实现完整的 TCP 堆栈来处理重试、排序等。
所以我会更多地研究 TDI 或 WFP(取决于目标操作系统)。
我所知道的大多数 AV 也使用 LSP,这是一个 Winsock 过滤层。因此,TDI 将远低于此值,并且还捕获不使用 Windows 套接字进行 TCP/IP 的应用程序(例如资源管理器、SMB 客户端等)。
NDIS IM gives you access to packets.
If you're redirecting to a proxy you probably are doing this at the connection (TCP) level, in which case this would be a lot of work at NDIS IM level, since you'd need to implement a full TCP stack to deal with retries, sequencing etc.
So I would look more into TDI or WFP (depending on target OS).
Most AV I know of use LSP for this as well, which is a winsock filtering layer. So TDI would be well below this, and also capture apps that don't use windows sockets for TCP/IP (such as explorer, SMB clients etc).
我发现这个软件可以做到这一点。他的软件使用 NDIS IM
http://www.softperfect.com/products/bandwidth/
I found this software to do this. His software usae NDIS IM
http://www.softperfect.com/products/bandwidth/