Событие ETW перед TCPIP/Connect

я ищу способ обнаружения исходящих сообщений tcp и udp до того, как они произойдут, первый ответ в этом сообщении:
Получить использование сети процессом

в основном то, что мне нужно, но он ищет отправленные/полученные данные, когда уже есть соединение.
поэтому я ищу событие, которое показывает рукопожатие 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"/>

но когда все заблокировано в FORWARD на маршрутизаторе linux, я не вижу пакетов ни для одного из них: session.Source.Kernel.TcpIpConnect += data =›

session.Source.Kernel.TcpIpPartACK += data=›
(на самом деле этот вообще не показывает никаких данных, даже без iptables)

конечно, svchost.exe разрешил имена DNS до этого, и порт dns открыт.

не должно ли быть хотя бы одно событие, пытающееся создать рукопожатие?

я также пытался переключить поставщиков сеансов: session.EnableKernelProvider(KernelTraceEventParser.Keywords.All); нет разницы.


etw
person James Baker    schedule 22.02.2021    source источник