当前位置:  开发笔记 > 开发工具 > 正文

如何在Windows中挂钩TCP堆栈来嗅探和修改数据包?

如何解决《如何在Windows中挂钩TCP堆栈来嗅探和修改数据包?》经验,为你挑选了1个好方法。

我想为Windows编写一个数据包嗅探器和编辑器.我希望能够看到进入和离开系统的所有数据包的内容,并可能修改它们.任何语言都可以,但我希望它运行得足够快,不会给系统带来负担.

我已经阅读了一些关于WinPcap的内容,但文档声称您不能使用WinPcap来创建防火墙,因为它不能丢弃数据包.什么工具可以帮我写这个软件?



1> froh42..:

去过那里,完成了:-)早在2000年,我的第一个Windows程序就是一个过滤器钩子驱动程序.

我所做的是实现过​​滤器钩子驱动程序并编写一个用户空间应用程序,该应用程序准备了允许的内容和禁止内容的过滤器表.当你绕过你的初始蓝屏时(见下面我在内核模式下的调试提示),过滤器模式驱动程序非常容易使用...它将每个数据包提供给你编写的函数,并根据返回代码丢弃它或让它通过.

该级别的Unfortunatley数据包是QUITE raw,片段没有重新组装,它看起来更像是"网卡"结束(但不再有以太网头).因此,解码数据包以便使用该解决方案进行过滤将会非常糟糕.

还有防火墙钩子驱动程序,如此代码项目文章中所述.

如果您使用的是Vista或Server 2008,那么最好先看看WFP(Windows过滤平台),这似乎是当天编写防火墙的强制性API.几分钟前,当谷歌搜索过滤器钩子驱动程序时,我不知道除了谷歌.

更新:忘记调试提示:

Sysinternals DbgView显示内核模式DbgPrint输出,更重要的是 - 它还可以从最后一个蓝屏生成的转储文件中读取它们.所以用dbgprint撒上你的代码,如果它是蓝屏,只需将转储加载到dbgview中,看看它在死之前发生了什么......非常有用.使用这个我管理没有内核调试器.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有