返回首页
当前位置: 网站首页>>协议分析>>Winpcap>>

如何编译WinPcap

时间:2008-10-17 来源: 作者: 点击:
编译驱动 编译NPF时,有两个主要的路径:Windows NTx和Windows 9x。注意,因为NPF驱动是与平台相关的,所以,为了连接正确的DDK库,我们强烈建议编译的时候,要选择将来会被使用的那个操作系统。比如,如果你使用Windows NT 4 DDK库赖编译驱动,那么在Windows2000或其他
  编译驱动
编译NPF时,有两个主要的路径:Windows NTx和Windows 9x。注意,因为NPF驱动是与平台相关的,所以,为了连接正确的DDK库,我们强烈建议编译的时候,要选择将来会被使用的那个操作系统。比如,如果你使用Windows NT 4 DDK库赖编译驱动,那么在Windows2000或其他操作系统上运行,将不会那么顺利了。

在Windows NT4平台上编译驱动
软件需求:

Microsoft Driver Developer Kit (DDK) for Windows NT4
能在Visual Studio 6上编译的Microsoft Platform Software Development Kit (SDK)的较新的版本(最新的平台发布于2003年2月)。这个版本的PSDK在Microsoft的网站上提供,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm。同时,它也可以在线订阅:http://www.qmedia.ca/launch/psdk.htm,同时,在微软的用户下载网站里,也为微软MSDN用户提供了订阅。
Microsoft Visual C++ 6.0 with Service Pack 5 or 6 (这两个版本在微软的网站上都有提供).
如果你的系统符合上面的三个要求,那么请按照下列步骤:

从Windows NT 开始 菜单,选择 程序 然后选择 Development Kits, 然后选择 Windows NT4 DDK. 在这里,如果你想建立一个调试版本,你可以选择Checked Build Environment ,如果你想建立一个发布版本,你可以选择 Free Build Environment 。
一个命令提示框将被打开。用cd命令移到WinPcap文件夹下的PacketNTx文件夹,输入命令:

CompileDriver

这个脚本会产生一个驱动 (npf.sys),然后,二进制数据会被放入下列文件夹中的一个
Free Build Environment: winpcapPacketNTxdriverbinNT4i386free
Checked Build Environment: winpcapPacketNTxdriverbinNT4i386checked
警告: 有时,在编译驱动的过程中,会产生很多'last line incomplete'错误提示。忽略这些错误,并且让编译过程继续进行。它们的产生是由于某些版本的DDK的bug所引起的。

在Windows 2000/XP/2003/Vista(32位和64位AMD64)平台上编译驱动
软件需求:

Microsoft Driver Developer Kit (DDK) for Windows Windows XP or Windows Server 2003. 对于 WinPcap 4.0, 最合适的 DDK environment 是 "DDK for Windows Server 2003SP1", 也可以称作 DDK 3790.1830.
注意: 在Windows 2000下使用旧的DDK是可以的,但是,你需要手动地修改编译脚本来禁用PREfast。(PREfast是一个静态代码分析工具,捆绑在较新的DDK中)

如果你的系统满足以上需求,那么请按下列步骤进行:

从Windows NT 开始 菜单,选择 程序 然后选择 Development Kits, 然后选择 Windows XXX DDK., XXX 就是你的目的系统,然后选择 Build Environments.
32bit 驱动: 选择 Windows 2000 ,然后,如果你想建立一个发布版本的程序,请选择 Windows 2000 Free Build Environment,如果你想建立一个调试版本的程序,请选择 Windows 2000 Checked Build Environment 。
64bit AMD64 驱动: 选择 Windows Server 2003 然后,如果你想建立一个发布版本的程序,请选择 Windows Server 2003 Free x64 Build Environment 如果你想建立一个调试版本的程序,请选择 Windows Server 2003 Checked x64 Build Environment 。
一个命令提示框将被打开。用cd命令移到WinPcap文件夹下的PacketNTx文件夹,输入命令:

