我有一个问题,我有一个文件打开了其他进程,这个进程在CreateFile
非文件共享中定义,然后我有其他应用程序,我想从这里读取数据
同时提交文件,但该怎么办。
我无法在第一个应用程序中更改文件共享。 我可以使用计算机管理员权限,我可以对系统进行更改,但如果可以通过代码完成此问题,“代码”解决方案可能会更好。
任何人都可以帮助我吗?
答案 0 :(得分:1)
如何使用EasyHook并将API挂钩到CreateFile例程,实际上,您的代码将拦截API并可能更改dwShareMode
参数以使其按位FILE_SHARE_READ或FILE_SHARE_WRITE ie(FILE_SHARE_READ | FILE_SHARE_WRITE)并调用原始钩子以允许CreateFile正常工作......
答案 1 :(得分:1)
如果您有足够的权限,请使用备份API。否则,请注意这些标志存在是有原因的。如果某人禁用了共享,则会被禁用。
您想拨打BackupRead
,MSDN会注意以下内容:
备份 应用程序必须有权访问 系统级访问控制设置, 必须是ACCESS_SYSTEM_SECURITY标志 在dwDesiredAccess中指定 传递给CreateFile.value的参数值传递给CreateFile。
传递给CreateFile的参数值。
答案 2 :(得分:1)
其中一个选项是使用我们的RawDisk产品,它可以让您绕过系统安全限制和打开文件,这些文件已经完全打开或者您没有访问权限。请注意,安装RawDisk本身需要管理员权限,因此RawDisk不能用于入侵其他计算机。
另一种选择是使用备份API,即上面提到的BackupRead()Windows API函数。执行google search for BackupAPI不仅会为您提供此功能的说明,还会为您提供有关使用此备份API所涉及的内容的若干评论