外壳扩展和目录隐藏问题(100分)

  • 主题发起人 主题发起人 longlybug
  • 开始时间 开始时间
L

longlybug

Unregistered / Unconfirmed
GUEST, unregistred user!
Windows系统支持以下7类的外壳扩展功能:
(1)Context menu handlers向特定类型的文件对象增添上下文相关菜单;
(2)Drag-and-drop handlers用来支持当用户对某种类型的文件对象进行拖放操作时的OLE数据传输;
(3)Icon handlers用来向某个文件对象提供一个特有的图标,也可以给某一类文件对象指定图标;
(4)Property sheet handlers给文件对象增添属性页,属性页可以为同一类文件对象所共有,也可以给一个文件对象指定特有的属性页;
(5)Copy-hook handlers在文件夹对象或者打印机对象被拷贝、移动、删除和重命名时,就会被系统调用,通过为Windows增加Copy-hook handlers,可以允许或者禁止其中的某些操作;
(6)Drop target handlers在一个对象被拖放到另一个对象上时,就会被系统被调用;
(7)Data object handlers在文件被拖放、拷贝或者粘贴时,就会被系统被调用。
那么,要通过编写外壳扩展程序来实现在windows下隐藏目录的功能,要用到上面的那一种扩展?


 
当用资源管理器打开一个目录后,进行列目录和文件的操作
该怎么截获呢?
 
可以利用hook对文件的操作进行截获,但列目录操作好像不可以截获吧,除非
使用VXD.
 
以前在CSDN上的vc++中看到有人已经解决了这个问题,可惜没有说明详细的方法。
只是说要看DDK中的IFS的内容,请问哪有关于DDK的光盘有哪些?MSDN光盘上有没有?
可能要用到VXD,但是VXD应该怎么写呢?
这个问题应该是大家都很关注的问题,看过很多论坛上都有这样的帖子,但是都没有
一个完整的解决方法出现,只是很潦草的说说用hook啦,用外壳扩展啦,用VXD啦等等,
希望这次真的能对这个问题进行深入的探讨,最后得出一个结果,然后公布源代码。
 
看了看delphi自带的shlobj.pas, 有些眉目了,大家一起研究啊
 
浅谈一下自己对这几个问题的一点看法:
用com组件实现系统扩展的确看起来是个好主意,但对于隐藏目录的功能,肯怕就无能为力了。
一来它本身对于文件夹的支持有限,二来文件夹的结构有其特殊性,常规的文件方法无法实现。
在NT结构下实现这一点并不难,但在98下因为特别的系统磁盘结构,所以问题复杂了。
如果直接从目录本身动手,那么使用HOOK,VXD,WDM,汇编的类病毒方式就都是迫于无奈了。
但如果我们换个思路,如欺骗式隐藏(如修改注册表等)或者是伪隐藏(将其视作一个文件)
或者不完全隐藏(使用后台监视,动态屏蔽指定文件夹(并非真性隐藏,作技巧性处理))等等方法,
这些都是可以简单实现的,从现有的实现该功能的软件所使用技术来看,无非是以上种种。
在http://byflyer.home.chinaren.com/vcgzs.htm有一些技术文档,希望对你有所帮助!
用VXD实现真性隐藏,本人很有兴趣,将继续关注!
 
关于“用资源管理器打开一个目录后,进行列目录和文件的操作该怎么截获呢?”这个问题。
用HOOK,VXD等等方法无可否认,但太复杂了!
其实用Windows系统的API函数FindFirstChangeNotification即可做到。
 
有道理
怎么我在新编windows api大全里没找到FindFirstChangeNotification函数?
 
找到了,在coreapi里头
我想列目录和文件的操作应该是SHGetFolderLocation,看MSDN里的IShellFolder的内容
API函数FindFirstChangeNotification怎么做到?能不能介绍一下?
 
自己去看吧!不灌水了![8D]
www.tech521.com/show_data.asp?tid=673
 
记得有个ocx控件
 
什么控件?
 
关于命名空间对象
我想到一个思路,windows系统是通过命名空间来存取这里文件,文件夹的,当删除一个
文件或文件夹的时候,就相应的在命名空间里删除这个文件或文件夹的符号,我们是否可以
通过修改windows的命名空间的方法达到目的呢,就是在隐藏一个文件夹的时候,在系统的命
名空间中删除这个文件夹的符号,然后通知系统改变,这样在explorer和command下应该都看
不到该文件夹了,恢复的时候只要在命名空间加入该文件夹的符号,通知系统就可以了.
大家觉得这个方法可行吗?如果可行,那么又该怎样在windows的命名空间删除了添加
对象呢?
 
关注
高手帮忙看看相关帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=755502
 
后退
顶部