问题标签 [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.
html - 修改来自内核的 HTML 请求,WFP?
我开发了一个带有“Windows Filter Platform (WFP)”的驱动程序,该程序过滤 HTML 并在正文中添加一个小字符串,就像公司的标志一样。
过滤器工作正常,但我有一个问题,当 HTTP 有:
传输编码:分块
然后网页不加载,网络浏览器说“无法显示网页”
当 HTTP 定义这样的长度时
内容长度:9977
页面加载但它省略了原始 HTML 的数据以及我在 HTML 末尾插入的字符串的大小
我认为这是因为我正在改变数据的大小。但我不知道是否只更改 HTTP HEADER 中的大小会起作用,或者我必须修改它,因为 IP 或 TCP HEADER
我不知道浏览器在这些情况下是如何工作的
任何想法?,
redirect - WFP ALE_CONNECT_REDIRECT 层块过滤器不起作用
我正在使用 WFP 做一些工作,并且在 FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 层上遇到阻塞过滤器的问题。它必须阻止来自本地 IP 的流量,但事实并非如此。如果我将图层更改为 FWPM_LAYER_ALE_AUTH_CONNECT_V4 过滤器可以正常工作。
所以我有几个问题:
1)我可以阻止来自 FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 层上指定本地 IP 的流量(下面的代码不起作用)吗?
2)我们可以在ale_connect_redirect(或ale_bind_redirect)层上使用local_ip(remote_ip)创建条件吗?
谢谢!
c++ - 如何使用 WFP 的 WFPSampler 重定向指定的数据包(Windows 过滤平台)
你能告诉我如何将互联网连接重定向到我电脑中的本地代理吗?
我从以下 URL 获得了 WFPSampler。
https://github.com/Microsoft/Windows-driver-samples/tree/master/network/trans/WFPSampler
我想使用 WFPSampler 将 Internet 连接重定向到我的 PC 中的本地代理,而不更改 IE 的代理设置。我的系统如下。
[系统] 操作系统:Windows 8.1 (192.168.1.1) 本地代理:squid (port:3128)
[背景] 我执行了以下命令。但它没有用。
WFPSampler.exe -s BASIC_PACKET_MODIFICATION -l FWPM_LAYER_OUTBOUND_TRANSPORT_V4 -ipla 127.0.0.1 -iprp 80 -mpdp 3128 -ipp TCP -v 谢谢你的帮助
问候, YN
tcp - Windows 过滤平台 - 查找 TCP 会话的字节数
我在 Windows 上使用 Windows 过滤平台标注来跟踪 TCP 连接。ALE 已建立和端点闭合层上的过滤器非常适合检测连接的开始和结束。但是,我还需要知道每个方向的流量大小,最好是数据包计数,但我无法在关闭信息中找到它。
可以使用流层监视每个数据包,但是在内核空间中维护一个会话表并不断更新每个数据包的会话并不吸引人,因为这会增加很多开销和复杂性。
任何人都知道如何在 Windows 上使用 WFP 有效地获取 TCP 会话的字节数?替代建议也将受到欢迎。
c# - 如何在 Windows 上过滤特定域名的网络连接
我想实现一个 Windows 服务,默认情况下会阻止/允许所有网络连接和白名单/黑名单特定域名(如 google.com)。
我查看了 Windows 过滤平台,但似乎我无法过滤域名,只能过滤确切的 IP。问题是域名对应的IP可能会随着时间的推移而变化,一个域名可能有多个。
如何对域名进行此过滤?
windows - WFP StmEdit 没有为入站流量调用标注函数
我正在尝试让 Microsoft 的 Windows 过滤平台 stmedit 示例正常工作,但遇到了一些困难。
当我在注册表中打开 InspectOutbound 标志时,将 EditInline 设置为 1,将 InspectionPort 设置为 80,将 StringToFind 设置为 A,将 StringToReplace 设置为 B,然后使用代理,将 www.A.com 重定向到 www.B.com预期的,因为目的地被移动到有效载荷的一部分。
当我关闭注册表中的 InspectOutbound 标志(以检查入站数据包)时,仍然使用 EditInline,仍然 InspectionPort=80,访问一个简单的http://www.somewebsite.com/somepage.html页面我看到没有任何功能从驱动程序源代码中被调用。我可以在 WireShark 上看到数据包实际上按预期通过端口 80。
我为源代码中的每个函数添加了一个 DbgPrint() 调用,以查看基本代码流,而不必对所有内容使用调试器,尽管我确实让它工作并且无法在这里找到问题。
任何帮助将非常感激。
windows - 是否有必要编写内核模式驱动程序来监控 HTTP 流量?
我正在为下载管理器编写一个模块,它监视 HTTP 流量并在 HTTP 流满足某些条件时通知主模块。
通过 MSDN,我意识到我必须使用 WFP。所以我创建了一个项目并编写了一个模块来安装我的提供程序并添加一个标注。一切都很好,直到我发现我必须FwpsCalloutRegister0
使用Fwpsk.h
. 包含Fwpsk.h
会给出未找到标头的错误,因为它是 WDK 中可用的标头,这意味着FwpsCalloutRegister0
它是内核模式函数。所以我不能在用户模式应用程序中使用它,对吧?
我知道第一次编写驱动程序很困难。还有其他方法可以解决我的问题还是我必须编写驱动程序?
PSLSP
不是我想要的,因为它已被弃用。
更新:
还有其他下载管理器可以解决这个问题。例如Internet Download Manager
和Free Download Manager
。我不知道他们的方法是什么。
wfp - 过滤子进程
我在FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4层有一个标注驱动程序,带有过滤条件FWPM_CONDITION_ALE_APP_ID来过滤来自特定应用程序的流量。
但是,对于某些应用程序,它们也会产生一些子进程,其中一个可能与 Internet 通信,因此过滤父进程不会给出任何输出,过滤条件为 FWPM_CONDITION_ALE_APP_ID,WFP 仅过滤由该应用程序创建的进程。
如何过滤父进程及其所有子进程?
windows - 如何使用 GetExtendedTcpTable 在 Windows 中获取 TCP 连接的原始 PID?
我正在尝试从服务器内部获取与本地 http 服务器建立本地连接的进程的 PID。例如:Chrome-> HTTPREQ -> httpServer:8080。所以从 httpServer 我可以知道哪个进程正在建立连接,在这种情况下是 Chrome。
我可以使用带有 TCP_TABLE_OWNER_MODULE_ALL 的 GetExtendedTcpTable 查询所有 tcp 连接,然后检查每一行并使用 row->dwOwningPid
问题似乎是因为我安装了一个正在拦截我的流量的 AV,我得到的是 AV 的 PID,而不是启动连接的原始应用程序。
在不向 AV 添加排除项的情况下,有没有办法可以检索启动请求的原始进程的 PID,而不是像 AV 网络过滤器这样的转发器?
提前致谢。
security - 如何使用 windows api 用 ssl 透明地包装 tcp/ip 请求
我正在开发一个安全系统。它有一个代理服务器,就像使用Nginx的 ssl 终端一样,它将所有来自客户端的 tcp/ip 连接转发到其他第三方系统。
客户端-代理连接必须通过 ssl 进行身份验证和安全加密。
我的问题是:
每个客户端都是安装了 Windows 7 操作系统或更高版本的计算机。它已经安装了一些无法被干扰的第三方应用程序。为了更好的用户体验,来自任何应用程序的所有客户端的 tcp/ip 出站请求必须在到达代理服务器之前透明地“转换”为(或“包装”在)ssl 请求。我的第一个想法是开发一个网络驱动程序来使用windows api访问这些请求,即WFP(Windows Filtering Platform)。我已经阅读了它的在线文档,但它并不容易理解。您是否必须找到一些这样的项目或告诉我文档中的哪些部分需要关注?先感谢您!