阅读:2119回复:13
ndis-hook技术请教我最近在研发基于ndis-hook技术的安全产品,按照从网上下载的资料,编译安装。softice调试,发现有时候发送的函数没有hook上,导致发送出去的数据报没有拦截。原因为何? 我的源代码来源下面: http://ntdev.h1.ru/ndis_fw.html |
|
|
沙发#
发布于:2004-03-30 21:45
可以看本版 gjp写的代码。
|
|
|
板凳#
发布于:2004-03-31 09:17
谢谢你的回答,但是你没有告诉我代码在那儿。
|
|
|
地板#
发布于:2004-03-31 09:35
精华区。
|
|
地下室#
发布于:2004-03-31 09:44
楼上的您好,我在精华区没有找到。
|
|
|
5楼#
发布于:2004-03-31 10:14
http://www.driverdevelop.com/forum/viewthread.php?tid=3806
|
|
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可以正常进行 还请高人指点? |
|
|
7楼#
发布于:2004-04-01 09:17
gjp的文章了讲了,要两次钩挂的问题,会不会和你的第一个问题有关系。你给的那个例子,我还没时间研究,也许不妥。
|
|
8楼#
发布于:2004-04-01 10:07
虽然是讲了,可是对我这样的才鸟来说,还是不很详细
|
|
|
9楼#
发布于:2004-04-01 10:19
琢磨悟真知
|
|
10楼#
发布于:2004-04-13 11:48
你的方法和胡老大的方法是一致的,都是为了HOOK tcpip.sys 注册的协议。
我认为是NDIS_PROTOCOL_BLOCK, NDIS_OPEN_BLOCK的结构有问题。 而,胡老大的文章对这个问题也说得不清楚,(我看了他的文章,)他使用的结构是me ddk的结构。 你如果把你的程序改写到98,me下,我想都应该很正常地工作。 关键是这两个结构。 |
|
11楼#
发布于:2004-04-13 14:16
我也觉得这两个结构的问题,但是我在windows2000下的产品,改在98下,跟我在2000下使用,没有关系
|
|
|
12楼#
发布于:2004-04-13 16:05
我刚才已经把我的程序在98下运行了一下,很正常,完全能够达到要求。所以我有80%地相信是这两个结构的不对,因为我在调式模式下,通过看不见协议的名称。
不知道楼上的朋友,你有不有关于什么时候使用这两个结构的哪个版本的相关资料。 |
|
13楼#
发布于:2004-04-13 16:30
我没有,我记得好像98下使用的ndis版本3,2000下使用ndis5.0
,但是对于ndis hook技术来说,不管什么版本,我们只是对相应的函数进行hook。怎么会出现这样的启动问题呢? |
|
|