![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SetSecurityInfo в windows nt [D5, NT4, Win2k]
izhalex © (2002-10-14 13:56:00)есть у меня такая проблема может кто и поможет
пытаюсь сделать прогу неснимаемой из диспетчера задач
пишу :
if (InitializeAcl(ACL,SizeOf(_ACL),ACL_REVISION)) and (IsValidAcl(ACL))
then SetSecurityInfo(GetCurrentProcess,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,nil,nil,@ACL,nil);
(сам я в этом не очень рублю, просто взял пример из инета)
так вот, ежели запускаю прогу из win2000, то все катит как по маслу; ежели запускаю из NT - выдает страшную мессагу типа "The procedure entry point RtlSetSecurityDescriptorRMControl could not be located in the dynamic link library NTDLL.DLL" (дословно) и сворачивает.
подскажите плз, могет я где ламерю ...
izhalex (2002-10-31 08:10:00) [1]>ZZ
ну конечно, не все... но какой смысл тогда узверу запускать прогу, которая за ним же будет потом и следить ! :)
ZZ (2002-10-31 00:54:00) [2]Если ты знаешь, службы запускаются автоматически при старте компа
Я - не знаю... И что, прям так все и запускаются?
izhalex (2002-10-30 17:37:00) [3]>ZZ
Если ты знаешь, службы запускаются автоматическипри старте компа
>Fiend
я пробовал такой подход
НО: 1) я в принципе пока не придумал иное применение для сервиса
2) для этого нужно сильно модифицировать прогу
3) у меня эта прога узнает узвера на тачке, а GetUserName в случае сервиса выдает SYSTEM
вот такой вот ГЕМОРРОЙ...
ZZ (2002-10-30 16:11:00) [4]Fiend
НО - уж ее то юзер фиг запустит
Fiend (2002-10-30 14:47:00) [5]а не проще ли сделать вашу "прогу" службой. уж ее то юзер фиг остановит
izhalex (2002-10-30 13:17:00) [6]недавно тут нарыл d6, откомпилил :) все пошло и под нт, но !!! под ней (нт) прога убивается из диспетчера задач ! (а под w2k без привилегий ни-ни). вот таки дела...
izhalex (2002-10-17 13:47:00) [7]>ZZ
насчет мыла - не заметил извини (смотрел тока в анкете :)
о проге - компилил в d5
ZZ (2002-10-17 13:25:00) [8]izhalex
А ты прочитай что написано ZZ © (16.10.02 16:16)после слова E-mail. Это что касается мыла...
Теперь о проге - она ДЕЙСТВИТЕЛЬНО не запускается на NT4 (на 2K не рискнул :)) НО те-же исходники скомпиленные на D6 делают полностью рабочий exe-шник (там раздел импорта функций оооочень сильно отличается от твоей проги и вместо ACLAPI.DLL используется ADVAPI32.DLL (для SetSecurityInfo) и судя по MSDN это правильно. Ты чем компилировал??
izhalex (2002-10-17 11:38:00) [9]> ZZ
а ты посмотри что у тебя в анкете нагорожено про емыл. я конечно сильно сомневался но отправил. не телепаты мы, извини ...
зы отправил письмо по-новому
ZZ (2002-10-17 03:10:00) [10]izhalex
Отослал?? На ifit@mail.ru? Чего-то я ее не получил :(
izhalex (2002-10-16 17:22:00) [11]>ZZ
прогу отослал. проверь глюк - у меня без aclapi.dll не не пашет даже под 2k.
ZZ (2002-10-16 16:16:00) [12]izhalex
В общем, скомпилируй прогу (вызов этой функции) у себя и вышли ее мне (лучше с исходником). Лучше прогу сделать консольной или (если D6) с ран-тайм пакетами. Проверю у себя.
e-mail:ifit(a)mail.ru
ЗЫ. Дополнительного лучше туда ничего не добавлять.. все равно буду тестить на виртуальном компе без сети ;)
Sergey V. Shadrin (2002-10-16 15:24:00) [13]а не проще пользователям политикой запретить прибивать процессы?
izhalex (2002-10-16 14:36:00) [14]> SVM
дак я все так и писал и даже OpenProcess пробовал вместа GetCurrentProcess, а резалт нулевой
SVM (2002-10-16 13:19:00) [15]procedure AppHideNT;
const
ACL_REVISION = 2;
var
ACL : _ACL;
begin
if (InitializeAcl(ACL,SizeOf(_ACL),ACL_REVISION)) and (IsValidAcl(ACL)) then
SetSecurityInfo(GetCurrentProcess,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION, nil, nil, @ACL, nil);
end;
izhalex (2002-10-15 08:52:00) [16]ну не растет кокос и все тута Ж-:<
перепробовал уже и под worksta и под сервером (все под sp5) - ноль. а под 2k пашет (или могет у меня в натуре ntdll.dll под nt кривой посмотри плз сколько он у тебя весит)
ZZ (2002-10-15 01:45:00) [17]Ну проверил... ну работает (по крайней мере запускается :))
WinNT 4.0 Server SP5 (других небыло :))
А 22 машины устанавливаются обычно методом наодномкривоустановилвездескопировал с помощью всяких ghost"ов. Или ты на все 22 машины ОС руками устанавливал? (а может дистрибутив кривой ?)
PS. Вместо GetCurrentProcess лучше использовать OpenProcess(GetCurrentProcessId,...)
izhalex (2002-10-14 17:25:00) [18]дык и на заборе написано ...
а видимо setsecurityinfo или еще какая гадость вызывает процедуру RtlSetSecurityDescriptorRMControl, а вот ее то в nt то видимо и нет :((( А насчет "винду переустанови" ты лихо загнул, у меня 22 тачки под nt и НЕ ПОД ОДНОЙ не пашет ... можешь кстати ради прикола сам попробовать если не лень - это недолго(и сообщи о результате)
ZZ (2002-10-14 16:16:00) [19]или винду переустанови...т.к. все эти функции обязаны работать на NT (и скорее всего работают ;)
InitializeAcl
Windows NT/2000 or later: Requires Windows NT 3.1 or later.
SetSecurityInfo
Windows NT/2000 or later: Requires Windows NT 4.0 or later.
izhalex (2002-10-14 15:00:00) [20]да нет же просто хочу чтобы несознательные юзвери не убивали моего клиента вот и все (сам то я админ)