1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| DWORD SetPermissions(int pid )
{
DWORD dwErr;
HANDLE hpWriteDAC = OpenProcess( WRITE_DAC, FALSE, pid );
dwErr =GetLastError();
SID world = { SID_REVISION, 1, SECURITY_WORLD_SID_AUTHORITY, 0 };
EXPLICIT_ACCESS ea =
{
PROCESS_TERMINATE,
DENY_ACCESS,
NO_INHERITANCE,
{
0, NO_MULTIPLE_TRUSTEE,
TRUSTEE_IS_SID,
TRUSTEE_IS_USER,
reinterpret_cast<char*>( &world )
}
};
ACL* pdacl = 0;
dwErr = SetEntriesInAcl( 1, &ea, 0, &pdacl );
dwErr = SetSecurityInfo( hpWriteDAC, SE_KERNEL_OBJECT,
DACL_SECURITY_INFORMATION,
0, 0, pdacl, 0 );
LocalFree( pdacl );
return dwErr;
} |
Partager