Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
8-1090012783
кактусбел
2004-07-17 01:19
2004.10.10
Как загрузить в Тimage фаилы в форматах tif, png, gif


1-1096272219
Dimastiy04
2004-09-27 12:03
2004.10.10
Расстягивание скинообразной формы приложения


1-1095936668
Kniaz
2004-09-23 14:51
2004.10.10
Работа с файлами


8-1090305304
Алекс
2004-07-20 10:35
2004.10.10
Звуки Windows


1-1096062326
Mishenka
2004-09-25 01:45
2004.10.10
OnClick в StatusBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский