问题标签 [ndis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1094 浏览

window - DDK 示例 passthru 未在 win7 中加载

我正在开发基于 ddk 示例“passthru”的驱动程序,但在 win7(x86 或 x64)中加载此驱动程序时遇到问题。我已经在 winxp(x86 和 x64)中测试了我的驱动程序,它运行得很好,但是当我尝试将此驱动程序加载到 win7(F8->禁用驱动程序签名强制)时,它似乎失败了。然后,我尝试了本机 passthru 代码,它也失败了。我以为它失败了,因为

  1. 我看不到使用 KdPrint fron windbg 的任何输出。
  2. 我无法从系统事件中看到任何有用的信息。
  3. 我在 passthru!DriverEntry 上设置了断点,似乎 DriverEntry 没有被调用。

我的WDK是7600.16385.1,passthru应该是兼容win7的。我使用命令“build -cZ”编译 passthru。你能帮我理解这个问题,或者任何关于为什么在win7中没有加载passthru的线索吗?

我在win7 x86下编译过这个驱动,检查编译环境,在win7 x86下测试过。

已解决:实际上驱动已经加载,但是win7默认不显示KdPrint的输出,应该使用KdPrintEx指定消息级别,或者修改注册表显示调试信息。现在我也不知道为什么 bp 也失败了。

0 投票
3 回答
1085 浏览

c - NDIS 挂钩 sendPacketsHandler

我使用NdisRegisterProtocol()注册了一个协议驱动,并使用_NDIS_OPEN_BLOCK_NDIS_PROTOCOL_BLOCK结构hookReceivePacketHandler成功,使用MyRecivePacket()代替NDIS接收数据包的功能,当我打开一个网站,MyRecievePacket()就会运行。

我的问题是:当我使用打开一个网站(如www.stackoverflow.com)时IE,我怎样才能挂钩SendPacketsHandler来获取这个数据包并获取 urlwww.stackoverflow.com字符串。换句话说,如何在内核模式下捕获 url。谢谢

0 投票
1 回答
444 浏览

c++ - 在 Windows NDIS 的 passthru 示例中,如何发送带有特定适配器的 NDIS_PACKET?

我正在通过修改 Windows WDK 中的原始 passthru 示例,在 Windows 平台上开发类似 NAT 的软件。

这是我机器中的几个网络适配器,我想分析我收到的每个数据包,然后决定将数据包转发到哪个适配器。问题来了:调用 NdisSend 函数时不知道如何指定发送的适配器。

如下,在 NdisSend 中有一个 BindingHandle arg,但据我了解,它应该代表 passthru 中的所有适配器(可能不对:)

NdisSend(&Status, pAdapt->BindingHandle, MyPacket);

那么如何在调用 NdisSend 时指定这样的适配器:{62E9DB05-88D3-479D-A194-22D6A591DB96}?

非常感谢..

0 投票
3 回答
521 浏览

windows - windows驱动开发

我是 Windows 驱动程序开发的新手,所以如果我的问题太愚蠢,请多多包涵。好吧,我不知道为什么,正如 MSDN 所建议的那样,以及我认为的方式,主机(例如开发驱动程序)和目标计算机(例如调试驱动程序)需要是两个独立的计算机。为什么要这样分离?我确实尝试通过在主机上部署和调试驱动程序来合并这两者,我正在其中开发一个驱动程序,并且它似乎在 Windows 没有反对意见的情况下工作。谢谢。

PS。像这样的来源http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx让我这么想。

0 投票
2 回答
641 浏览

driver - 使用什么技术/API/技术进行网络监控?

好的,我正在构建一个实用程序来监视文件系统、注册表和网络活动(进程明智;只有选定进程的活动)。我通过开发一个微过滤器驱动程序完成了文件系统和注册表活动部分。但是,我不确定我应该如何为网络做这件事。我想做的很像 sysinternal 的 TCPView 所做的,但是我只想监视所选进程的 ESTABLISHED 连接。这是我想为每个连接实时获取的内容:

-协议(TCP 或 UDP)

-源端口

-远程IP和端口

-[可选] 从监视开始时开始在特定连接上传输的字节数

我应该用什么?我听说过 LSP,但进一步阅读后我意识到编写功能正常的 LSP 非常困难,更不用说几乎没有任何材料可供他们从头开始学习。此外,它们正在变得过时。问题是我只有大约 2-3 周的时间来学习+编写这个模块。由于时间限制,我当然不想选择 WFP 之类的东西,除非那里有非常好的教程,而且我不是在谈论 MSDN 文档。我不知道这是否可以使用 NDIS 等“轻松”完成。

无论如何,那我该怎么做,我应该把精力放在哪里。我是否应该冒险学习 LSP,或者 NDIS 会完成这项任务,还是其他什么。我现在有点不知所措。帮帮我!

0 投票
1 回答
287 浏览

driver - pcapnet 和数据包重定向

是否可以将一个以太网接口上的数据包镜像(而不是重定向/转发)到另一个?无论如何,主机都会处理数据包,并且由于 winpcap 不会作为过滤器插入,我们将无法丢弃数据包,我知道。但我想知道是否可以使用 Winpcap 或 pcap.net 进行数据包镜像?

有点类似于接口桥。使用自定义 NDIS 5/6 过滤器驱动程序是一种选择,但现在不追求。我正在尝试在严格的用户模式下执行此操作,如果我可以使用 C#,我会很高兴。

使用 Win7x64。

0 投票
1 回答
711 浏览

c++ - NDIS 原型样例和以太网桥

我试图使用 WDK for Win 7 中给出的 NDIS 原型示例在两个以太网适配器之间编写一个测试桥接。到目前为止,刚刚构建了驱动程序和原型测试。现在我想知道如何继续?有没有办法一次只绑定几个适配器?

0 投票
2 回答
1918 浏览

driver - NDIS 6.x 以太网桥驱动程序

我想知道使用 NDIS 6.x 构建以太网桥的最佳选择和方法是什么。我应该从哪里开始,我应该使用哪个,Miniport、IM、协议或过滤驱动程序?

尝试自定义 WDK 中可用的协议驱动程序示例并成功连接到以太网适配器。接下来是什么?

任何帮助深表感谢。

使用 Windows 7x64

0 投票
1 回答
198 浏览

driver - ndisproto 示例未读取任何流量

我试图熟悉 wdk 中的 ndisproto 样本。根据文档,该-r -n 10选项应该从接口读取 10 个数据包,但即使我 ping 到接口也没有任何结果!它读取流量的唯一时间是我们使用写入选项时。

样例是一样的,除了改成 外没有任何修改#define NPROTO_PACKET_FILTER (NDIS_PACKET_TYPE_ALL_LOCAL|NDIS_PACKET_TYPE_PROMISCUOUS)

驱动程序是否真的可以读取来自其他来源的流量?

我错过了什么?知道如何使用 ndisproto 读取/嗅探流量吗?

0 投票
1 回答
977 浏览

windows - 如何在 NDIS 协议驱动程序中禁用环回数据包

如何在协议驱动程序中禁用接收环回数据包?场景是,我的协议驱动程序正在从一个适配器接收数据包并将其发送到另一个适配器。(如eth0 -> eth1)。

只对 IPv4 感兴趣,

过滤器定义为,

接收端正在检查环回数据包,如下所示,

当我在路上发送数据包时,SendFlags根据 MSDN 将其设置为零以避免环回。

即使在提出所有这些障碍之后,我的抗议仍然是接收环回数据包,这从wireshark 中可以看出。

任何想法?

使用NDIS6.0,ndisprot60,开发:Win7,测试VM:Win2008 R2