问题标签 [wfp]

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 投票
0 回答
715 浏览

windows - Windows 过滤平台 - 添加自己的层 c#

我正在尝试使用 c# 挂钩传出连接。我发现了这个问题: Windows Filtering Platform - How can I block incoming connections based on local port?

但是在示例代码中出现了一些错误,并且缺少一些要使用的类。

我正在尝试使用 p/invoke 签名工具包生成结构,但我有一些非常大的类生成代码,其中 90% 调用依赖。

所以我想我必须实现外部原型,然后调用它们。这是我的代码:

谢谢

0 投票
1 回答
1094 浏览

wfp - WinDivert:重定向到仅在环回接口上侦听的代理

尝试以与本文相同的方式实现透明代理,但我有一个仅在环回接口上侦听的“代理”。一旦我将 DstAddr 设置为环回,第二个 TCP 握手数据包就永远不会收到

但如果 DstAddr = address_of_network_interface_packet_captured_from 则有效。

还试图改变addr

没有任何影响。

有没有办法实现这样的配置?

0 投票
0 回答
879 浏览

windows - 强制浏览器流量通过 Windows 上的 HTTP/HTTPS 代理

有很多方法可以强制浏览器使用代理,但到目前为止还没有一个能让我信服。

  1. 在 Internet 设置上设置全局代理。虽然这在大多数情况下(IE、Edge、Chrome)都有效,但如果默认设置为“不使用代理”,它可能不适用于 FireFox。

因此,这不是一种非常有效的方法。

  1. 不推荐使用 LSP(分层服务提供者)。

  2. 使用 WFP(Windows 过滤平台)或 Windivert,虽然只是针对非 SSL 流量完成,但由于标头已加密,HTTPS 流量变得更加困难。然后还需要捕获和映射 DNS 查询。这可能是一个很好的解决方案,但远远不够。

  3. 使用 GPO(组策略),在使用组策略进行了几次测试后,我没有实现强制流量通过代理。

  4. 使用注册表项也没有成功。

  5. 使用 WPAD 配置,但这与第 1 点相同。

我还尝试测试一些软件,如 Proxifier 和 FreeCap,它们似乎都没有工作(看起来像旧项目,可能不支持最近的 windows 平台)。

除了上面列出的用于 windows 的方法之外,还有其他方法吗?我相信有但很难找到。


编辑:我的搜索将我带到了Kernel Network Redirector Driver Components,但不确定如何使用它来强制流量进入代理。

0 投票
2 回答
511 浏览

windows - WFPSampler 编译问题 - 未找到 wfpcalloutsclassreg

Microsoft 演示WFPSampler项目的编译在第 36 行的WFPSamplerCalloutDriver.InX上的任何设置(32/64 - 调试/发布)中都失败:

该设置使用在此页面下载后安装的 Visual Studio Community、SDK 和 WDK,并且构建过程遵循自述文件

找不到有关此问题的任何相关信息。

我已经卸载并重新安装了 VS、SDK 和 WDK 到最新版本,但并没有解决问题。

当前设置是

0 投票
0 回答
1065 浏览

visual-studio - WFP(Windows 过滤平台)本地 TCP 代理重定向仅在 WFPSamplere.exe -clean 之后有效

我正在使用 WFPsampler 使用以下命令重定向 TCP IPV4traffic。

WFPSampler.exe -s PROXY -l FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 -ipra 192.168.10.52 -iprp 9000 -pra 127.0.0.1 -prp 5050 -v -plspid 9184

在我清除默认启用的所有规则之前,重定向不起作用。我不想清理已经安装的规则,有什么方法可以让代理工作而不做

WFPSampler.exe -清除所有

提前致谢。

0 投票
1 回答
153 浏览

wfp - 在设备管理器中为 WFP 驱动程序选择适当的 Windows 硬件实验室工具包

我应该使用 Windows Hardware Lab Kit (HLK) 中的哪些设备管理器选择来为 Windows 过滤平台驱动程序设置 WHQL?

