阅读:2488回复:19
如果复制被别的进程锁定的文件?
问题: 例如Outlook,或者SQL server,在它们启动的时候就会锁定一些文件,不让后续的进程打开。
现在如何复制这些锁定的文件呢? 我知道好像有个办法,就是Volume Shadow Service,可是这个方法好像不支持win 2000。 哪位大侠知道更好的方法? 谢谢! |
|
最新喜欢:rayyan... |
沙发#
发布于:2007-01-23 10:13
找Handle柄关闭之~
嘿嘿~ |
|
|
板凳#
发布于:2007-01-23 12:47
谢谢killvxk
可是这样就会对别的进程产生影响啊 有个程序教Unlocker就是这么做的 |
|
地板#
发布于:2007-01-23 12:59
YES,要么找Handle把Handle复制了,自己读取文件内容,写新文件,思路宽广的很~
|
|
|
地下室#
发布于:2007-01-23 14:46
谢谢killvxk
我想试验一下这个方法。 但是,如何得知一个文件在另外一个进程中的句柄呢? |
|
5楼#
发布于:2007-01-23 14:57
ZwQuerySystemInformation,SystemHandleInformation
|
|
|
6楼#
发布于:2007-01-23 17:19
用DARKSPY拷贝,嘿嘿.....
|
|
|
7楼#
发布于:2007-01-23 19:13
用了wowocock 的Darkspy,的确能复制
能告知方法吗? 谢谢 |
|
8楼#
发布于:2007-01-23 20:39
用那个Mm×××函数不就可以了么?!
|
|
9楼#
发布于:2007-01-23 21:12
这里也多谢wangkaicj
只是本人才浅,能否给个稍微详细一点的提示? 谢谢! |
|
10楼#
发布于:2007-01-23 21:31
绕过IO管理器即可.
|
|
|
11楼#
发布于:2007-01-24 08:30
能不能读或者写,都是在ZwReadFile()/ZwWriteFile()里边判断的,如果你直接向FSD发出IRP_MJ_READ/IRP_MJ_WRITE请求,饶过ZwReadFile()/ZwWriteFile()基本上就OK了。
|
|
12楼#
发布于:2007-01-24 10:24
引用第11楼slwqw于2007-01-24 08:30发表的“”: 直接给FSD发irp也不能读写被占用的文件,因为你open file object一样需要用到IoCreateFile等,会对文件句柄作检测,不过MMxxxx应该该可以 |
|
|
13楼#
发布于:2007-01-24 10:41
引用第12楼WQXNETQIQI于2007-01-24 10:24发表的“”: 恩,有道理,看来是比较麻烦 |
|
14楼#
发布于:2007-01-24 11:02
请教slwqw:
mmXX函数如何使用来复制文件,能否给个详细一点的方法? |
|
15楼#
发布于:2007-01-24 12:20
最好还是用老V的方法吧
|
|
|
16楼#
发布于:2007-01-24 15:52
老V是哪位呀?
Killvxk? |
|
17楼#
发布于:2007-01-26 10:12
一般来说,这些文件是可以用FILE_READ_ATTRIBUTES打开的,所以可以用此得到FileObject,然后构造irp去读,对于不能用FILE_READ_ATTRIBUTES打开,那么还可以复制句柄、shadow volume copy等等。
|
|
18楼#
发布于:2007-01-31 03:57
老天,原来有这么多函数可以实现啊。
我当初不知道这些方法,自己解析了FAT和NTFS,痛苦死了。 |
|
19楼#
发布于:2007-03-26 20:48
受益非浅,需要学的东西真多
|
|