天天看点

命令行下装WinPcap

以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

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

inpcap安装包就制作完成了。

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

继续阅读