Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизЗапрет на удаление процесса по средвам ACL Найти похожие ветки
← →
Belaev Andrey © (2004-09-01 21:46) [0]Как запретить удалить процесс из деспетчера задачь WinXP по средствам ACL (Access Control List)? Мне нужен конкретный прмер : виде его где - то в нете пол года назад, а щас ищу его - и нету ... :(
← →
clickmaker © (2004-09-02 10:35) [1]SetKernelObjectSecurity()
← →
Belaev Andrey © (2004-09-02 11:19) [2]А что писать в параметре Handle? hInstance процесса не подходит!
← →
clickmaker © (2004-09-02 11:26) [3]
> [2] Belaev Andrey © (02.09.04 11:19)
хэндл процесса. Полученый из OpenProcess или CreateProcess
← →
Belaev Andrey © (2004-09-02 11:35) [4]Делаю так :
Procedure SetProcessSelfSecurity;
Var
SecDescriptor : PSecurityDescriptor;
SecACL : ACL;
hProcess : Cardinal;
begin
GetMem(SecDescriptor, SizeOf(TSecurityDescriptor));
InitializeSecurityDescriptor(SecDescriptor, SECURITY_DESCRIPTOR_REVISION);
InitializeACL(SecACL, SizeOf(SecACL), 2);
SetSecurityDescriptorDACL(SecDescriptor, True, @SecACL, False);
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, hInstance);
SetKernelObjectSecurity(hProcess, DACL_SECURITY_INFORMATION, SecDescriptor);
end;
SetKernelObjectSecurity выдаёт False!
← →
clickmaker © (2004-09-02 11:53) [5]а что выдает SysErrorMessage(GetLastError) ?
← →
clickmaker © (2004-09-02 11:55) [6]и с размером Acl не все так просто. Глянь в MSDN InitializeAcl, там есть алгоритм расчета
← →
Belaev Andrey © (2004-09-02 12:18) [7]SysErrorMessage(GetLastError) ничего не выдаёт! Почему - то даже окошко не вылазиет. С размером ACL - поставил на 4096 - это есть в демке, но вот результат почему - то нулевой.
← →
clickmaker © (2004-09-02 12:26) [8]
> [7] Belaev Andrey © (02.09.04 12:18)
> SysErrorMessage(GetLastError) ничего не выдаёт! Почему -
> то даже окошко не вылазиет
SysErrorMessage не создает окошко.
Если хочешь окошко, то
Win32Check(SetKernelObjectSecurity())
или
ShowMessage(SysErrorMessage(GetLastError))
← →
Belaev Andrey © (2004-09-02 12:29) [9]W32Check выдаёт "неверный дескриптор".
← →
clickmaker © (2004-09-02 12:44) [10]GetMem(SecDescriptor, SECURITY_DESCRIPTOR_MIN_LENGTH);
← →
Belaev Andrey © (2004-09-02 12:53) [11]Вроде разобрался. Если в место hInstance в OpenProcess ставить PID некоторых процесов, то функция выполняется успешно. А как достать собственный PID?
← →
clickmaker © (2004-09-02 13:06) [12]
> [11] Belaev Andrey © (02.09.04 12:53)
> Вроде разобрался. Если в место hInstance в OpenProcess ставить
> PID некоторых процесов, то функция выполняется успешно.
> А как достать собственный PID?
Для собственного тебе OPenProcess делать не нужно. Просто подсунь в SetKernelObjectSecurity GetCurrentProcess
← →
Belaev Andrey © (2004-09-02 16:55) [13]Спасибо! Большое - большое сасибо clickmaker! Очень тебе благодарен за помощ!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c