Python 使用 Windows Event Trace API 监控特定进程的网络流量

问题描述 投票:0回答:0

问题

我正在尝试在 Python 中重新创建一个与 LiveTcpUdpWatch 类似的工具,它可以从应用程序/进程(比方说

app.exe
)显示有关我系统上所有 TCP 和 UDP 活动的实时信息,特别是
remote IP address
remote port
,并能够按协议(udp/tcp)和端口范围进行过滤。

重要说明:它还可以正确确定

app.exe
正在与之通信的远程IP地址和端口,即使在VPN开启时也是如此。


我的研究和尝试

我设法使用

scapy
嗅探特定协议和端口范围。在我什至弄清楚如何通过进程 ID 过滤它之前,我发现当我的 VPN 打开时,它会停止正常嗅探,因为一切都在通过 VPN。

然后我查看了 LiveTcpUdpWatch 页面,它解释说:

LiveTcpUdpWatch 使用事件跟踪 API 从 Windows 内核获取有关系统上发送/接收的每个 TCP/UDP 数据包的实时信息。与 CurrPorts 相反,它使用进程信息捕获所有 UDP 活动,但不需要使用网络嗅探器。

因此我尝试

pywintrace
,但是,由于缺乏文档和理解,我没有运气从
app.exe
.

中使用事件跟踪 API 捕获单个网络流量。
python windows networking trace packet-sniffers
© www.soinside.com 2019 - 2024. All rights reserved.