WinPcap核心资料

WinPcap核心资料

 

模块

 NPF驱动核心指南
 如何编译WinPcap
 Packet.dll -- 数据包驱动API

详细描述

这部分指南从最底层的模块开始,描述了WinPcap的核心结构与接口。这部分内容的适合那些想要扩展或修改本软件的人,或者是那些对WinPcap的工作原理感兴趣的人。因此,那些只希望在他们的软件中,使用WinPcap的开发人员,不需要阅读此部分的内容。

WinPcap 结构

饮用WinPcap主页上的一段内容:

WinPcap是一个Win32平台的,用于捕获数据包和进行网络分析的体系结构。它包括了一个内核级的数据包过滤器,一个低层动态链接库(packet.dll),一个高层的,依赖于系统的库(wpcap.dll)。

为什么我们使用术语"体系结构"而不是"库"呢?因为数据捕获是一个低层的行为,它需要和网络适配器,及操作系统的信息交换,特别是网络的实现。所以,一个简单的库是实现不了的。

以下结构显示了WinPcap的不同的组件:

WinPcap的主要结构

首先,捕获系统需要占用操作系统的协议栈,来访问通过网络的原始数据。这就需要有部分内容要运行在操作系统内核中,能直接访问网络接口驱动。这部分内容非常依赖于系统,在我们的解决方案中,它被认为是设备驱动,称为Netgroup Packet Filter(NPF);我们为Windows 95,Windows 98,Windows ME, Windows NT 4, Windows 2000 和 Windows XP提供了不同版本的驱动。这些驱动都提供了相同的基本功能,比如数据捕获和发送,也提供了一些高级功能,比如可编程的过滤系统和一个监听引擎,前者可以被用来获取过滤后的数据流(比如,可以从指定的端口,仅捕获ftp数据流),后者提供了一个强大的,但很简单的方式来获取数据流的统计信息。(比如获取网络流量或者两个主机间交换数据的总大小)。

其次,捕获系统必须输出一个端口,以便用户级应用程序利用内核驱动所提供的特性。WinPcap提供了两个不同的库:packet.dll wpcap.dll

第一个提供了低层的API,它可以直接访问驱动的函数,并且依赖于微软操作系统的可编程接口。 

第二个提供了更多强大的,高层次的,和libpcap(一个知名的Unix捕获库)兼容的捕获原语。这些函数捕可以在不考虑网络硬件和操作系统的情况下捕获数据。

纵观本文档,我们会首先使用Packet Driver API packet.dll的函数,然后才是wpcap, wpcap.dlllibpcap的。

### 安装和配置Zend Debugger在PhpStorm中的方法 #### 下载并安装Zend Debugger扩展 为了使Zend Debugger能够在PHP环境中工作,需先获取适用于当前PHP版本的Zend Debugger二进制文件。通常可以从Zend官方网站下载适合特定操作系统和PHP版本的预编译包。 将下载得到的Zend Debugger DLL或SO文件复制至PHP extensions目录下[^1]。 #### 修改`php.ini`配置文件 编辑PHP配置文件,在其末尾追加以下内容来加载Zend Debugger模块: ```ini [zend] zend_extension=/path/to/zend/debugger/library//ZendDebugger.dll ; Windows环境下的路径示例 ; 或者对于Linux/MacOS系统: zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20XXYYZZ/ZendDebugger.so" ``` 注意替换上述语句中的路径部分以匹配实际存放位置,并确保所使用的zend_extension指令形式与操作系统的兼容性相符[^3]。 #### 配置IDE监听调试连接 启动PhpStorm之后,通过工具栏上的“Start Listen for PHP Debug Connections”按钮或者菜单项 `Run | Start Listen for PHP Debug Connections` 来激活IDE对来自Web服务器端发起的远程调试请求的侦听功能[^2]。 #### 设置浏览器辅助插件 利用书签脚本(bookmarklet)或其他类型的浏览器扩展程序可以更方便地控制Xdebug会话状态;尽管这里提到的是针对Xdebug的操作指南,但对于Zend Debugger同样适用类似的机制来进行启停操作。可以通过生成器创建自定义bookmaklets以便于管理不同项目的调试设置[^4]。 #### 开始一次完整的调试流程 当一切准备就绪后,在目标网页上触发断点命中事件——这可能涉及到访问某个URL地址或是执行某些交互动作。一旦达到设定条件,PhpStorm将会自动捕获该过程并允许开发者深入探究应用程序内部的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值