CompileDriver

这个脚本会产生一个驱动 (npf.sys),然后,二进制数据会被放入下列文件夹中的一个
32bit driver (both Free and Checked Build): winpcapPacketNTxdriverbin2ki386
64bit AMD64 driver (both Free and Checked Build): winpcapPacketNTxdriverbinxpamd64
在Windows 9x平台上编译驱动
注意: WinPcap已经不再支持这个Windows平台。然而,一些在代码包中,基于这些操作系统的源代码还是可用的。

要在Windows 9x上编译驱动,你需要:

Driver Developer Kit (DDK) for Windows 95/98/ME
能在Visual Studio 6上编译的Microsoft Platform Software Development Kit (SDK)的较新的版本(最新的平台发布于2003年2月)。这个版本的PSDK在Microsoft的网站上提供,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm。同时,它也可以在线订阅:http://www.qmedia.ca/launch/psdk.htm,同时,在微软的用户下载网站里,也为微软MSDN用户提供了订阅。
Microsoft Visual C++ 6.0 with Service Pack 5 or 6 (这两个版本在微软的网站上都有提供).
然后,按下列步骤进行:

打开DOS
进入 VisualC++ BIN 目录 (比如 C:DEVSTUDIOVCBIN) 并执行命令

Vcvars32

进入 SDK 目录 (比如 C:MSSDK) 并执行命令

Setenv sdk_path

sdk_path 是 SDK 目录(比如 Setenv C:MSSDK)
进入 DDK 目录 (比如 C:DDK) 并执行命令

Ddkenv 32 net

进入驱动源代码所在目录,并执行命令

nmake rtl

来获得发布版本,或者执行

nmake

来获得调试版本
发布版本的 packet.vxd 将会出现在 retail 目录下, 调试版本将会出现在 debug 目录下
警告: 在一些系统中, NMAKE 使用工具并不能启动 ADRC2VXD, 这一位着驱动二进制数据的产生是正确的,不过没有版本信息。我们还不知道引起这个问题的原因。

编译 packet.dll
这个DLL的源路径在 PacketNTxdll

注意: WinPcap已经不再支持这个Windows平台。然而,一些在代码包中,基于这些操作系统的源代码还是可用的。

软件需求:

能在Visual Studio 6上编译的Microsoft Platform Software Development Kit (SDK)的较新的版本(最新的平台发布于2003年2月)。这个版本的PSDK在Microsoft的网站上提供,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm。同时,它也可以在线订阅:http://www.qmedia.ca/launch/psdk.htm,同时,在微软的用户下载网站里,也为微软MSDN用户提供了订阅。
注意: 如果你使用 Microsoft Visual Studio .NET ,那么平台SDK是不需要编译packet.dll的。
Microsoft Visual C++ 6.0 with Service Pack 5 or 6 (这两个版本在微软的网站上都有提供).
如果你想用WinPcap建立一个支持CACE无线包捕获技术的程序,你需要从http://www.cacetech.com/products/airpcap.htm下载AirPcap developer's pack。The AirPcap developer's pack需要被解压到和WinPcap同一个目录下。
要编译 PACKET.DLL, 在Visual C++平台下,加载一个包含了目录 PacketNTxdllproject 的工程。 以下是一些工程的配置:

