start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:2119回复:13

ndis-hook技术请教

楼主#
更多 发布于:2004-03-30 21:32

我最近在研发基于ndis-hook技术的安全产品,按照从网上下载的资料,编译安装。softice调试,发现有时候发送的函数没有hook上,导致发送出去的数据报没有拦截。原因为何?
我的源代码来源下面:

http://ntdev.h1.ru/ndis_fw.html  
second
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2004-03-30 21:45
可以看本版 gjp写的代码。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-31 09:17
谢谢你的回答,但是你没有告诉我代码在那儿。
second
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-31 09:35
精华区。
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-31 09:44
楼上的您好,我在精华区没有找到。
second
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-31 10:14
http://www.driverdevelop.com/forum/viewthread.php?tid=3806
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-31 17:54
看了上面的各位讲解,我发现gjp的代码,使用的技术是注册一个协议,然后通过协议链来在需要的地方勾挂自己的函数,我使用的技术是hook 四个函数,NdisRegisterProtocol,NdisDeregisterProtocol, NdisOpenAdapter,NdisCloseAdapter四个函数
然后,修改在My_NdisRegisterProtol函数勾挂Protocol_block快,
在My_NdisOpenAdapter函数完成后勾挂SendHandler完成整个勾挂过程。

然后引出我的问题:
1。有时候系统发送数据报时候无法进入我的My_SendHandler函数,
接收可以
2。网卡禁用,启动后,发送函数My_SendHandler可以正常进行

还请高人指点?


second
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-01 09:17
gjp的文章了讲了,要两次钩挂的问题,会不会和你的第一个问题有关系。你给的那个例子,我还没时间研究,也许不妥。
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-04-01 10:07
虽然是讲了,可是对我这样的才鸟来说,还是不很详细
琢磨悟真知
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-01 10:19
琢磨悟真知
gtxai_2003s
驱动牛犊
驱动牛犊
  • 注册日期2003-08-14
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-13 11:48
你的方法和胡老大的方法是一致的,都是为了HOOK tcpip.sys 注册的协议。
我认为是NDIS_PROTOCOL_BLOCK, NDIS_OPEN_BLOCK的结构有问题。
而,胡老大的文章对这个问题也说得不清楚,(我看了他的文章,)他使用的结构是me ddk的结构。
你如果把你的程序改写到98,me下,我想都应该很正常地工作。
关键是这两个结构。
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-13 14:16
我也觉得这两个结构的问题,但是我在windows2000下的产品,改在98下,跟我在2000下使用,没有关系
second
gtxai_2003s
驱动牛犊
驱动牛犊
  • 注册日期2003-08-14
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-04-13 16:05
我刚才已经把我的程序在98下运行了一下,很正常,完全能够达到要求。所以我有80%地相信是这两个结构的不对,因为我在调式模式下,通过看不见协议的名称。
不知道楼上的朋友,你有不有关于什么时候使用这两个结构的哪个版本的相关资料。
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-04-13 16:30
我没有,我记得好像98下使用的ndis版本3,2000下使用ndis5.0
,但是对于ndis hook技术来说,不管什么版本,我们只是对相应的函数进行hook。怎么会出现这样的启动问题呢?
second
游客

返回顶部