为什么我的Flash帮助程序进程无法在AppData \ LocalLow中创建日志文件?

时间:2014-03-29 19:21:51

标签: winapi

以下代码在沙盒插件中失败,根据Process Monitor,错误是ACCESS_DENIED。

::PathCchAppend(logDirectory, _MAX_PATH, L"xxxxxxxx.log");
logFile = ::CreateFileW(logDirectory, FILE_GENERIC_READ | FILE_GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);

WCHAR logDirectory[_MAX_PATH+1]变量包含正确的路径,使用进程监视器确认(没有未转义的路径)。

icacls证明目录

上存在低完整性的强制访问标签
C:\Users\XXXXXX\AppData>icacls LocalLow
LocalLow NT AUTHORITY\SYSTEM:(OI)(CI)(F)
         BUILTIN\Administrators:(OI)(CI)(F)
         XXXXXXXXXXXX:(OI)(CI)(F)
         Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

Successfully processed 1 files; Failed processing 0 files

AppData \ LocalLow目录不是从低完整性(沙盒)代码进行日志记录的正确位置吗?什么可能导致失败?

实际上,此代码已加载到Flash插件中。对于低完整性过程,Flash的沙盒层是否会拒绝比正常情况下更多的文件系统访问? It says

  

我们发现我们的沙盒进程需要使用以下SID访问操作系统资源:BUILTIN \ Users,Everyone,用户的登录SID和NTAUTHORITY \ INTERACTIVE。对于从用户继承的任何其他SID,我们设置deny-only属性以禁止进程仅基于该SID访问资源。

用户登录SID"用户登录SID"应该授予访问这个位置的权利,对吗?

我甚至提前创建了日志文件,使用icacls验证了它具有低完整性标签,CreateFile仍然失败。

0 个答案:

没有答案