PacketNT - Win32 Release: 标准发行版配置
PacketNT - Win32 Debug: 标准调试版配置
PacketNT - Win32 Release No AirPcap: 标准发行版配置,不支持AirPcap
PacketNT - Win32 Debug No AirPcap: 标准调试版配置, 不支持AirPcap
PacketNT - Win32 NT4 Release: 运行于NT4的发行版本配置,不包括对Wan和IP helper API的支持。
PacketNT - Win32 NT4 Debug: 运行于NT4的调试版本配置,不包括对Wan和IP helper API的支持。
PacketNT - Win32 Release Vista: 运行于Vista的发行版本配置,不包括对Wan的支持(以及NetMon API)。
PacketNT - Win32 Debug Vista: 运行于Vista的调试版本配置,不包括对Wan的支持(以及NetMon API)。
WanPacket - Win32 Release: 使用WanPacket 库的发行版本,用于同NetMon API进行广域网捕捉。
WanPacket - Win32 Debug: 使用WanPacket 库的调试版本,用于同NetMon API进行广域网捕捉。
选择一种需要的配置,并建立工程来获取二进制文件。

编译 wpcap.dll
wpcap.dll 可以在任何 Win32 平台下编译,产生的dll是平台相关的。

系统需求:

Microsoft Visual C++ 6.0 with Service Pack 5 or 6 (这两个版本在微软的网站上都有提供).
能在Visual Studio 6上编译的Microsoft Platform Software Development Kit (SDK)的较新的版本(最新的平台发布于2003年2月)。这个版本的PSDK在Microsoft的网站上提供,参见:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm。同时,它也可以在线订阅:http://www.qmedia.ca/launch/psdk.htm,同时,在微软的用户下载网站里,也为微软MSDN用户提供了订阅。
注意: 如果你使用 Microsoft Visual Studio .NET ,那么平台SDK是不需要编译wpcap.dll的。
WinPcap源代码的工程文件位于 winpcapwpcapprj . 从 Visual C++ 开发平台上加载wpcap.dsw并构建程序。
如果你想用WinPcap建立一个支持CACE无线包捕获技术的程序,你需要从http://www.cacetech.com/products/airpcap.htm下载AirPcap developer's pack。The AirPcap developer's pack需要被解压到和WinPcap同一个目录下。

以下是八种工程的配置:

不支持远程捕获,支持AirPcap,不支持DAG,
Wpcap debug: 目录输出: winpcapwpcapprjDebug
Wpcap release: 目录输出: winpcapwpcapprjRelease

支持远程捕获,不支持AirPcap,不支持DAG
Wpcap debug REMOTE NO AIRPCAP: 目录输出: winpcapwpcapprjDebug_REMOTE_NO_AIRPCAP
Wpcap release REMOTE NO AIRPCAP: 目录输出: winpcapwpcapprjRelease_REMOTE_NO_AIRPCAP
支持远程捕获,支持AirPcap,不支持DAG

Wpcap debug REMOTE: 目录输出: winpcapwpcapprjDebug_REMOTE
Wpcap release REMOTE: 目录输出: winpcapwpcapprjRelease_REMOTE

支持远程捕获,支持AirPcap,支持DAG
Wpcap debug REMOTE DAG: 目录输出: winpcapwpcapprjDebug_REMOTE_DAG
Wpcap release REMOTE DAG: 目录输出: winpcapwpcapprjRelease_REMOTE_DAG
注意: wpcap.dll 包含了来自 www.tcpdump.org 的libpcap的源代码,对于远程捕获有一些修改。 你能包含和构建一个不同版本的libpcap,只需要简单地把它拷贝到winpcapwpcapprj下的WinPcap源代码中即可,但是,你必须使用"Debug(调试)"或"Release(发行)"进行配置。
------分隔线----------------------------
顶一下
(1)
25%
踩一下
(3)
75%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容
  • 如何编译WinPcap

    编译驱动 编译NPF时,有两个主要的路径:Windows NTx和Windows 9x。注意,因为NPF驱动...

  • winpcap 驱动简介

    winpcap(windowspacketcapture)是windows平台下一个免费,公共的网络访问系统。开发wi...

  • 命令行下装WinPcap

    WinPcap是个很常用的工具,但必须在窗口界面下安装。在网上也可以找到不用GUI的版本(...

  • WinPcap 教程

    原文出处:http://winpcap.polito.it/docs/man/html/index.html 作者: LorisDegioanni...