首页
社区
课程
招聘
[求助]有方法读取一个已被其他进程打开且dwSharemode = 0的文件吗?
发表于: 2015-3-10 23:41 5629

[求助]有方法读取一个已被其他进程打开且dwSharemode = 0的文件吗?

2015-3-10 23:41
5629
一个文件已经被其他进程CreateFile打开,且dwShareMode = 0。
问能有什么方法能读取这个文件的内容呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 70
活跃值: (37)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
复制句柄
2015-3-11 09:03
0
雪    币: 69
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
呼叫进程管理器!
强制结束那个程式。

...暂存档除外
2015-3-11 09:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我是想在不影响其他进程打开的前提下。
2015-3-11 09:40
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在应用层一般来说有两种思路:

1、干掉原句柄,比较常用的手段有杀死原进程,远程关闭句柄,创建远程线程调用CloseHandle

2、复制原句柄,打开进程用DuplicateHandle复制一份即可使用

不影响原句柄使用的话,肯定是第二种方案。

需要注意的是,复制的句柄与原句柄共享文件指针,读取、写入别搞错乱了文件内容
2015-3-11 10:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我试试。
2015-3-11 10:37
0
雪    币: 60
活跃值: (444)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
7
哥你真犀利
2015-3-11 11:33
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
如果使用驱动的话,直接下发IRP读文件内容即可
缺点是也许需要硬编码
2015-3-11 13:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢sidyhe,我通过duplicateHanle实现了。
我将其中的经过梳理了一遍:《有方法读取一个已被其他进程打开且dwSharemode = 0的文件吗?》
http://blog.csdn.net/misterliwei/article/details/44228917

不当之处,请指正。再次感谢。
2015-3-12 22:42
0
游客
登录 | 注册 方可回帖
返回
//