编译与使用WinPcap 下载本文

内容发布更新时间 : 2024/5/3 21:26:07星期一 下面是文章的全部内容请认真阅读。

1.1. 源代码目录结构

WinPcap的所有源代码都可从http://www.winpcap.org网站获取,此处采用的源代码包为WpcapSrc_4_1_beta5.zip,源代码目录结构如图5-1所示。其中:

Common目录下为几个共用的头文件。 dox 目录下为一些说明文档。

Examples-pcap与Examples目录下为一些示例代码,两个目录的区别在于前者是采用libpcap库接口的示例程序,后者为采用wpcap库接口的示例程序。

Packet9x目录下为Windows 9x平台的驱动程序NPF的源代码与Packet.dll库的源代码,分别放置在VXD与DLL目录下。

PacketNtx目录下为Windows NTx平台的驱动程序NPF的源代码与Packet.dll库的源代码,分别放置在driver与DLL目录下。

wpcap目录下为wpcap.dll库的源代码。

[1]此处我们只关注Windows 2000/XP/2003/Vista/2008 (x86架构)下WinPcap相关的问题,不关注Windows NT4、Windows 9x及x64架构的问题。同时所有的实际操作都在Window XP上进行。 图5-1 WinPcap源代码目录结构

可从http://www.winpcap.org网站获取开发包

WpdPack_4_1_beta5.zip,便于WinPcap的软件开发,该软件包的目录结构如图5-2所示,其中:

docs目录下为详细的用户使用手册。

Examples-pcap与Examples-remote目录下为一些示例代码,两个目录的区别在于前者是采用libpcap库接口的示例程序,后者为采用wpcap库接口的示例程序。

Include目录下为在WinPcap库上开发所需的头文件。 Lib目录下为在WinPcap库上开发所需的库文件。

图5-2 WpdPack 开发包目录结构

1.2. 构建驱动程序NPF

在开始编译之前,我们需要注意NPF是依赖于平台的。所以强烈建议编译驱动

程序的操作系统与将要使用NPF的操作系统一致。此处我们以Windows XP(x86架构)平台下驱动程序NPF的构建为例,来说明构建的过程。

此处使用WDK 6001.18002[2]编译WinPcap 4.1 beta5。WinPcap 4.1 beta5的文档要求采用Microsoft Windows Driver Kit (WDK) 6000 or 6001进行编译。使用老的DDK编译WinPcap也应该可以,但是可能需

要手动修改编译脚本,为了禁止PREfast(PREfast是一个静态代码分析工具,在最近的DDK/WDK版本附带)。

接着就可按下列步骤开始NPF的构建:

1) 从Windows[开始]菜单选择[所有程序],然后选择[Windows

Driver Kits],接下来选择[WDK 6001.18002],接着选择[Build Environments],选择[Windows XP]。

如果需要编译一个release版本,就选择[Windows XP x86 Free Build Environment],如果需要编译一个debug版本,就选择[Windows XP x86 Checked Build Environment]。因为我们的CPU是x86架构,所以选择x86的构建环境。

对于构建release版本的操作总结如下:

[开始]-> [所有程序]-> [Windows Driver Kits]-> [WDK 6001.18002]->

[Build Environments]-> [Windows XP]->

[Windows XP x86 Free Build Environment] 对于构建debug版本的操作总结如下:

[开始]-> [所有程序]-> [Windows Driver Kits]-> [WDK 6001.18002]->

[Build Environments]-> [Windows XP]->

[Windows XP x86 Checked Build Environment] 2) 构建环境接着出现如图5-3所示的命令提示窗口。切换路径到

WinPcap源代码的PacketNTx目录,执行CompileDriver脚本命令,如图5-4所示。

[2]WDK 6001的下载参见下一篇博文的说明