本项目提供一个全面的网络嗅探解决方案,包含详细的分析报告及完整的源代码,便于深入学习与二次开发。
实现 Sniffer 的基本功能。Sniffer 是一种用于监测网络性能、使用情况的工具。
- 能够指定需要侦听的网卡(考虑一台机器上多张网卡的情况)。
- 能够侦听所有进出本主机的数据包,解析并显示数据包中的各个字段信息,包括 ICMP 、 IP 、 TCP 和 UDP 等协议。例如,在处理 IP 头时应展示版本号、头长度、服务类型(TOS)、总长度、标识符 ID、DF/MF 标志位以及段内偏移量等,并显示生存时间 TTL ,协议类型,源和目的IP地址以及其他选项内容及数据字段的实际含义。
- 能够选择性地监听来自特定 IP 地址的数据包或指定目标 IP 的数据包。对于接收到的 TCP 和 UDP 数据包应完整展示其实际内容,同时需要处理一个分段传输的情况(即一个完整的TCP/UDP 包可能被分割成多个IP 包进行发送)。
- 提供协议过滤功能:允许用户根据特定类型筛选数据包,比如仅监听 ICMP 协议的数据报或只关注 UDP 和 ICMP 数据包的组合等。
- 功能验证方式包括在运行 Sniffer 的同时执行标准操作如 Ping 测试、Telnet 连接以及网页浏览等活动,并检查Sniffier 是否能正确返回预期的结果信息。
- 提供数据包保存功能,允许用户选择性地将捕获的数据存储为易于阅读的文件格式。
- 文件重组能力:能够从经过本机的所有 TCP 包中识别并恢复原始传输中的完整文件内容。
- 查询功能支持例如查找包含特定关键词如 password 的网络通信记录,并集中展示这些数据包的相关信息。