本文是雪域论坛的一篇优秀文章
参见雪论坛作者ID:楼
数据包嗅探分析工具
代码云git地址:
https://gitee.com/lougd/snifferview.git
已编译的可执行文件:
https://pan.baidu.com/s/1XapqLl7YgjkO5yhrNPqehg
作者联系方式:QQ:412776488 mail:lougdhr@126.com
如果你觉得这个工具对你有帮助,请点一颗星,谢谢!
发展记录
这个工具的第一个版本是在2015年制作的,因为经常需要在不同的终端PC上进行数据包捕获和网络协议分析,而wireshark一直用于数据包捕获分析。wireshark的安装包比较大,每次安装都太繁琐,不支持环回网络包的捕获,所以决定自己做包协议分析工具。
所以有了这个工具的第一个版本。然后在使用的同时丰富工具的功能,现在就有这个版本了。
主要功能和特点
该工具不是一个演示,而是一个稳定、实用、功能强大的网络数据包修改和分析工具。如果需要经常捕获、分析和记录网络数据包,可以使用这个工具。
支持本地所有网卡的网络封包嗅探捕获,包括127地址的回环包。支持类似wireshark的封包过滤语句,方便灵活的对网络封包进行过滤。支持tcp流追踪功能,方便的跟踪单个的tcp数据流。支持进程网络状态探测,可以方便的查看指定进程的网络状态。支持已捕获网路数据的导入导出,可以方便的随时dump已捕获的网络数据。工具小巧,绿色(1mb多,只有一个可执行文件),无任何依赖,启动运行速度快。C++语言开发,vs2008集成工具开发工具编译,用vs2008打开工程根目录下的SnifferView.sln工程文件编译即可。工具功能截图
软件体系结构
ComLib子项目:
基本功能的静态库为每个子功能提供通用的基本功能组件。
SnifferView子项目:
主要功能模块实现主要功能,包括网络数据包嗅探、过滤语句编译解析器实现、网络协议分析、数据流查看等。
转储子项目:
异常捕获处理模块捕获未处理的异常,并生成异常转储和异常日志,用于分析异常的原因。
语法视图子项目:
语法高亮控件,基于Scintilla,目前用于显示tcp数据流。
指令
这个程序只有一个可执行程序,程序启动后就开始包嗅探。但是由于此时没有过滤语句,会捕获到很多数据包,所以可以在主界面的过滤规则框中输入合适的过滤规则来捕获感兴趣的网络数据包。特定的过滤规则和wireshark类型已经过优化。主要规则如下。
嗅探器查看过滤规则:
嗅探器视图的过滤器语法示例:
Ip.addr== 192.168。168.231过滤ip源地址或目的地址为192.168的网络数据包。168.231
Icmp过滤icmp协议的数据包
Tcp.src== 8345使用Tcp源端口8345过滤网络数据包
tcp.length>。128过滤长度大于128字节的tcp数据包,不包括ip报头和tcp报头
Tcp包含“获取”过滤器,过滤内容中带有获取字符串的TCP数据包
Tcp[ 4:n32]== 0x12ff过滤偏移4字节的Tcp用户数据,以获取32位数据大小为0x12ff的数据包
Tcp.flag.syn过滤标有syn的Tcp数据包
Tcp[字符]==“获取”过滤数据包,其TCP用户数据偏移量为0字节
Http过滤http协议
Http。获取过滤器http的获取协议
Http.post筛选器http post协议
Http.resp过滤Http的返回数据包
http.url contains "img" alt="sniffer 开源自己开发的一些工具--封包嗅探工具SnifferView">