命令行下裝WinPcap

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安裝包就製作完成了。
注意,批處理最後一行沒有回車符。否則會因爲正在運行而無法刪除自己。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章