阅读:2834回复:47
拦截的另外一种方法
在DRIVER_OBJECT里面有一个分发函数表,这个表就是让该驱动处理请求的各个函数入口,只要把该函数表里面的指针替换成自己的处理函数就可以了,。
这样做就象把自己附在钩挂的驱动程序上面,关键就是在于怎么样获得需要钩挂的驱动对象上面,而能够遍历对象的用途就可以解决了这个问题了 |
|
最新喜欢:![]() |
沙发#
发布于:2002-07-18 21:50
对于一个多层的驱动链
例如: 在驱动链a->b->c->d->e上面,A是最低层的驱动,而b,c,d,e都是上面的功能函数,当用ioatta进行钩挂的时候,你只能钩挂在e的上面,除非你的驱动程序加载的顺序比b早,比a晚,而使用上面说的那种技术的话,就根本不需要考虑是否比b晚和早的问题了,只要加载自己的驱动的时候A已经加载就可以了 |
|
板凳#
发布于:2002-07-18 21:52
当然,如果请求不是通过驱动链来进行下发的,那么该方法是不可行的
|
|
地板#
发布于:2002-07-18 21:53
对文件系统的拦截也可以通过该方法来进行拦截,因为在驱动对象里面也保存了fastio的处理函数表指针,只要把这个表里面的函数替换掉也是可以的
|
|
地下室#
发布于:2002-07-18 21:54
缺点就是既然你可以替换,那么别人也一样可以替换掉
|
|
5楼#
发布于:2002-07-18 21:55
老鼠玩什么呢
|
|
6楼#
发布于:2002-07-18 21:56
如果是病毒的话,那么我比较喜欢的就是把文件系统的驱动对象里面的请求处理函数入口全部替换掉,变成自己的入口函数,针对写请求进行自己的处理
|
|
7楼#
发布于:2002-07-18 22:10
估计今天老鼠被花盆砸了 :D :D :D
|
|
8楼#
发布于:2002-07-18 22:11
为什么这么说啊?
|
|
9楼#
发布于:2002-07-18 22:17
愿意听老鼠心得
|
|
|
10楼#
发布于:2002-07-18 22:18
很少能见到老鼠在这一本正经说心得,俺来打打岔
|
|
11楼#
发布于:2002-07-18 22:18
呵呵!也许也许大家都知道了呢
|
|
12楼#
发布于:2002-07-18 22:20
俺是不知道了,俺要学的东西太多,多的不知道从哪下手了
|
|
13楼#
发布于:2002-07-18 22:21
我也是啊!整天都在浪费时间
|
|
14楼#
发布于:2002-07-18 22:24
靠,老鼠又谦虚了
|
|
|
15楼#
发布于:2002-07-18 22:25
浪费时间么,怎么定义的
|
|
16楼#
发布于:2002-07-18 22:26
呵呵!我是什么都不会,学C++到现在还不知道什么是纯虚函数
|
|
17楼#
发布于:2002-07-18 22:27
俺连构造函数怎么用的还没明白呢。动手太晚
|
|
19楼#
发布于:2002-07-18 22:31
呵呵!你什么时候来上课啊?
|
|
上一页
下一页