阅读:1733回复:10
想做一个文件驱动,遇到困难,请高手指教,急。。。。
我想做一个文件驱动,结合以前做的虚拟目录,用数据库中的内容代替虚拟目录中的文件,当打开虚拟目录中的文件时,实际上读的是数据库中的内容,我现在是这样作的,做一个动态加载的Vxd,是一个FileSystem API Hook,截获 IFSFN_OPEN 和 IFSFN_READ,我用真文件试了一下,在截获 IFSFN_READ 时,我可以将读的内容换成别的数据,我现在想知道,可不可以在截获IFSFN_OPEN 时判断是否是我的虚拟目录中的文件,如果是的话,由我自己来返回一个有效的句柄,而不是写成return (*PrevHook)(pfn, fn, Drive, ResType, CodePage, pir);也就是说,可不可以“骗”操作系统打开的是一个真实存在的文件。另外,这个句柄我怎么来分配,他到底是个什么东西。我刚来,没什么分给,我诚心谢谢各位。
|
|
最新喜欢:![]() |
沙发#
发布于:2002-05-04 14:48
虽然我没做过98下的HOOK,但我在NT 下的经验来看,自己分配HANDLE 是不现实的
|
|
板凳#
发布于:2002-05-04 15:36
怎么这么多人在做ISF的Hook,具体应用是什么?
我知道有: 1、杀毒软件。 2、硬盘保护软件。 3、数据备份。 4、监控软件 等,是不是还有其它应用? |
|
|
地板#
发布于:2002-05-04 16:59
除非是自己维护的RING0 数据库. 放弃这种想法吧.
在9X上RING3->RING0->RING3 有体系问题. 不可能实现的. 具体你可以查这个站的贴子, 看看LU0的主页. 2K/XP下没问题. |
|
地下室#
发布于:2002-05-05 09:40
如果这么做不现实的话,那要达到目的应该怎么做呢,给点建议好吗?是不是要注册自己的一个驱动,自己写FS_OpenFile等东西呢。
|
|
5楼#
发布于:2002-05-05 11:22
实际上这么做并非不现实,你实际上作的是文件系统的设备驱动程序,不是其他驱动程序。对于Windows系统微软没有给除美国与加拿大以外的国家提供文件系统驱动程序的DDK,在UNIX系统下我做过并行文件系统,如果需要,给俺加点专家分,和我在E-Mail中详细讨论,我的E-Mail wangqins@sina.com wangqins@163.net :) :) :)
|
|
6楼#
发布于:2002-05-05 11:24
不给分也可以讨论。
|
|
7楼#
发布于:2002-05-05 15:35
NT的设计者出身于DEC. NT的核心体系来源于DEC UNIX. 甚至有人说NT就是一种UNIX.
NT下我做过, 大约推出UNIX下可以做出来. wangqins兄弟说UNIX下搞定过, 那就确实行. 对于9X, 和上面的前提不一样. 不做这种无畏的努力较好. 建议各位看一下下面的贴子. http://www.chinawolf.com/~lu0/sys/20010629.html http://www.driverdevelop.com/forum/viewthread.php?tid=6160#pid29778 我做的时候, 就是以不相信这写结论为前提考虑的. 失败也会有收获.看你如何选择. |
|
8楼#
发布于:2002-05-22 21:15
看来是真的不行了,我在 IFSFN_OPEN 和 IFSFN_SEEK 时 填写一些必要的数据后让返回pir->ir_error返回NO_ERROR,结果还真\"骗\"得Notepad 打开了一个不存在的文件,但当调用Ring 3 APC 时,我读另一个文件时会发生重入
|
|
9楼#
发布于:2002-06-23 15:50
zhanghk 大侠能否讲一下虚拟目录的实现思路?
谢谢! |
|
10楼#
发布于:2002-06-23 15:55
我想做一个文件驱动,结合以前做的虚拟目录,用数据库中的内容代替虚拟目录中的文件,当打开虚拟目录中的文件时,实际上读的是数据库中的内容,我现在是这样作的,做一个动态加载的Vxd,是一个FileSystem API Hook,截获 IFSFN_OPEN 和 IFSFN_READ,我用真文件试了一下,在截获 IFSFN_READ 时,我可以将读的内容换成别的数据,我现在想知道,可不可以在截获IFSFN_OPEN 时判断是否是我的虚拟目录中的文件,如果是的话,由我自己来返回一个有效的句柄,而不是写成return (*PrevHook)(pfn, fn, Drive, ResType, CodePage, pir);也就是说,可不可以“骗”操作系统打开的是一个真实存在的文件。另外,这个句柄我怎么来分配,他到底是个什么东西。我刚来,没什么分给,我诚心谢谢各位。 如果要实现这么样的虚拟目录该怎么实现呢: 这个目录中的子目录和文件的所有信息都存放在一个镜像文件中, 类似虚拟光驱和虚拟磁盘的 谢谢 |
|