1. PACKET32
早期由微软开发的工具包Packet32,包含Packet32.c和Packet32.h,利用Packet API函数直接操作网卡进行抓包、发包, 这个版本写得比较简单。
参考文章:
- https://blog.csdn.net/fuyunruoxi/article/details/44451009
- https://www.cnblogs.com/csdnexpert/archive/2007/12/17/1000824.html
- https://www.cnblogs.com/csdnexpert/archive/2007/12/17/1000825.html
- https://www.cnblogs.com/csdnexpert/archive/2007/12/17/1000826.html
- https://www.cnblogs.com/csdnexpert/archive/2007/12/17/1000823.html
2.libpcap
官方网站:http://winpcap.polito.it/
libpcap是unix/linux平台下的网络数据包捕获函数包,(Winpcap是其windows版本)可以提供与平台无关的接口,而且操作简单,它是基于改进的BPF(Berkeley Packet Filter),该软件来自Berkeley的Lawrence National Laboratory研究院.Winpcap是Libpcap 的windows版本,linux用户使用Libpcap,Windows用户使用Winpcap.
libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。
参考文章:
- https://blog.csdn.net/fuyunruoxi/article/details/44451009
- https://blog.csdn.net/zy122/article/details/1424513
- https://blog.csdn.net/u011573853/article/details/49963567
3.Winpcap
下一代:Win10Pcap
WinPcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。
WinPcap在Windows环境中用于链路层网络访问的行业标准工具,它允许应用程序绕过协议栈来捕获和传输网络数据包,包括内核级数据包过滤,网络统计引擎和支持远程数据包捕获。
WinPcap包含一个扩展操作系统的驱动程序,以提供低级网络访问权限;该库用于轻松访问低级网络层。该库还包含Windows版本的著名libpcap Unix API。
凭借其一系列功能,WinPcap已成为许多开源和商业网络工具的数据包捕获和过滤引擎,包括协议分析器,网络监视器,网络入侵检测系统,嗅探器,流量生成器和网络测试器。
其中的某些联网工具,例如Wireshark,Nmap,Snort和ntop,在整个联网社区中都是众所周知的并使用。
参考文章:
- https://blog.csdn.net/happyfyshan/article/details/2363553
- https://blog.csdn.net/cosmoslife/article/details/7681412
- https://baike.baidu.com/item/winpcap/11048966
- https://my.oschina.net/u/4518087/blog/4758809
4. Npcap
Npcap 是 Nmap 项目的网络包抓取库在 Windows 下的版本。是致力于采用 Microsoft Light-Weight Filter (NDIS 6 LWF) 技术和Windows Filtering Platform (NDIS 6 WFP) 技术对当前最流行的 WinPcap 工具包进行改进的一个项目。(WinPcap目前已经停止了更新)
Npcap 基于 WinPcap 4.1.3 源码基础上开发,支持 32 位和 64 位架构,在 Windows Vista 以上版本的系统中,采用 NDIS 6 技术的 Npcap 能够比原有的 WinPcap 数据包(NDIS 5)获得更好的抓包性能,并且稳定性更好。
Npcap 还独具以下特点:
- 支持 NDIS 6 技术;
- 支持“只允许管理员 Administrator”访问 Npcap;
- 支持与 WinPcap 兼容或并存两种模式;
- 支持 Windows 平台的回环(Loopback)数据包采集和发送;
参考文章:
5.PcapPlusPlus
多平台 C++ 网络嗅探和包装分析及制作框架。采用Unlicense授权。
与libpcap / WinPcap的不同:
-
设计轻量级和高效(参见基准测试结果)
-
支持DPDK快速分组处理引擎,利用内核旁路实现包捕获和传输速率
-
支持NTop-PFY-Link分组捕获引擎,显著提高包捕获速度
-
支持多种协议的解析和编辑,包括HTTP协议,如HTTP协议和SSL/TLS协议
-
TCP重组逻辑的独特实现,包括TCP重传、无序TCP包和丢失TCP数据的支持
-
远程捕获功能,在Windows的支持(使用rpcap协议支持WinPcap)
-
读写pcapng文件的支持(更超过目前支持WinPcap / Libpcap)
-
大量的面向对象的过滤机制使Libpcap滤波器使用更友好(不需要知道确切的筛选器字符串)
支持平台:
-
Windows
-
Linux
-
Mac OS X