yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:2488回复:19

如果复制被别的进程锁定的文件?

楼主#
更多 发布于:2007-01-22 16:45
  问题: 例如Outlook,或者SQL server,在它们启动的时候就会锁定一些文件,不让后续的进程打开。
现在如何复制这些锁定的文件呢?
  
   我知道好像有个办法,就是Volume Shadow Service,可是这个方法好像不支持win 2000。
   哪位大侠知道更好的方法?
   谢谢!

最新喜欢:

rayyang2000rayyan...
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-01-23 10:13
找Handle柄关闭之~
嘿嘿~
没有战争就没有进步 X3工作组 为您提供最好的军火
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-23 12:47
谢谢killvxk
可是这样就会对别的进程产生影响啊
有个程序教Unlocker就是这么做的
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-01-23 12:59
YES,要么找Handle把Handle复制了,自己读取文件内容,写新文件,思路宽广的很~
没有战争就没有进步 X3工作组 为您提供最好的军火
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-01-23 14:46
谢谢killvxk
 
我想试验一下这个方法。
但是,如何得知一个文件在另外一个进程中的句柄呢?
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-01-23 14:57
ZwQuerySystemInformation,SystemHandleInformation
驱动开发者 呵呵
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2007-01-23 17:19
用DARKSPY拷贝,嘿嘿.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-01-23 19:13
用了wowocock 的Darkspy,的确能复制
能告知方法吗?
谢谢
wangkaicj
驱动牛犊
驱动牛犊
  • 注册日期2002-01-08
  • 最后登录2014-06-11
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望67点
  • 贡献值0点
  • 好评度66点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-01-23 20:39
用那个Mm×××函数不就可以了么?!
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-01-23 21:12
这里也多谢wangkaicj

只是本人才浅,能否给个稍微详细一点的提示?
谢谢!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
10楼#
发布于:2007-01-23 21:31
绕过IO管理器即可.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-01-24 08:30
能不能读或者写,都是在ZwReadFile()/ZwWriteFile()里边判断的,如果你直接向FSD发出IRP_MJ_READ/IRP_MJ_WRITE请求,饶过ZwReadFile()/ZwWriteFile()基本上就OK了。
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
12楼#
发布于:2007-01-24 10:24
引用第11楼slwqw2007-01-24 08:30发表的“”:
能不能读或者写,都是在ZwReadFile()/ZwWriteFile()里边判断的,如果你直接向FSD发出IRP_MJ_READ/IRP_MJ_WRITE请求,饶过ZwReadFile()/ZwWriteFile()基本上就OK了。

直接给FSD发irp也不能读写被占用的文件,因为你open file object一样需要用到IoCreateFile等,会对文件句柄作检测,不过MMxxxx应该该可以
驱动开发者 呵呵
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-01-24 10:41
引用第12楼WQXNETQIQI2007-01-24 10:24发表的“”:

直接给FSD发irp也不能读写被占用的文件,因为你open file object一样需要用到IoCreateFile等,会对文件句柄作检测,不过MMxxxx应该该可以


恩,有道理,看来是比较麻烦
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-01-24 11:02
请教slwqw:
mmXX函数如何使用来复制文件,能否给个详细一点的方法?
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
15楼#
发布于:2007-01-24 12:20
最好还是用老V的方法吧
驱动开发者 呵呵
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-01-24 15:52
老V是哪位呀?
Killvxk?
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-01-26 10:12
一般来说,这些文件是可以用FILE_READ_ATTRIBUTES打开的,所以可以用此得到FileObject,然后构造irp去读,对于不能用FILE_READ_ATTRIBUTES打开,那么还可以复制句柄、shadow volume copy等等。
Backer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-28
  • 最后登录2009-11-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望15点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-01-31 03:57
老天,原来有这么多函数可以实现啊。
我当初不知道这些方法,自己解析了FAT和NTFS,痛苦死了。
strpic
驱动小牛
驱动小牛
  • 注册日期2006-11-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望238点
  • 贡献值0点
  • 好评度156点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-03-26 20:48
受益非浅,需要学的东西真多
游客

返回顶部