我想为Windows编写一个数据包嗅探器和编辑器.我希望能够看到进入和离开系统的所有数据包的内容,并可能修改它们.任何语言都可以,但我希望它运行得足够快,不会给系统带来负担.
我已经阅读了一些关于WinPcap的内容,但文档声称您不能使用WinPcap来创建防火墙,因为它不能丢弃数据包.什么工具可以帮我写这个软件?
去过那里,完成了:-)早在2000年,我的第一个Windows程序就是一个过滤器钩子驱动程序.
我所做的是实现过滤器钩子驱动程序并编写一个用户空间应用程序,该应用程序准备了允许的内容和禁止内容的过滤器表.当你绕过你的初始蓝屏时(见下面我在内核模式下的调试提示),过滤器模式驱动程序非常容易使用...它将每个数据包提供给你编写的函数,并根据返回代码丢弃它或让它通过.
该级别的Unfortunatley数据包是QUITE raw,片段没有重新组装,它看起来更像是"网卡"结束(但不再有以太网头).因此,解码数据包以便使用该解决方案进行过滤将会非常糟糕.
还有防火墙钩子驱动程序,如此代码项目文章中所述.
如果您使用的是Vista或Server 2008,那么最好先看看WFP(Windows过滤平台),这似乎是当天编写防火墙的强制性API.几分钟前,当谷歌搜索过滤器钩子驱动程序时,我不知道除了谷歌.
更新:忘记调试提示:
Sysinternals DbgView显示内核模式DbgPrint输出,更重要的是 - 它还可以从最后一个蓝屏生成的转储文件中读取它们.所以用dbgprint撒上你的代码,如果它是蓝屏,只需将转储加载到dbgview中,看看它在死之前发生了什么......非常有用.使用这个我管理没有内核调试器.