超好用的网络抓包框架(Windivert)之三(实例一)

如果出现编译不通过,请尝试以下方法
1.程序要用管理员权限打开! 并且添加WinDivert头文件
2.添加以下代码:

#pragma comment(lib, "winDivert.lib")
#pragma comment(lib, "WS2_32.lib")

3.在WinDivert-1.2.0-rc-MSVC下查找对应的文件,注意匹配64位和32位
这里写图片描述

这三个文件需要添加到exe文件同一目录中
这里写图片描述

在工程文件夹内建立url拦截文件,1.txt
工程设置如下:输入命令参数
这里写图片描述

4.设置管理员权限运行,具体方法如下:
VS2012,在项目属性-配置属性-链接器-清单文件-UAC执行级别
中设为 requireAdministrator (/level=’requireAdministrator’)
以管理员身份重新运行VS2012

  1. 使用Microsoft Visual Studio2012进行应用程序的开发, WinDivert 不需要任何特殊安装。根据您的目标配置, 只需将以下文件放在应用程序的主目录中:
    表4-1 使用配置表
    Application Type Target Windows Type Files Required
    32-bit 32-bit Windows only WinDivert.dll (32-bit version) and WinDivert32.sys
    64-bit 64-bit Windows only WinDivert.dll (64-bit version) and WinDivert64.sys
    32-bit Both 32-bit and 64-bit Windows WinDivert.dll (32-bit version), WinDivert32.sys, and WinDivert64.sys

每当应用程序调用 WinDivertOpen () 时, WinDivert 驱动程序都会根据需要自动安装 (并且是静默的)。调用应用程序必须具有管理员权限。

要拦截 Windows 系统上所有进入或出去的 TCP 和 HTTP 请求,您可以使用 Python 的第三方库 WinDivert 或 PyDivert。这些库允许您在 Windows 系统上捕获和操作网络数据包。 以下是一些可能的步骤来实现这个目标: 1. 安装 WinDivert 或 PyDivert 库。您可以使用 pip 命令来安装 PyDivert: ``` pip install pydivert ``` 而 WinDivert 库需要手动下载并安装。 2. 使用 WinDivert 或 PyDivert 库创建一个 Divert 对象。Divert 对象允许您捕获和操作网络数据包。您可以使用以下代码创建一个 Divert 对象: ``` from pydivert import WinDivert, WinDivertLayer, WinDivertFlags with WinDivert("tcp.DstPort == 80", layer=WinDivertLayer.Network, flags=WinDivertFlags.SNIFF) as w: for packet in w: # 处理网络数据包 ``` 以上代码将创建一个 Divert 对象,用于捕获所有目标端口为 80 的 TCP 流量。您可以将此条件更改为其他条件来捕获其他类型的流量。 3. 在 Divert 对象的循环中,处理捕获的网络数据包。您可以使用第三方库,如 dpkt 或 scapy,来解析和操作网络数据包。例如,以下代码使用 dpkt 库解析 TCP 流量,获取源和目标 IP 地址和端口: ``` import dpkt with WinDivert("tcp.DstPort == 80", layer=WinDivertLayer.Network, flags=WinDivertFlags.SNIFF) as w: for packet in w: ip = dpkt.ip.IP(packet.raw) tcp = ip.tcp src_ip = dpkt.inet_ntoa(ip.src) dst_ip = dpkt.inet_ntoa(ip.dst) src_port = tcp.sport dst_port = tcp.dport # 处理网络数据包 ``` 您可以使用类似的代码来处理 HTTP 流量。例如,您可以检查 TCP 流量的目标端口是否为 80 或 443,并解析 HTTP 请求和响应。 请注意,拦截和操作网络数据包可能会对系统性能产生影响,并可能需要管理员权限。因此,请小心操作,并确保您的程序不会干扰网络通信或泄露敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值