看了一周的《Windows防火墙与网络封包截获技术》,也没看出所以然。于是就想着把DDK中的passthru的源程序安装下看看,到底底层抓包是啥样子的。
想法是很简单的,首先是如何编译这个驱动程序,那本书上没怎么写,因为书上附带的关盘是编译好了的sys文件。既然不知道如何编译就去驱网上搜罗了下几年的帖子,只有些零星的碎语。
不过这些只言片语都是很有用的,最后琢磨到如何使用DDK自带的工具编译这些源程序。编译步骤如下:
1、点击“开始->所有程序->Development Kits->windows DDK 2600->bulid environment ->winXP Checked Build Environment”
调试完成后,如果编译最终使用的驱动程序,第一项可以更改为:
“开始->所有程序->Development Kits->windows 2000 DDK->Free Build Environment”
2、这时会出现cmd窗口,用cd命令进入你要编译的目录中。键入build -cZ命令,系统就可以编译检查模式的驱动程序。
这时在D:\Program Files\WINDDK\2600\src\network\ndis\passthru\driver这个目录下,会看到两个inf文件----netsf.inf和netdf_m.inf,后来问了下驱动达人才知道这两个inf前者对应sys文件,后者对应dll文件。
本以为编译完成了,就可以考虑安装了,首先考虑的是如何安装。《Windows防火墙和网络封包》这本书对于安装驱动的方法更是看不懂,现在想想是明白了许多,对于一次没有装驱动的人来说就不应该那么教。
随便在驱网上找了一个QQ问了下那哥们:知道使用bindview工具可以按照驱动程序。于是使用同样的方法编译了D:\Program Files\WINDDK\2600\src\network\config\bindview
执行bindview.exe如下图:
点击install,如下图在弹出的对话框中选择service安装
在选择网络服务框中选择从硬盘安装
这时点击确定后会有出现问题,系统提示缺少必要得passthru.dll。我仔细查看了下个个文件夹,还是没有这个dll,还是去驱网找原因。看到05年的一个帖子的回帖这么说:
“我们用passthru的代码,对接收数据报的部分做了修改。然后,我们用DDK自带的builder工具来编译。我一般是用开始菜单中DDK程序组中的Free Build Environment,到passthru目录下执行build -cz来编译passthru,得到passthru.sys文件,然后再到NTDDK\src\network\config\filter目录下,执行build -cz来得到sfilter.dll,然后再加上passthru目录下的netsf.inf和netsf_m.inf,一共四个文件。这样,驱动安装所需要的文件就全了。
打开网络属性,添加服务,找到passthru目录下,安装,弹出没有数字签名的警告,不理,继续安装,最后,你会发现,网络属性中增加了一个名为Sample Filter的组件,同时,硬件管理器中的网卡下增加了一个Sample Filter Miniport的设备。如果你已经到了这里,并且系统没有出现蓝屏和死机,那么恭喜你,你已经成功地安装上了中间层驱动,并且已经发挥包过滤作用了。”
可是我仔细检查了下我的DDK文件夹,根本就没有src\network\config\filter这个目录,莫非这就的DDK装错了,或者我用的xp版的ddk与NTddk不一样??
我把问题丢到了驱动个网络安全这个群里,得到了证实XPDDK的确没有那个文件夹,NT和2000DDK都有的。晕哦。不知道自己的这个dll要从哪弄到了。群里有人提议,修改inf文件,对于我这个的菜鸟修改inf还是不敢擅自的。多亏了phoenix兄,他告诉我XPDDK在passthru目录里还有一个文件夹notifyob,这个passthru.dll就存在在这个目录中。果然编译得到此dll。
紧接着就是按刚才安装sys的方法安装,先安装inf 然后是dll 然后是另一个inf 最后装sys文件。而且并没有出现蓝屏和死机的现象,大功告成。在本地连接的属性里看到多了一个PassthruDriver的选项,想卸载的时候,可以直接卸载的。
测试的时候,使用Driver Studio自带的DriverMonitor或者dbgview.exe,然后通过访问网上邻居访问其他计算机,这时会有调试信息输出到界面上的。
整个编译安装测试的过程比较复杂,特别是对于初学者的我来说,我就像小白一样被这个驱动玩着,过不了我也要玩他像玩小白一样。嘿嘿。在此特别感谢phoenix、永远和Drizzle。
分享到:
相关推荐
标题中的“DDK例子passthru的自动安装程序”指的是一个使用DDK(Driver Development Kit)编写的示例程序,该程序实现了NDIS(Network Driver Interface Specification)中的passthru技术,并且具备自动安装功能。...
我认为就是编译后运行 就可自动安装PASSTHRU <br>其实 <br>小弟也不太懂 如果有什么问题 请留言说明 咱们一块研究
在提供的文件列表中,"objchk_wxp_x86"和"objchk_win7_x86"可能是编译或测试passthru Driver的工具或结果。`objchk`通常是微软Visual Studio中的一个命令行工具,用于验证对象文件(如驱动程序)的完整性,并检查其...
用户只需运行压缩包内的"PCAN-PassThru Setup.exe"执行文件,按照向导提示进行安装。安装完成后,用户需要配置PCAN接口参数,并在INCA软件中设置相应的通道,从而建立连接。值得注意的是,确保PCAN设备驱动正确安装...
在VC中编译passthru源代码,首先需要确保已安装了WDK和Visual Studio。然后,你需要将源代码文件添加到一个新的VC项目中,配置项目的编译选项以匹配WDK环境。这包括设置正确的平台工具集、库目录和包含目录。确保...
- `Bin`:通常包含编译后的二进制文件,如驱动程序的.sys文件,这些文件可以直接安装到操作系统中。 NDIS Passthru的实现涉及以下关键概念和技术: 1. NDIS接口:理解NDIS接口,包括NDIS函数调用,如`...
同时,为了确保驱动的稳定性和兼容性,还需要进行详尽的测试,包括功能测试、压力测试和兼容性测试。 "XP Passthru"的相关文件可能包含了源代码、头文件、示例程序和文档,帮助开发者理解如何在Windows XP环境下...
passthru,网络过滤
6. **调试与测试**: 驱动程序的调试比应用程序更复杂,因为它们运行在内核模式下。熟悉调试工具如WinDbg以及如何生成内核转储文件是必要的。 7. **性能优化**: 考虑到驱动直接影响网络性能,优化代码以减少延迟和...
`netsf.inf`和`netsf_m.inf`是安装脚本,用于在Windows系统中安装和配置驱动。这些脚本定义了驱动的版本信息、依赖项以及如何注册驱动服务。`makefile`是构建系统的配置文件,指示如何编译和链接源代码以生成驱动...
在NDIS中,PASSTHRU层的驱动程序扮演着一个特殊的角色,它通常被用作一个示例或者测试驱动,用于演示基本的NDIS驱动开发流程,同时也允许应用程序直接对网络硬件进行操作,绕过上层的协议驱动和中间驱动。...
扩展passthru驱动的小练习 有对端口,ip及mac的过滤
PassthruInstall可能包含处理驱动签名的代码,包括测试签名和发行签名的处理,以及如何绕过驱动签名要求的机制(如果需要的话)。 2. 设备驱动程序接口(DDI):程序可能利用DDI来与操作系统交互,如...
标题中的“passthru过滤网络数据包”是指在计算机网络中使用的一种技术,它允许程序或驱动程序拦截并处理网络数据包,而不会被操作系统默认的网络堆栈完全处理。这种技术通常用于网络监控、安全分析或者自定义网络...
这种设计使得PassThru驱动非常适合用于调试和测试环境,因为它可以清晰地观察到数据包在不同层之间的流动情况。 然而,PassThru驱动的扩展性也十分强大。开发者可以根据需求在数据包的传递过程中添加额外的功能,...
标题中的“ARP.rar_arp_ndis_ndis arp_passthru_passthru arp”表明这是一个关于ARP(Address Resolution Protocol)协议的项目,其中涉及到NDIS(Network Driver Interface Specification)和Passthru技术。...
passthru 来自VC的FireWallDemo翻译,能实现拦截,但是目前不能实现日志监控。WinXP,Win7通过。
7. **驱动签名和安装**:在实际部署驱动时,需要考虑驱动签名的问题,以确保驱动能够成功安装在受限制的系统环境中。 8. **性能优化**:尽管PassThru驱动不涉及复杂的包处理,但优化数据包的传输效率和驱动的内存...