Habe diesen Source gefunden:
Delphi-Quellcode:
var
lpSecDesc: pointer;
lpACL: PACL;
dwSecurityInfo: DWORD;
begin
GetMem(lpSecDesc, SECURITY_DESCRIPTOR_MIN_LENGTH);
InitializeSecurityDescriptor(lpSecDesc, 1);
GetMem(lpACL, SizeOf(TACL));
InitializeACL(lpACL^, SizeOf(TACL), 2);
SetSecurityDescriptorDACL(lpSecDesc, True, lpACL, False);
dwSecurityInfo:= DACL_SECURITY_INFORMATION;
SetKernelObjectSecurity(GetCurrentProcess, dwSecurityInfo, lpSecDesc);
FreeMem(lpACL);
FreeMem(lpSecDesc);
end;
Und hier noch eine Beschreibung, wie man seinen Prozess unbeendbar macht, die ich auch nicht verstehe:
Zitat:
Get a
handle to the process you want to protect (GetCurrentProcess for the
current process).
Pass the
handle to GetKernelObjectSecurity to get its DACL. Add a Denied
ACE to it specifying the current user's SID (or better yet, the well-known
SID for "Everyone"), and the PROCESS_TERMINATE right. Call
SetKernelObjectSecurity to update the process' DACL.
Nur was bewirkt dieser?