现在的位置: 首页 > 综合 > 正文

命令行下装WinPcap

2013年10月03日 ⁄ 综合 ⁄ 共 1241字 ⁄ 字号 评论关闭
WinPcap是个很常用的工具,但必须在窗口界面下安装。在网上也可以找到不用GUI的版本(但还是有版权页),其实我们完全可以

自己做一个。

以WinPcap 3.0a 为例。通过比较安装前后的文件系统和注册表快照,很容易了解整个安装过程。
除去反安装的部分,关键的文件有三个:wpcap.dll,packet.dll和npf.sys。前面两个文件位于system32目录下,第三个在system

32/drivers下。而注册表的变化是增加了一个系统服务NPF。注意,是系统服务(即驱动)不是Win32服务。

作为系统服务,不但要在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services下增加主键,在HKEY_LOCAL_MACHINE/SYSTEM/

CurrentControlSet/Enum/Root下也增加主键。而后者默认只有SYSTEM身份才可以修改。幸运的是,并不需要手动添加它,winpcap

被调用时会自动搞定。甚至完全不用手动修改注册表,所有的事winpcap都会自己完成,只需要将三个文件复制到合适的位置就行

了。

作为范例,还是演示一下如何修改注册表:利用前面说过的inf文件来实现。

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=NPF,,winpcap_svr
[winpcap_svr]
DisplayName=Netgroup Packet Filter
ServiceType=0x1
StartType=3
ErrorControl=1
ServiceBinary=%12%/npf.sys

将上面这些内容保存为_wpcap_.inf文件。
再写一个批处理_wpcap_.bat:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %CD%/_wpcap_.inf
del _wpcap_.inf
if /i %CD%==%SYSTEMROOT%/system32 goto COPYDRV
copy packet.dll %SYSTEMROOT%/system32/
copy wpcap.dll %SYSTEMROOT%/system32/
del packet.dll
del wpcap.dll
:COPYDRV
if /i %CD%==%SYSTEMROOT%/system32/drivers goto END
copy npf.sys %SYSTEMROOT%/system32/drivers/
del npf.sys
:END
del %0

然后用winrar将所有文件(5个)打包为自解压的exe,并将『高级自解压选项』->『解压后运行』设置为_wpcap_.bat,命令行的w

inpcap安装包就制作完成了。

注意,批处理最后一行没有回车符。否则会因为正在运行而无法删除自己。 

抱歉!评论已关闭.