我需要开发一个透明过滤器来将传出的HTTP数据包重定向到本地代理,以进行透明内容过滤。
哪种技术最好,TDI或NDIS IM?
我的主要限制是避免与防病毒软件冲突,防病毒软件也会进行某种数据包重定向来检查HTTP内容(我不知道防病毒程序是否使用TDI,NDIS IM或两者兼而有之)。
实际上,我不是自己编写驱动程序,而是考虑使用两个商业SDK进行数据包过滤/修改:一个使用TDI驱动程序而另一个使用NDIS IM驱动程序,这是我问题的起源(我是在查看两个SDK之前,只知道NDIS IM。答案 0 :(得分:1)
NDIS IM可让您访问数据包。
如果您要重定向到代理,您可能正在连接(TCP)级别执行此操作,在这种情况下,这将是NDIS IM级别的大量工作,因为您需要实现完整的TCP堆栈处理重试,排序等。
所以我会更多地关注TDI或WFP(取决于目标操作系统)。
大多数AV我也知道使用LSP,这是一个winsock过滤层。所以TDI将远低于此,并且还捕获不使用Windows套接字用于TCP / IP的应用程序(例如资源管理器,SMB客户端等)。
答案 1 :(得分:0)
我发现这个软件可以做到这一点。他的软件使用NDIS IM