当我在 HLK 中构建我的项目时,我在选择(设备管理器)部分看到了许多选项,我不确定如何继续。我是否遗漏了一些我要加载以提供 WFP 选项的附加文件?我看到我可以加载测试播放列表,但在我这样做之前,我必须先在这个区域中选择一些东西。

Microsoft 文档似乎没有为 WFP 介绍这一点。在我回到开发人员那里之前,我想知道我在寻找什么。

你知道这方面的好文件或参考资料吗?

谢谢

0 投票
1 回答
531 浏览

wfp - 尝试 WFPLogo 时,Windows 硬件实验室工具包 (HLK) 在 WFP 验证上挂起

为什么 WFPLogo.exe 在 Validate WFP 测试中挂起?

我在 Windows Server 2016 上为控制器和测试服务器设置了 HLK 10。我为我的 WFP 驱动程序安排了任务,前两个套件成功完成。但是,WindowsFilteringPlatform_tests 使用 Validated WFPUsage 并且它似乎正在运行:

当我在本地运行它时,该工具会打开一个文件,其中包含一系列问题供我填写和保存。我不太清楚如何配置我的 HLK 工作室项目,所以它已经有了信息,所以他们的系统不会停止。

我希望如果我保存一次,它会更新整个机器的配置,这样我就可以重新运行该套件并克服这个挂起。如果失败,我想,我可以尝试以测试用户身份登录并运行测试。由于测试必须以提升的管理员身份运行,并且我以该用户身份执行了配置,所以我可能没问题?

这似乎仍然是错误的,我希望在项目中配置它。

我错过了 HLK 设置和项目配置的步骤吗?

谢谢

伊娃

0 投票
1 回答
458 浏览

c - Windows 过滤平台 - 未解析的外部符号

我正在编写一个 Windows 过滤平台 (WFP) 内核驱动程序,并且正在尝试添加一些标注。

我正在使用一些FWPM_LAYERGUID,例如

但是,在使用这些符号时,我得到了未解析的外部符号。

我正在使用以下标题

我正在链接以下附加依赖项。

我找不到我缺少的东西,这些 GUID 似乎位于我正在构建fwmpk.h的库中。Fwpkclnt.lib

0 投票
0 回答
181 浏览

multithreading - 由于自旋锁,Windows 过滤平台网络速度变慢

我正在编写一个 Windows 过滤平台内核模式驱动程序,该驱动程序的目标是捕获特定层上的所有流量,并将这些流量传回用户模式,以便进一步分析。驱动程序永远不需要阻塞任何交通,classifyOut 始终设置为FWP_ACTION_CONTINUE

下面的代码在我的 Classify 函数中用于对收到的数据包进行排队。

PACKET_ITEM结构定义如下

我正在使用反向调用模型将此数据包数据从内核模式传递到用户模式。一旦检测到已发送正确的 IOCTL,内核驱动程序将使用以下代码。

这段代码似乎会在短时间内大大降低网络速度,例如,在尝试在 Web 浏览器中加载网站时会导致超时。

我认为这是由自旋锁和该驱动程序捕获的通过网络传输的大量数据包引起的。

我的问题如下

  • 自旋锁很可能在这里引起我的问​​题吗?如果是这样
    • classifyOut->actionType在分配任何内存以将数据复制到我的队列中之前,是否可以立即设置并返回此值。我认为这会阻止减速的发生?
    • 我还应该做些什么来防止这种情况发生?
  • 如果不,
    • 是什么导致这里变慢的问题?
0 投票
1 回答
263 浏览

c - 看似不可能的错误检查

我正在编写我的第一个内核驱动程序,它在以下行中崩溃DriverEntry

!analyze vWinDbg输出以下:

我试图理解这个问题,有两件事我不明白 - 首先为什么涉及任何可分页内存,因为我只是传递给函数全局变量和局部变量,这两者都是非-分页。(见这里这里。)

其次,为什么 IRQL 高于 0,因为我在 DriverEntry。(参见此处,DriverEntry 在PASSIVE_LEVEL.

我的代码如下。它在发布的最后一行崩溃 - 其他任何内容都不相关,因为它永远不会到达那里。