阅读:2465回复:5
NDIS驱动程序和pcap文件格式
我使用passthru拦截网络流量和直接写在日志文件. 我的问题是,可以写在pcap日志文件格式吗?
|
|
沙发#
发布于:2010-03-23 16:38
你只要知道pcap是怎么组织的
可以的。 |
|
板凳#
发布于:2010-03-23 17:00
回 1楼(mz_suya) 的帖子
有无示例代码参考, 谢了 |
|
地板#
发布于:2010-03-29 23:07
当然是可以的。我见过类似的软件,NDIS抓获数据包,存成Pcap格式。
Pcap的格式大致如下: 每个数据包包括两部分: header 是Pcap数据的头部(而不是Ethernet数据头部) data 是Ethernet数据的所有部分(包括Ethernet头部) 所以,如果你想将一个数据包记录成Pcap格式,代码大致为: WriteFile(hFile,(LPCVOID)pcap_header, 16, &wlen, NULL); WriteFile(hFile,(LPCVOID)eth_raw_data,pcap_header->caplen,&wlen,NULL); hFile为写入的文件的Handle。 如果你自己编制的抓包程序,pcap_header要自己组织,这个头的格式如下: struct pcap_pkthdr { struct timeval ts; // time stamp 高位DWORD为纳秒数,低位DWORD为秒数 bpf_u_int32 caplen; // length 抓取到的数据包长度 bpf_u_int32 len; // length 数据包实际长度 (off wire) } 建议你安装一下pcap,看看pcap.h 。另外,安装完pcap后有不少工具软件帮你转化各种包格式,似乎还有相应的例子源程序程序教你怎么组织 pcap的头。 |
|
地下室#
发布于:2010-04-04 13:11
回 3楼(zfyang) 的帖子
如果我使用ZwWriteFile功能?我直接从驱动程序记录网络流量数据包日志文件 c:\xxx.pcap. |
|
5楼#
发布于:2010-06-16 12:36
回 4楼(lingchuanlee) 的帖子
有源代码我可以参考吗? 如果我直接从驱动程序记录网络流量数据包日志文件 c:\xxx.pcap |
|