命令行下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截斷,報錯說超出最大的長度。
請大神求救...剛畢業找到工作的菜鳥,希望不吝指點啊.....
已解決,詳細請看:
http://ask.csdn.net/questions/199693