当文件禁用读取共享时,如何使用ReadFile读取数据

时间:2010-09-26 01:17:58

标签: windows security winapi readfile file-sharing

我有一个问题,我有一个文件打开了其他进程,这个进程在CreateFile非文件共享中定义,然后我有其他应用程序,我想从这里读取数据 同时提交文件,但该怎么办。

我无法在第一个应用程序中更改文件共享。 我可以使用计算机管理员权限,我可以对系统进行更改,但如果可以通过代码完成此问题,“代码”解决方案可能会更好。

任何人都可以帮助我吗?

3 个答案:

答案 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所涉及的内容的若干评论