TCPIP/Connect 之前的 ETW 事件

问题描述

我正在寻找一种在传出 tcp&udp 通信发生之前检测它们的方法,这篇文章中的第一个答案:
Retrieve process network usage

基本上是我需要的,但他寻找发送/接收的数据,这是在已经有连接的情况下。
所以我要寻找的是在发送“userdata”之前显示 TCP 握手的事件。

例如我的应用程序显示了这个输出

<Event MSec= "29623,8425" PID="6172" PName="Battle.net" TID=  "-1" EventName="TcpIp/Connect" 
    size="0" daddr="93.184.220.29" saddr="192.168.10.115" dport="80" sport="59.088" mss="1.420" sackopt="1" tsopt="0" wsopt="1" rcvwin="132.060" rcvwinscale="8" sndwinscale="9" seqnum="0" connid="0x0000020200000000"/>
<Event MSec= "29647,4813" PID="6172" PName="Battle.net" TID=  "-1" EventName="TcpIp/Send"
    size="240" daddr="93.184.220.29" saddr="192.168.10.115" dport="80" sport="59.088" startime="8.368.880" endtime="8.368.882" seqnum="0" connid="0x020B003000000000"/>
<Event MSec= "29649,2876" PID="6172" PName="Battle.net" TID=  "-1" EventName="TcpIp/Recv"
    daddr="93.184.220.29" saddr="192.168.10.115" dport="80" sport="59.088" size="799" connid="0x000000C200000000" seqnum="194"/>

但是当一切都被阻止在 linux 路由器上的 FORWARD 中时,我看不到任何这些数据包: session.source.Kernel.TcpIpConnect += 数据 =>

session.source.Kernel.TcpIpPartACK += 数据 =>
(其实这个根本不显示任何数据,即使没有iptables)

当然svchost.exe在此之前解析了dns名称,并且dns端口是开放的。

是否应该至少有一个事件试图创建握手?

我还尝试切换会话提供程序: session.EnableKernelProvider(KernelTraceEventParser.Keywords.All); 没有区别。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)