在搭建eNSP 实验环境时,安装 WinPcap 可能会出现下面的提示:
A newer version of WinPcap (internal version 5.1.83.730) is already installed on this machine. The installation will be aborted.
提示的意思是:
系统中已经安装了更高版本的 WinPcap,因此当前安装被终止。
但如果访问 WinPcap 官网:https://www.winpcap.org/
会发现WinPcap 的最新版本只有 v4.1.3,发布时间是2018 年 9 月 15 日,并不存在更高版本。
因此很多人会疑惑:
电脑里到底安装的是什么?
一、原因:系统中安装了 Npcap
这种情况大概率是因为电脑中已经安装了Npcap。
Npcap 是WinPcap 的继任项目(successor),由Nmap 项目团队维护。它在保持 WinPcap 兼容性的基础上进行了升级,例如:
支持Windows 10 / Windows 11
使用NDIS 6 驱动模型
支持环回接口抓包
性能和安全性更好
现在很多网络工具在安装时都会自动安装Npcap,例如:
Wireshark
Nmap
因此,如果你的电脑安装过这些工具,系统中很可能已经存在Npcap。
为了兼容旧程序,Npcap 在系统中会提供WinPcap 兼容接口,某些程序在检测时会把它识别为更高版本的 WinPcap,于是安装程序就会提示:
A newer version of WinPcap (internal version 5.1.83.730)
这个5.1.83.730实际上就是Npcap 提供的兼容版本号。
二、为什么 eNSP 必须使用 WinPcap
虽然Npcap 是 WinPcap 的升级替代品,但在实际测试中:
eNSP 只能正常识别 WinPcap,而无法正常使用 Npcap。
原因主要有两个:
1️⃣eNSP 发布时间较早
eNSP 最初发布时,Windows 抓包驱动主要就是WinPcap,程序内部依赖的是 WinPcap 的接口和驱动。
2️⃣Npcap 的兼容模式并不能完全满足 eNSP
虽然 Npcap 提供了WinPcap Compatible Mode,但 eNSP 在某些情况下仍然无法正确识别或调用 Npcap。
实际表现通常是:
eNSP 启动设备失败
报错40
抓包接口异常
因此,在搭建eNSP 实验环境时,一般需要直接安装 WinPcap。
三、解决方法
WinPcap 安装程序在安装前,会检测系统中的版本信息。
检测主要依赖下面这个文件:
C:\Windows\SysWOW64\packet.dll
只需要将这个文件重命名即可,例如:
packet.dllpacket.dll.old
重命名时系统会提示需要管理员权限,点击继续即可。
四、重新安装 WinPcap
完成重命名后,重新运行 WinPcap 安装程序。
安装过程保持默认选项即可:
1️⃣Setup Wizard
点击Next
2️⃣License Agreement
点击I Agree
3️⃣安装选项
保持默认设置,点击Install
安装完成后点击Finish即可。