mejycrack
驱动牛犊
驱动牛犊
  • 注册日期2004-11-20
  • 最后登录2012-07-02
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1504回复:4

请大牛帮忙,驱动和应用通讯的思路

楼主#
更多 发布于:2005-07-01 16:21
  我想写这样一个防火墙,利用NDIS HOOK实现,让发现一个本机发送包的目的IP是( 假设10.10.10.10)时,提示用户并询问时候进行连接,并给用户一个回答问题的时间,例如10s。在等待用户回答的过程中,不能影响其他包的发送。
我该怎么做呢?
我的思路是这样的:
是不是要申请一个缓冲区,保存待发送的包?如果要,缓冲区应该多大?
如何处理等待过程中的通讯呢?采用多线程?
如果用事件进行通讯,事件应该在那一层创建?
哪位大牛指点一下,不胜感谢!!!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-04 16:47
tdi 收不到icmp. 处理icmp还是要ndis
mejycrack
驱动牛犊
驱动牛犊
  • 注册日期2004-11-20
  • 最后登录2012-07-02
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-04 16:04
下面是引用zhaock于2005-07-01 16:24发表的:
应该通过tdi filter来实现,不要用ndis hook

tdi好像icmp包接不到?
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-02 14:39
用NDIS HOOK好象也还是可以的,你需要开一个核心线程,先将包把缓存,在超时或者用户不同意时将包直接丢掉,如果用户同意那就放行。

我觉得可以不用自己开缓冲区,直接把NDIS_PACKET保存起来就可以了,给用户提示消息肯定要用事件的,这个是核心层与应用层通信的问题,可以查以前的帖子。

建议多看点关于NDIS中发包的流程,主要有包由谁分配、由谁释放的问题。
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-07-01 16:24
应该通过tdi filter来实现,不要用ndis hook
游客

返回顶部