![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как закрыть приложение на удаленном компьютере? [D5, D6, D7]
novice © (2006-05-17 10:17:00)Известен заголовок и имя .ехе, с учетом того, что там вин98?
novice (2006-05-17 15:50:00) [1]Думал над этим - но задание шедулера никуда не спрятать. Вобщем, если применить WMI не получится, то придется скрывать программу в диспетчере, хотя это все-таки не совсем то и при наличии соображалки у юзера он эту защиту обойдет. Основная проблема на тек. момент - не нахожу SDK для винтукея и выше.
Elen (2006-05-17 15:41:00) [2]Значит тебе надо научиться скрывать свою прогу хотя бы в Диспетчере Задач например сплайсингом функций API.
В инете есть много статей на эту тему
novice (2006-05-17 15:34:00) [3]
> Далее CreateNoKillProcess('notepad.exe'); - и если юзер
> не админ он его не закроет никак
Повторюсь, но у меня проблема с Вин98, где разделяемых прав нет. Это первое. Второе, даже в этом случае мою программу надо запускать на удаленном компьютере, я это делаю шедулером при входе в винду (в автозапуске почему-то не получается, но дело не в этом), а значит "особливо продвинутый" может просто отключить задание шедулера или выбросить из автозагрузки - свобода в Вин98 ничем не ограничена.
Elen (2006-05-17 15:23:00) [4]
function CreateNoKillProcess;
const
ACL_REVISION = 2;
begin
result:=false;
if not InitializeAcl(ACL,SizeOf(_ACL),ACL_REVISION)
then; //ShowMessage('InitializeAcl'+#13#10+SysErrorMessage(GetLastError));
if not IsValidAcl(ACL) then exit;
if not InitializeSecurityDescriptor(@SD,SECURITY_DESCRIPTOR_REVISION)
then ;//ShowMessage('InitializeSecurityDescriptor'+#13#10+SysErrorMessage(GetLastError));
if not SetSecurityDescriptorDacl(@SD,true,@ACl,true)
then ;//ShowMessage('SetSecurityDescriptorDacl'+#13#10+SysErrorMessage(GetLastError));
if not IsValidSecurityDescriptor(@SD) then exit;
ZeroMemory(@sa,SizeOf(sa));
sa.nLength:=SizeOf(sa);
sa.bInheritHandle:=false;
// Nnueea ia iao aane?eioi? aaciianiinoe
sa.lpSecurityDescriptor:=@SD;
// Io e iaeiiao, nicaaai iiaue i?ioann n iiauie ao?eaooaie aaciianiinoe
ZeroMemory(@si,SizeOf(si));
si.cb:=SizeOf(si);
if not CreateProcess(nil,EXEProg,@sa,@sa,false,0,nil,nil,si,pinfo)
then ;//ShowMessage('CreateProcess'+#13#10+SysErrorMessage(GetLastError));
result:=true
end;
Далее CreateNoKillProcess('notepad.exe'); - и если юзер не админ он его не закроет никак
novice (2006-05-17 15:11:00) [5]Вобщем-то, именно как клиентская часть - нет. Я нарисовал программку, которая с некоторым интервалом запрашивает список запущенных процессов и, если находит в них процесс, принадлежащий одному из заранее прописанных ексешников, убивает его. На NT'ях все здорово, т.к. юзеры мой процесс выгрузить не могут, а вот в 98-х особливо продвинутые просто убивают его - и все.
Alien1769 (2006-05-17 14:33:00) [6]
> Напомню - вин98, т.е., не дать пользователю отрубить клиента
> я не смогу, а необходимо, чтобы независимо от желаний/возможностей
> пользователя я мог у него завершить приложение, причем с
> другой машины.
А приложение на клиенте тобой написано ?
novice (2006-05-17 13:47:00) [7]
> написать что-то типа небольшого сервера, слушающего определенный
> порт. с функциями получение списка запущенных приложений
> и завершения процесса по названию...
Но в этом случае и клиента размещать на той машинке придется, что меня не совсем радует. Напомню - вин98, т.е., не дать пользователю отрубить клиента я не смогу, а необходимо, чтобы независимо от желаний/возможностей пользователя я мог у него завершить приложение, причем с другой машины.
MetalFan (2006-05-17 13:28:00) [8]
> Мне лично - ни к чему. Я лишь говорю о том, что он мне известен
> - это на случай поиска по заголовкам окон
понятно. мы про разные вещи говорим)
заголовок окна/приложения и заголовок exe...
написать что-то типа небольшого сервера, слушающего определенный порт. с функциями получение списка запущенных приложений и завершения процесса по названию...
MetalFan (2006-05-17 13:27:00) [9]
> Мне лично - ни к чему. Я лишь говорю о том, что он мне известен
> - это на случай поиска по заголовкам окон
понятно. мы про разные вещи говорим)
заголовок окна/приложения и заголовок exe...
написать что-то типа небольшого сервера, слушающего определенный порт. с функциями получение списка запущенных приложений и завершения процесса по названию...
novice (2006-05-17 13:20:00) [10]
> а зачем вам заголовок exe файла?!
Мне лично - ни к чему. Я лишь говорю о том, что он мне известен - это на случай поиска по заголовкам окон.
MetalFan (2006-05-17 13:17:00) [11]а зачем вам заголовок exe файла?!
novice (2006-05-17 13:17:00) [12]Они, конечно, работают, вот только SDK там для NT4.
balepa (2006-05-17 13:12:00) [13]
> novice (17.05.06 12:21) [2]
> Сердцем чую :), что WMI мне поможет, только вот SDK для
> w2k и выше не найду.
А у Microsoft сайты не работают ?
novice (2006-05-17 12:21:00) [14]Сердцем чую :), что WMI мне поможет, только вот SDK для w2k и выше не найду.
Elen (2006-05-17 10:21:00) [15]Если этот exe не служба, помоему то никак
В крайнем случае тебе придется писать свою программу которая бы работала наподобие Remote Administrator