hair_man 2015-08-03 14:44 采纳率: 51.6%
浏览 4018
已采纳

关于使用C语言自己写pcap文件,使用wireshark读取的问题

命令行下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截断,报错说超出最大的长度。
图片说明

图片说明
请大神求救...刚毕业找到工作的菜鸟,希望不吝指点啊.....

  • 写回答

2条回答 默认 最新

  • hair_man 2015-08-21 09:01
    关注

    已解决,详细请看:

                http://ask.csdn.net/questions/199693
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?