如何在Windows上控制网络接口?实际上,这个想法很简单。
建立与计算机上某个适配器的连接。
将适配器的整个流量直接指向此程序。
授予此程序必须转移到适配器的权限以及不应该转移的内容。
我认为该程序必须实现任何Windows网络适配器接口并注册为适配器驱动程序。因此,当它想要将数据传输到真实适配器时,程序必须调用适配器驱动程序方法。反过来,这些方法实现了相同的Windows网络接口(或以其他方式调用,实际上并不知道,我希望你能理解),不是吗?
结果,我们在这里有一种继承。 在使用新驱动程序之前: Windows应用程序和Windows本身
的 的 __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口
Adapter1的驱动程序
的 的 __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ 操作系统边界结束
适配器1
使用我们的新驱动程序: Windows应用程序和Windows本身
的 的 __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口
我们的DRIVER
的 的 __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口
Adapter1的驱动程序
的 的 __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ 操作系统边界结束
适配器1
我相信存在这种界面,我希望它很容易实现。
答案 0 :(得分:1)
您可能需要挂钩Windows API调用才能真正做到这一点。有可能......从Googling hook API和Winternals开始 - 看看你是否能找到他们的示例代码。
在Winternals被微软收购之前,他们发布了他们的代码。 http://technet.microsoft.com/en-us/sysinternals/bb545021
这个想法是这样的: