1

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

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

  2. 将适配器的全部流量定向到该程序。

  3. 授予该程序的权限,哪些必须转移到适配器,哪些不应该转移。

我认为该程序必须实现任何 Windows 网络适配器接口并注册为适配器驱动程序。因此,当程序要向真实的适配器传输数据时,必须调用适配器驱动方法。反过来,这些方法实现了相同的 Windows 网络接口(或者以其他方式调用,我不太清楚,希望你明白),不是吗?

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

__ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ Windows 网络接口

Adapter1 的驱动程序

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

适配器 1

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

__ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ Windows 网络接口

我们的司机

__ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ Windows 网络接口

Adapter1 的驱动程序

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

适配器 1

我相信这种接口是存在的,我希望它很容易实现。

4

1 回答 1

1

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

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

这个想法是这样的:

  • 您编写了一个用户模式程序来控制您的挂钩设备驱动程序。
  • 您的挂钩设备驱动程序确定给定 API 调用上的网络流量是否正常。
  • 如果成功,驱动程序允许正常的 API 调用成功。
于 2011-11-10T01:07:27.070 回答