手动安装wincap方法

来源:互联网 发布:时空穿越真实事件知乎 编辑:程序博客网 时间:2024/06/12 01:49

[转载]WinPcap3.1的手动安装方法

文章作者:RIVULET
信息来源:rivulet's blog(www.rivuletblog.bokee.com)

1,安装需要用到以下文件,Packet.dll,WanPacket.dll,wpcap.dll,pthreadVC.dll,npf.sys(在正常安装WinPcap3.1后,这些文件存放在%windir%/system 和 %windir/system32/drivers%中);

2,将文件Packet.dll,WanPacket.dll,wpcap.dll,pthreadVC.dll复制到%windir%/system32中,将npf.sys复制到%windir/system32/drivers中;

3,将npf安装为驱动,以下是使用sc.exe的安装方法:    sc create npf binpath= system32/drivers/npf.sys type= kernel start= demand  你也可以使用其他工具;

4,卸载方法:先停止驱动npf(sc stop npf),再删除驱动(sc delete npf),最后删除上文提到的5个文件;

5,注意:该方法只对WinPcap3.1的文件进行了测试;

第二种方法(其实是一样的,只是通过程序代替了SC)

问:我在写一个程序时候用到了winpcap中的packed.lib这个库,我想在程序运行是不用安装WINPCAP就可以使用程序,请问我要用到WINPCAP中的那些文件,谢谢。


packet.dll
wpcap.dll
wanpacket.dll
win2000/xp/2003系统在安装WinPCap驱动后,这三个文件都位于<system32>目录下。

不过光有这三个文件是不够的,还要安装npf.sys驱动。
程序中可以先把npf.sys复制到<system32>/drivers/目录,再通过CreateService安装服务。下面是示例代码:

SC_HANDLE scmHandle = NULL;
SC_HANDLE srvHandle = NULL;
LPCTSTR NPFServiceName = TEXT("NPF");
LPCTSTR NPFServiceDesc = TEXT("Netgroup Packet Filter");
LPCTSTR NPFDriverPath = TEXT("system32//drivers//npf.sys");
scmHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (scmHandle) {
    srvHandle = CreateService(scmHandle,
        NPFServiceName,
        NPFServiceDesc,
        SERVICE_ALL_ACCESS,
        SERVICE_KERNEL_DRIVER,
        SERVICE_DEMAND_START,
        SERVICE_ERROR_NORMAL,
        NPFDriverPath,
        NULL, NULL, NULL, NULL, NULL);
    if (srvHandle) CloseServiceHandle(srvHandle);
    CloseServiceHandle(scmHandle);
}


以上是网上搜索到的答案,是否正确尚未经本人验证。