我正在尝试在 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 捕获单个网络流量。