Форум: "WinAPI";
Текущий архив: 2011.12.11;
Скачать: [xml.tar.bz2];
ВнизКак запустить процесс с привилегиями System Найти похожие ветки
← →
SCL © (2008-12-14 10:16) [0]Как запустить процесс от пользователя System и с привилегиями Системы (как некоторые антивирусы)
← →
Игорь Шевченко © (2008-12-14 13:05) [1]1. Процесс всегда можно увидеть
2. Процесс всегда можно убить
3. Систему безопасности в Windows разрабатывали умные люди.
← →
Leonid Troyanovsky © (2008-12-14 16:31) [2]
> SCL © (14.12.08 10:16)
> Как запустить процесс от пользователя System
Ну, например, через Schedule, если оно от лица System,
то и все им пущеннные будут таковыми.
--
Regards, LVT.
← →
МистерТ (2008-12-15 16:53) [3]Это называется системная служба или сервис.
Но права там далеко не системные.
← →
Eraser © (2008-12-15 18:02) [4]> Как запустить процесс с привилегиями System
вызвать CreateProcess из приложения с правами и привилегиями System.
← →
Fighter (2009-01-03 04:48) [5]Гдето на работе валялся асемблерный исходник который такое делат. доберусь до работы и если вспомню напишу. Вспоминается что там используется функция GetKernelObjectSecurity которая получает SecurityDescriptor. потом следует танец с бубном и CreateProcess
← →
apic (2009-01-29 12:20) [6]Fighter, ждем тебя! Мне тоже интересно...
← →
Eraser © (2009-01-29 16:54) [7]> [6] apic (29.01.09 12:20)
можешь не ждать, а купить книгу Руссиновича, там все описано и даже готовое решение есть http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
← →
user00 (2009-04-10 19:27) [8]Запустить файл как сервис
← →
имя (2009-04-11 06:39) [9]Удалено модератором
← →
Игорь © (2009-04-12 10:33) [10]Вот держи убогую хрень написанную мной
RunAsSystem под 2000, 2003, XP, Vista
http://www.onlinedisk.ru/file/118954/
← →
Riply © (2009-04-29 16:23) [11]> [10] Игорь © (12.04.09 10:33)
> Вот держи убогую хрень написанную мной
Ну не совсем уж и убогая :)
Смотрела бегло, но сразу обратила внимание, на то что ты меняешь секюрити у winlogon.
Конечно это никуда не годится, надо искать другой путь.
(Вариант временно изменить и потом вернуть обратно тож плох).
Так что, если конечно интерес не пропал, дерзайте дальше :)
P.S.
Есть там еще ошибки, но они меркнут в сравнении с описанной выше :)
← →
Игорь © (2009-04-29 17:13) [12]Вот доделанный вариант, PACL winlogon"у назад возвращаеться
function _RunAsSystem_1(ApplicationName: string; CommandLine: string): Boolean;
var
SI: STARTUPINFO;
PI: PROCESS_INFORMATION;
PSD: PPSecurity_Descriptor;
ppDacl: PACL;
hProcess, hToken: Cardinal;
begin
Result:= False;
hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION, False, GetWinlogonPID);
if hProcess <> 0 then
begin
try
OpenProcessToken(hProcess, MAXIMUM_ALLOWED, hToken);
if hToken <> 0 then
begin
if GetSecurityInfo(hToken, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @ppDacl, nil, PSD) = ERROR_SUCCESS then
begin
if SetSecurityInfo(hToken, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, nil, nil) = ERROR_SUCCESS then
begin
CloseHandle(hToken);
hToken:= 0;
OpenProcessToken(hProcess, MAXIMUM_ALLOWED, hToken);
if hToken <> 0 then
begin
try
if ImpersonateLoggedOnUser(hToken) then
begin
ZeroMemory(@SI, SizeOf(SI));
SI.cb:= SizeOf(SI);
if CreateProcessAsUser(hToken, PChar(ApplicationName), PChar(CommandLine), nil, nil, False, CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI) then
Result:= True;
RevertToSelf;
end;
SetSecurityInfo(hToken, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, ppDacl, nil);
finally
CloseHandle(hToken);
end;
end;
end;
LocalFree(DWORD(ppDacl));
LocalFree(DWORD(PSD));
end;
end;
finally
CloseHandle(hProcess);
end;
end;
end;
← →
trix (2009-09-13 00:45) [13]Запустить как сервис. =)
← →
СовестьДМ © (2009-09-13 02:19) [14]Удалено модератором
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2011.12.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c