Alex_McAvoy

想要成为渔夫的猎手

Sniffer 概述

【说明】

本项目是一个代码复现项目,旨在学习如何利用 WinPcap 和 MFC 编写 Sniffer

参考文档:https://blog.csdn.net/litingli/article/details/5950962

GitHub:https://github.com/Alex-McAvoy/Sniffer-based-on-WinPcap-and-MFC

程序运行图:

【概述】

Sniffer(嗅探器),是一种利用以太网特性将网络适配卡置为混杂模式状态的工具,一旦将网卡设置为混杂模式,其就能接收传输在网络上的每一个信息包,因此利用 Sniffer 可以监听网络状态、获取数据流动情况、得到网络上传输的信息等

本项目将复现一个基于 WinPcap 与 MFC 结合的软件的 Sniffer,实现的功能包括:

  1. 列出监测主机的所有网卡,选择一个网卡,在混杂模式下进行监听;
  2. 捕获所有流经网卡的数据包,并利用WinPcap函数库设置过滤规则;
  3. 分析捕获到的数据包的包头和数据,按照各种协议的格式进行格式化显示;
    支持协议:TCP、UDP、ARP、ICMP、HTTP、IPv4、IPv6
  4. 可以本地文件的形式来保存、读取已捕获的数据包信息

所需工具:

  1. Microsoft Visual Studio 2017
  2. WinPcap V4.1.2

Windows Packet Capture,WinPcap 是 Windows 平台下的数据链路层的网络访问工具,其目的在于为 Windows 应用程序提供访问网络底层的能力,其只能将数据包从网络中抓取过来,并不能修改数据

要使用 WinPcap,要安装其 dll 文件,此外还要下载相关的开发者工具包,包含库文件、头文件、简单示例程序与帮助文件

WinPcap V4.1.2 dll:http://www.winpcap.org/install/bin/WinPcap_4_1_2.exe

WinPcap V4.1.2 Developer’s Pack:http://www.winpcap.org/install/bin/WpdPack_4_1_2.zip

【环境配置】

将 WinPcap 的开发者工具包解压后,放到合适位置,然后打开 VS2017,新建一个MFC项目

在新建项目的项目->属性->VC++目录中,配置包含目录,即将 WinPcap 开发包中的 Include 目录添加进去:

配置完包含目录后,再配置库目录,即将 WinPcap 开发包的 Lib 目录添加进去

然后设置与 WinPcap 有关的预处理定义:在项目->项目属性->配置属性->C/C++->预处理器页面的预处理器定义中,添加 WPCAP 与 HAVE_REMOTE

最后添加 wpcap.lib 库文件:在项目->项目属性->配置属性->链接器->命令行页面中的其他选项,添加 wpcap.lib

【步骤】

感谢您对我的支持,让我继续努力分享有用的技术与知识点!