我这里有一个 修改进程权限代码 可是发现 不能用在 TrustedInstallerTrustedInstaller  = (SID)S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464   = SECURITY_SERVICE_ID_BASE_RID
BOOL EnablePrivilege(LPSTR name)
{
     HANDLE hToken;
     BOOL rv;
     TOKEN_PRIVILEGES priv = {1,{0,0 SE_PRIVILEGE_ENABLED}}
     LoookupPrivilegeValue{
        0,
        name,
        &priv.Privileges[0].Luid
        };
        OpenProcessToken{
               GetCurrentProcess(),
               TOKEN_ADJUST_PRIVILEGES,
               &hToken
        };
        AdjustTokenPrivileges{
          hToken,
          FALSE,
          &priv,
          sizeof priv,
          0,
          0
        };
        
     rv = GetLastError() == ERROR_SUCCESS;
     CloseHandle(hToken);
     return rv;
}void main(int argc,TCHAR **argv)
{
     EnablePrivilege(SE_TIM_ZONE_NAME);
}

解决方案 »

  1.   

    TrustedInstaller又不是特权名称,是个账户名称
      

  2.   

    如果你能获得备份特权和还原特权,就可以使用FILE_FLAG_BACKUP_SEMANTICS调用CreatFile绕过裁决存取列表来打开文件,无需将账户设置为TrustedInstaller
      

  3.   

     EnablePrivilege(SE_BACKUP_NAME);EnablePrivilege(SE_RESTORE_NAME);CreateFile(...,GENERIC_READ|GENERIC_WRITE...,dwFlagsAndAttributes=FILE_FLAG_BACKUP_SEMANTICS
      

  4.   

    还是那两个特权,RegCreateKeyEx的dwOptions=REG_OPTION_BACKUP_RESTORE
      

  5.   

    那这两个函数对应参数吗
    RegOpenKeyEx
    RegQueryValueEx
      

  6.   

    你好
    我现在也在弄关于这个的,不过网上的代码好像都不行,能否你的测试代码,发我一份。谢谢。[email protected]