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

问题描述

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

命令行下netsh trace命令抓取的网络包放在了.etl文件里,怎么提取抓到的数据包,并且把它对应的进程ID从etl文件中拿到
命令如下:

C:windowssystem32> netsh trace start capture=yes tracefile="e: est.etl"
*******开始关联(就是在抓取 当前计算机上de网络数据包)
C:Wndowssystem32> 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

解决方案二:

建议你先不要用windows 10,因为windows 10更改了底层的网络的实现,包括防火墙和驱动,安全机制也不同。

解决方案三:

C语言使用问题

时间: 2024-09-21 17:37:00

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

C语言使用libZPlay录制声音并写到文件的方法_C 语言

本文实例讲述了C语言使用libZPlay录制声音并写到文件的方法.分享给大家供大家参考.具体实现方法如下: /** * Record samples from line-in and save to out.mp3 * */ #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <olectl.h> #include <ole2.h> #include <stdio.h> #include <

设备驱动程序-请问C语言可以完全代替汇编去写驱动之类底层的东西吗?

问题描述 请问C语言可以完全代替汇编去写驱动之类底层的东西吗? 请问C语言可以完全代替汇编去写驱动之类底层的东西吗?还是说汇编无论如何都不可能被取代呢? 解决方案 与硬件交流越直接,代码的执行效率一般越高,汇编可以直接操纵CPU的寄存器,内存地址,硬件操作,但是编写效率比较低,C语言和汇编离得很近,一般都是采用c来加速开发,有些地方c实现达不到理想效果,于是就穿插汇编代码....另外弄清楚一件事,语言没有替代不替代的,只能说某种语言不再流行了,各种语言都有自己擅长的领域,在合适的领域选择合适的语

Swift 语言概览 -自己在Xcode6 动手写1

原文:Swift 语言概览 -自己在Xcode6 动手写1 Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话: Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibilit

c语言-如何将一串十六进制字符使用C语言写到.pcap文件并使用wireshark打开

问题描述 如何将一串十六进制字符使用C语言写到.pcap文件并使用wireshark打开 提示数据包过大怎么回事 例如将下面这一个网络抓取的数据包的十六进制字符串写进.pcap文件. BE 03 00 00 40 00 00 00 AC 23 00 00 A4 09 00 00 30 DD 19 1F 41 CB D0 01 6E 00 D6 2E 29 47 09 46 B4 23 3E E7 BC D6 78 EF E9 03 00 10 04 00 00 00 01 00 00 C0 02

c语言编译,想自己动手写c语言的编译程序(只完成 分析到生成中间代码部分)

问题描述 c语言编译,想自己动手写c语言的编译程序(只完成 分析到生成中间代码部分) 我们编译原理快学完了,想自己动手写c语言的编译程序(只完成 分析到生成中间代码部分) 我应该如何入手写这个东西,查阅什么资料,反正有什么建议或者能帮助我完成的,给我说说就好 解决方案 windows下安装VC,或者VS 使用教程网上多的是 解决方案二: http://book.douban.com/subject/26339438/http://www.cnblogs.com/Ninputer/archive/

c语言基础问题-关于C语言队列的问题不懂别人写的这个return dlist_add(queue-&amp;amp;gt;dlist, -1, data);

问题描述 关于C语言队列的问题不懂别人写的这个return dlist_add(queue->dlist, -1, data); Ret queue_push(Queue *queue, void *data) { return_val_if_fail(queue != NULL&&data != NULL, RET_FAULT); return dlist_add(queue->dlist, -1, data); } 刚刚在看作者为朱克峰的前辈写的,我有些不理解 return

strlen-c语言入门级问题,代码已写,但不知哪里出错,求各位帮帮我

问题描述 c语言入门级问题,代码已写,但不知哪里出错,求各位帮帮我 Description Petya loves football very much. One day, as he was watching a football match, he was writing the players' current positions on a piece of paper. To simplify the situation he depicted it as a string consis

linux系统中c++写日志文件功能分享_C 语言

简化了glog,只保留了写日志文件的功能,只是改写了linux版本,win版本未改写,可以用LOG(INFO)<< 输出日志也可用LOG_IF(INFO,condition)<<输出日志也可直接调用日志类Logger::GetInstance().Error 等方式写日志初始化时调用 InitLogging(argv[0],INFO,"./log/test");第一个参数是路径,第二个参数是最低日志级别,第三个参数表示日志文件的前缀和文件夹 FileHelper

linux c语言 使用system echo把变量输出到文件中

问题描述 linux c语言 使用system echo把变量输出到文件中 #include #include #include int main(void) { char *url = "asdfasdfasdf"; system("echo $url > /home/ylk/Desktop/1.txt"); printf(" url=%s ", url); return 0; } 结果不能把字符串写到1.txt中,怎么修改可以写进去呢?