You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按源/目标IP筛选Microsoft-Windows-WinINet-Capture的.etl文件数据包?

问题描述

背景

  • 通过性能监视器的事件跟踪会话(Microsoft-Windows-WinINet-Capture)捕获了部分程序的HTTPS流量。
  • 流量已存储为.etl文件,可通过命令 tracerpt FILE_NAME.etl -o FILE_NAME.csv -of CSV 查看负载内容。

遇到的问题

  • 该.etl文件混有OneNote等其他程序的流量,希望按源/目标IP筛选数据包。
  • tracerpt生成的CSV文件无IP字段,无法用Excel筛选。
  • 尝试用pktmon转换为.pcapng失败,执行结果:
PS C:\tmp\ETW> pktmon etl2pcap _ETW_CAPTURE_TEST.etl
Processing...

Events lost during logging: 1
Packets total:       0
Packet drop count:   0
Packets formatted:   0
Formatted file:      _ETW_CAPTURE_TEST.pcapng
PS C:\tmp\ETW>

核心疑问

是否有办法按数据包的源/目标IP筛选Microsoft-Windows-WinINet-Capture生成的.etl文件中的数据包?


解决方案

方法1:XML导出+脚本解析筛选IP

Microsoft-Windows-WinINet-Capture的事件包含远程IP字段,但tracerpt默认不会导出。可通过wevtutil导出完整XML后用脚本解析:

  1. 导出ETL为XML格式:
wevtutil qe _ETW_CAPTURE_TEST.etl /f:xml /e:Microsoft-Windows-WinINet-Capture/HttpSendRequest > wininet_events.xml

(若需包含全部事件类型,移除/e参数即可)

  1. PowerShell解析并筛选:
    以下脚本提取关键信息,筛选目标IP后导出为CSV:
$xmlContent = [xml](Get-Content wininet_events.xml)
$xmlContent.Event | ForEach-Object {
    $dataFields = $_.EventData.Data
    [PSCustomObject]@{
        进程名 = ($dataFields | Where-Object { $_.Name -eq 'ProcessName' }).'#text'
        远程IP = ($dataFields | Where-Object { $_.Name -eq 'RemoteIpAddress' }).'#text'
        请求URL = ($dataFields | Where-Object { $_.Name -eq 'Url' }).'#text'
        时间戳 = $_.System.TimeCreated.SystemTime
    }
} | Where-Object { $_.远程IP -eq '你的目标IP' }
| Export-Csv -Path filtered_traffic.csv -NoTypeInformation -Encoding UTF8

方法2:用Windows Performance Analyzer(WPA)可视化筛选

Windows SDK自带的WPA工具可直接加载ETL并筛选:

  1. 打开wpa.exe,将ETL文件拖拽到窗口中
  2. 在左侧「Graph Explorer」中找到WinINet→HTTP Requests,添加到分析视图
  3. 在表格视图右键选择「Add Columns」,添加Remote IP Address、Process Name等字段
  4. 在表格的筛选框输入目标IP,即可过滤出对应流量

方法3:重新捕获时提前筛选(可选)

若允许重新捕获,可在创建跟踪会话时直接过滤,避免混入无关流量:

  • 按进程ID筛选(替换为目标程序PID):
logman create trace WinINet-Filtered -o filtered_capture.etl -p Microsoft-Windows-WinINet-Capture -f bincirc -max 1024 -ets
logman update trace WinINet-Filtered -p Microsoft-Windows-WinINet-Capture 0x0 0x0 -filter "ProcessId=1234" -ets
  • 按远程IP筛选:
logman update trace WinINet-Filtered -p Microsoft-Windows-WinINet-Capture 0x0 0x0 -filter "RemoteIpAddress=你的目标IP" -ets

内容的提问来源于stack exchange,提问作者SATO Yusuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:14:50