首页
社区
课程
招聘
[求助]急,麻烦大家了。再次感谢。系统就弹出"是否格式化"的提示
发表于: 2013-1-30 07:43 6669

[求助]急,麻烦大家了。再次感谢。系统就弹出"是否格式化"的提示

2013-1-30 07:43
6669
一个USB驱动程序在win7以上的操作系统中,一插入特定格式的U盘,系统就弹出"是否格式化"的提示,我想用文件过滤驱动将它给去掉,我加载自己的文件驱动后,当插入U盘时能中断到 case IRP_MN_MOUNT_VOLUME: 上,请问我下步该怎么做呀?

是不是应该用磁盘过滤驱动,修改U盘的属性呀?
谢谢

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好牛哇。。。
2013-1-30 07:54
0
雪    币: 3373
活跃值: (1368)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
看下这篇文章,我从一个站点找到的。不知道能不能帮到你。
This is a common problem for filter drivers trying to query the name of a file object.IIRC, when you call ObQueryNameString for a file object, it calls the query name method on the file object type. That method is implemented by the function IopQueryName which in turn calls IopQueryXxxInformation. If the file was opened for non-overlapped IO, the default for WIN32, IopQueryXxxInformation tries to synchronize the name query--IRP_MJ_QUERY_INFORMATION--with other operations on the file object, such as the IRP_MJ_CLEANUP you are filtering. This synchronization is done by treating the KEVENT Lock field of the file object like a mutex. Because ZwClose already locked the file object prior to your filter receiving the IRP_MJ_CLEANUP, and a KEVENT has no concept of recursive acquisition, you are experiencing a deadlock in IopQueryXxxInformation when it tries to lock the file object.I suggest you build the IRP_MJ_QUERY_INFORMATION with a FileInformationClass of FileNameInformation, and send it yourself. This will bypass acquiring the file object's lock, and the FSD will do the necessary synchronization using its FCB resources.

还有一个是看雪的文档的,里面是解释了下关于文件系统的。http://bbs.pediy.com/showthread.php?t=87741希望对你有用
2013-1-30 09:58
0
雪    币: 4817
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
解决问题,应该查明问题来源,windows弹出格式化的原因就是因为没有文件系统能识别他,最后他就用了RAW文件系统接管他,然后弹出格式化对话框(应该是这个原因,没有深究)。如果你不想他弹格式化对话框,有两种办法,一种是让某个文件系统能够识别他,二是用自己的文件系统驱动去识别他(不是过滤驱动),其他的办法,我没有想到(你也可以尝试HOOK掉这个对话框的弹出等等,其实挺多的,我的办法是从源头解决的,呵呵)
2013-1-30 10:02
0
雪    币: 69
活跃值: (41)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
给楼上补充几点关于文件系统识别器的几点,供楼主参考:

1.windows存在一个fsdrecognizer,用于识别磁盘的卷格式,一般说来windows系统能识别,FAT,NTFS,CDFS,UDFS这四种.相应的这个文件系统识别器,不提供对卷的文件系统的读写操作。只是实现了IRP_MJ_FILE_SYSTEM_CONTROL对应的例程,用于响应内核针对卷上的文件系统的IRP_MN_MOUNT_VOLUME操作和IRP_MN_LOAD_FILE_SYSTEM操作.

2.其实识别的过程很简单,就是读取磁盘的MBR(/DBR),也就是磁盘头的前512个字节,这里面有一个标志位,用来标识是NTFS,还是FAT,亦或是其他的磁盘格式.

3.如果windows系统不能读到相应的标志位,就会加载raw文件系统,然后就会弹出要求对磁盘进行格式化.

4.要避免弹出这个窗口,请确保磁盘的前512字节被填入了相应的标识符.

#1 关于填写前512字节(FAT格式的)可以参考:
http://www.vxjump.net/files/security_research/file_protect.txt

#2 关于文件系统识别器可以参考:
http://www.vxjump.net/files/security_research/filesystem_research_1.txt
2013-1-30 11:19
0
雪    币: 142
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
系统”格式化提示“和文件系统和操作系统都有关系,在文件系统不能识别的情况下,不同的系统提示会不同,xp下面一般都提示”格式化“,win7.64位下面有时候提示”请将磁盘插入磁盘驱动器“
2013-8-28 09:42
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个我以前写磁盘过滤驱动的时候遇到过,不知道和你出现的问题是不是一样的?
我记得当时是将USB存储设备透明加密,顺带也将文件系统加密了。后来不知怎么搞的无法解密了,此时U盘就无法被识别,就出现这种情况,格式化一次后就恢复正常了
2013-8-28 09:55
0
雪    币: 206
活跃值: (315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个后来我自己搞定了,通过注册一个文件系统来完成的,用这个文件系统判断物理盘,如是自己需要的,就加载它就行了。
2013-9-12 14:41
0
游客
登录 | 注册 方可回帖
返回
//