草庐IT

windows - 内核模式驱动程序和用户模式应用程序之间的双向通信?

我需要在内核模式WFP驱动程序和用户模式应用程序之间进行双向通信。驱动程序通过将URL传递给应用程序来启动通信,然后应用程序对该URL进行分类(娱乐、新闻、成人等)并将该类别传递回驱动程序。驱动程序需要知道过滤器功能中的类别,因为它可能会根据该信息阻止某些网页。我在应用程序中有一个线程正在发出I/O请求,驱动程序将使用URL和GUID完成,然后应用程序会将类别写入该GUID下的注册表中,驱动程序将在其中获取它。不幸的是,正如驱动程序验证者指出的那样,这是不稳定的,因为Zw注册表函数必须在PASSIVE_LEVEL运行。我正在考虑用映射内存缓冲区尝试同样的事情,但我不确定中断要求是什么。

windows - 在内核驱动程序中使用 Windows 过滤平台

我们最近向我们的驱动程序添加了Windows过滤平台功能。我们成功地从wfp获得了我们需要的信息,但问题是在启动过程中-自从我们添加了wfp功能后,使用驱动程序的机器无法启动-他们遇到了死锁(计算机的“卡住”“在闪屏中)。我们认为这可能是因为我们的驱动程序仅依赖于FltMgr,并且可能在加载wfp框架(TcpStack?)之前加载。我的问题是-有没有办法询问服务经理或任何其他权威机构是否加载了wfp框架?甚至更进一步-驱动程序wfp依赖于什么?(所以我可以在开始使用之前检查它们是否已加载) 最佳答案 这是我在DriverEntry中

windows - WinDivert 重定向到代理

我正在尝试将所有tcp数据包重定向到我的本地代理以修改html内容(类似adblocker)。我想使用WinDivert,但它似乎不起作用。我这样启动驱动程序:handle=WinDivertOpen("outbound",WINDIVERT_LAYER_NETWORK,0,0);然后在抓包修改时:if(ip_header!=NULL&&tcp_header!=NULL){//redirecttoproxyif(ntohs(tcp_header->DstPort)==80){UINT32dst_addr=ip_header->DstAddr;ip_header->DstAddr=ip_

windows - 调试 WFP 标注驱动程序的选项有哪些

我是内核模式Windows驱动程序开发的新手,在从WFP标注示例中获取调试信息时遇到问题。我正在寻找更多选项或关于我一直在尝试的选项做错了什么的提示。首先,我下载了WFPsampler并按照其描述中的说明进行操作。我正在使用通过模拟串行电缆连接的Windows8.1x64主机和Windows7x64目标。它们都是VirtualBoxVM。我调试的主要命令是WFPSampler.Exe-sPROXY-lFWPM_LAYER_ALE_BIND_REDIRECT_V4-aaid"C:\ProgramFiles(x86)\InternetExplorer\iexplore.exe"-pla10

Windows 过滤平台 - 我的数据包负载在哪里?

我一直在修改“检查”WFP示例(与WinDDK捆绑在一起),目的是能够为某些字符串解析所有传入TCP数据包(来自指定IP地址)的有效负载。(我已经修改了'inspect',这样只有TCP数据包被过滤器捕获)到目前为止,我的修改一直在“TLInspectTransportClassify”classifyFn上进行,如下所示。我的目标是访问捕获的每个TCP数据包的有效负载。FWPS_STREAM_CALLOUT_IO_PACKET*ioPacket=(FWPS_STREAM_CALLOUT_IO_PACKET*)layerData;FWPS_STREAM_DATA*streamData;

windows - 内核模式和用户模式应用程序之间的通信

我构建了一个在内核模式下运行的WFP标注驱动程序。现在,我想弄清楚如何在这个驱动程序和我在用户模式下运行的GUI应用程序之间进行通信。有什么想法吗?正是我想要的是这样的:标注驱动程序检测到端口4444上的传入连接(这不是我的问题的一部分)驱动程序向用户模式应用程序发送消息。该应用向用户显示一条通知,询问我们是否应接受/阻止连接。用户模式应用将用户的响应发送回callout驱动程序。谢谢! 最佳答案 我同意LordDoskias的观点。您需要创建一个设备对象并使其可用于Win32领域。然后就可以使用CreateFile、ReadFil

c# - 如何在 Windows 上过滤到特定域名的网络连接

我想实现一个默认情况下会阻止/允许所有网络连接和白名单/黑名单特定域名(如google.com)的Windows服务。我查看了Windows过滤平台,但似乎无法过滤域名,只能过滤精确的IP。问题是域名对应的IP可能会随着时间的推移而变化,一个域名可能有多个。我怎样才能对域名进行这种过滤? 最佳答案 请注意,如果您仅按DNS名称进行过滤,则可以使用IP地址轻松绕过您的过滤器。所以按IP地址过滤会更健壮。您可以进行反向IP查找以获取关联的域名。您可能希望实现反向IP地址查找缓存。当它们超过其DNSTTL时,您将刷新缓存中的条目。如果您只

WFP3D绘图

WPF本身不支持直接的3D绘图,但是它提供了一些用于实现3D效果的高级技术。如果你想要在WPF中进行3D绘图,你可以使用两种主要的方法:WPF3D:这是一种在WPF应用程序中创建3D图形的方式。WPF3D提供了一些基本的3D形状(如立方体、球体和锥体)以及一些用于控制3D场景和对象的工具(如相机、光源和材质)。 在WPF中,3D对象模型的材质可以使用以下三种DiffuseMaterial:漫反射,反射场景光效果EmissiveMaterial:自发光,类似于电灯 SpecularMaterial:全反射,可以映射场景贴图在WPF中,一个3D模型的材质,就是决定模型看起来是什么样子的一种很重要的

c++ - 是否可以使用 WFP 发送带有有效负载的 tcp syn 数据包?

我是Windows过滤平台的新手。是否可以使用WFP发送带有负载的tcpSYN数据包?我要发送的负载会有一些secret密码。我的linux服务器会检查SYN数据包的负载是否有效。 最佳答案 WFP或没有WFP,您“可以”在SYN数据包中发送数据,但另一端应该知道这一点。标准不允许或不建议这样做。TCPfastopen被引入时认为人们会适应它很快变得不受欢迎。在SYN中发送数据,即使你实现了也不是一个好的做法,因为a)不可扩展b)有一些代理或网关可能拦截此TCP流并丢弃您的数据,仅在它们建立服务器端连接时发送SYN。c)大多数TCP

windows - 使用 Windows 过滤平台按进程 ID 阻止流量

我想通过进程ID来阻止互联网流量。是否有我可以使用的特定过滤器?FWPM_CONDITION_ALE_PACKAGE_ID看起来很接近,但我不想阻止程序的所有实例,只是其中的一些。我想另一种选择是拦截所有流量并以某种方式吃掉来self想要沙箱的进程的数据包。任何指导都会很棒。谢谢 最佳答案 进程ID不是唯一值。它由系统分配给创建的进程的随机值可以重复使用。因此,如果进程id被重用,则按id值过滤可能会阻止/允许错误的进程。您可以按应用程序路径进行过滤,这将克服Id限制并且更加安全。 关于
12