阅读:850回复:2
关于98下隐藏文件的一个问题,请大家指点一下
我要实现在98下隐藏文件,参考了FileMon
我的想法是这样,当hook到IFSFN_SEARCH、IFSFN_FINDOPEN或IFSFN_FINDNEXT操作时,比较被操作的文件名和被隐藏的文件名,如果是同一个文件,则hook函数不返回本次操作结果,而是返回再次调用FindNext的结果。 但我在具体实现时碰到一些问题,就是IFSFN_FINDNEXT返回的那个_WIN32_FIND_DATA结构中没有路径信息,我没法在这里判断搜索到的文件是不是被隐藏的文件。用FileMon的方法,在FindOpen时将路径和句柄关联起来,放到哈希表里,FindNext是去查询哈希表,也只能解决一部分问题,如果钩子函数是在文件搜索期间被挂接的,那么哈希表里就不会有Find句柄的信息。我看FileMon的FilemonGetFullPath在哈希表里查不到时,调用了下一层驱动来获取完整路径信息,我照猫画虎,想使用同样的方法,但我的PrevHook总给我返回8号错误,说内存不足,这是怎么搞的?我的98是在虚拟机下执行的,开了128M内存,不可能真的内存不足的。代码基本和FileMon的一样,但总是返回8号错误,郁闷!我虽然怀疑是不是哪个地方的参数没有初始化(比如我提供的缓冲区大小),但FileMon也没作任何初始化啊,奇怪~ 还有,我发现.ifs_hndl->hf_misc->hm_func那八个回调函数地址在IFSFN_FINDOPEN 时是无效的,这是怎么回事?我感觉不太应该啊。 我第一次接触驱动编程,很菜,大家一定要帮忙啊!谢谢了! |
|
沙发#
发布于:2002-12-24 16:12
……
|
|
板凳#
发布于:2002-12-24 22:25
学习~~~!
|
|
|