命令行下netsh trace命令抓取的网络包放在了.etl文件里,怎么提取抓到的数据包,并且把它对应的进程ID从etl文件中拿到
命令如下:
C:\windows\system32> netsh trace start capture=yes tracefile="e:\test.etl"
*******开始关联(就是在抓取 当前计算机上de网络数据包)
C:Wndows\system32> netsh trace stop
生成test.etl文件,可以使用NetWork Monitor 3.4打开查看,网上也有很多教程,请问有人对etl文件进行过处理吗?
我在网上查阅资料之后使用tdh库函数可以获取etl里的文件。
想做的工作就是自己把etl文件里的内容拿出来,就相当于自制一个NetWork Monitor可是,这是最终的目标。现在出现很多问题。
就目前而言只希望能够把数据包写入pcap文件能够使用wireshark进行读取。就这都出现很多错误。
程序都是用C语言写的。
我现在可以拿到网络数据以及PID(不知道怎么获取进程名称),就是从以太帧头开始到数据所有的十六进制字符串。
现在把他们都按照pcap文件的格式写进pcap文件,命名方式为Pid_etl.pcap,希望成果是使用wireshark打开,并且能够查看对应五元组的信息,也就是source address,dest address, source port, dest prot。 (以及Pid。)
UDP的数据包有些正确有些则显示错误,TCP的数据包写好之后有些正确,有些就被wireshark截断,报错说超出最大的长度。
请大神求救...刚毕业找到工作的菜鸟,希望不吝指点啊.....