Windows上的网络控制

时间:2011-11-10 00:56:25

标签: windows winapi networking network-traffic

如何在Windows上控制网络接口?实际上,这个想法很简单。

  1. 建立与计算机上某个适配器的连接。

  2. 将适配器的整个流量直接指向此程序。

  3. 授予此程序必须转移到适配器的权限以及不应该转移的内容。

  4. 我认为该程序必须实现任何Windows网络适配器接口并注册为适配器驱动程序。因此,当它想要将数据传输到真实适配器时,程序必须调用适配器驱动程序方法。反过来,这些方法实现了相同的Windows网络接口(或以其他方式调用,实际上并不知道,我希望你能理解),不是吗?

    结果,我们在这里有一种继承。 在使用新驱动程序之前: Windows应用程序和Windows本身

    __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口

    Adapter1的驱动程序

    __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ 操作系统边界结束

    适配器1

    使用我们的新驱动程序: Windows应用程序和Windows本身

    __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口

    我们的DRIVER

    __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ windows网络接口

    Adapter1的驱动程序

    __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ 操作系统边界结束

    适配器1

    我相信存在这种界面,我希望它很容易实现。

1 个答案:

答案 0 :(得分:1)

您可能需要挂钩Windows API调用才能真正做到这一点。有可能......从Googling hook API和Winternals开始 - 看看你是否能找到他们的示例代码。

在Winternals被微软收购之前,他们发布了他们的代码。 http://technet.microsoft.com/en-us/sysinternals/bb545021

这个想法是这样的:

  • 您编写了一个控制挂钩设备的用户模式程序 驱动程序。
  • 您的挂钩设备驱动程序确定是否有网络流量 给定的API调用没问题。
  • 驱动程序允许正常的API调用成功。