首页
社区
课程
招聘
[求助]求教,如何隐藏FileDisk生成的虚拟磁盘,要求在我的电脑里面看不到就行
发表于: 2012-10-25 11:37 6811

[求助]求教,如何隐藏FileDisk生成的虚拟磁盘,要求在我的电脑里面看不到就行

2012-10-25 11:37
6811
如题:请教一下各位,用FileDisk的源码虚拟出来一个磁盘(X:)

要求这个X盘在“我的电脑”里面不可见,但是并不影响自己的进程访问磁盘中的文件

用雪兔看了一下EST的文件外发,发现他们是通过驱动层Hook,NtQueryInformationProcess 这个函数来实现的,现在的问题是要支持x64位系统,Hook肯定是不可行的,

请问有没有别的什么方法,麻烦做过的兄弟给点建议或思路,不胜感激!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 8188
活跃值: (2842)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
DeviceIoControl  FSCTL_SET_REPARSE_POINT,我试过这么干
2012-10-25 13:19
0
雪    币: 558
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼上的回答,这个是直接在应用层发送FSCTL_SET_REPARSE_POINT就可以了?
还是需要在我的虚拟磁盘驱动里面,对这个DeviceIoControl 进行处理?

刚才搜索了一下,这个IoControl是用来重定向文件夹的,好像跟我的问题没什么关系啊
2012-10-25 13:59
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Filedisk.sys是映射不了盘符的,盘符的映射由Filedisk.exe完成,主要函数有DefineDosDevice,SHChangeNotify。DefineDosDevice是定义新盘符到虚拟盘设备的关联,SHChangeNotify是通知系统新盘符的存在,如果这两个函数都去掉,Filedisk.sys虚拟出来的盘是没人知道的,只能用符号链接去打开
2012-10-25 14:27
0
雪    币: 558
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我试过如果不调用SHChangeNotify,刷新一下我的电脑,盘符还是会出现的
至于不调用SHChangeNotify,而是在驱动层直接创建一个符号链接,不知道这样是否可以作为一个磁盘来访问,我等会去试试
2012-10-25 14:31
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
XP下貌似调不调SHChangeNotify都没关系, 关键是DefineDosDevice,这个要去掉。
2012-10-25 14:55
0
雪    币: 558
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
解决了,思路如下:

先在IoCreateDevice时,创建一个符号链接,形如:"\\\\DosDevices\\FileDisk"
然后应用层通过符号链接,"\\\\.\\FileDisk",来创建和修改虚拟磁盘里面的文件,例如:"\\\\.\\FileDisk\\test.txt"
这样的话,在我的电脑里面不显示盘符,但是还可以供应用程序访问,目的达到。
2012-10-26 17:20
0
雪    币: 16
活跃值: (527)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请问一下你这个,驱动和程序跑起来之后,在我的电脑下自动显示盘符吗,我的只能用进程访问
2017-11-26 10:03
0
雪    币: 307
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
1
最后于 2018-5-25 14:48 被冰栈编辑 ,原因:
2018-5-24 15:33
0
雪    币: 307
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
搞定
最后于 2018-5-25 14:48 被冰栈编辑 ,原因:
2018-5-25 09:16
0
游客
登录 | 注册 方可回帖
返回
//