Форум: "Система";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
ВнизЗащита программы от закрытия в WinNT/2000/XP Найти похожие ветки
← →
DVM (2002-11-01 09:37) [0]Пожалуйста подскажите наиболее надежный способ защитить свою программу от закрытия в WinNT/2000/XP. (с примером кода) Ну хотя бы по примеру Explorera который при закрытии открывается сам опять. Кстати, кто-нибудь знает, он сам себя запускает или его наличие в памяти контролирует другая программа и какая?
Скрывание диалога CTRL+ALT+DEL ключом в реестре не предлагать.
Заранее спасибо за помощь.
← →
Opuhshii (2002-11-01 09:49) [1]защитить свою программу от закрытия... - недавать права пользователю на закрытие твоей программы....
← →
DVM (2002-11-01 09:55) [2]Нет, надо сделать так, чтобы ее не мог закрыть даже администратор (чтобы закрыть можно было бы, например, кнопкой в самой программе, но не другим способом). Я видел таких программ много. Но как сделать?
← →
Song (2002-11-01 11:06) [3]Любой процесс можно закрыть, имея привиллегию DEBUG. Если её нет, тогда можно защитить процесс, дав ему системную привелегию. Такой способ есть, но распространять его не хочется ввиду большого количества вирусописателей.
← →
DVM (2002-11-01 11:24) [4]Я не вирусописатель и не троянописатель. Просто нужно создать прогу которую раз запустив, невозможно потом было снять. Прога предназначена для учебного заведения. Она закрывает собой весь экран и человек не может с нее переключится, но получается что в NT он может снять ее через CTRL-ALT-DEL. Для простоты положим, что человек не администратор. Как (код) запретить ему снять задачу. Хотелось бы также вариант для пользователя администратор, так как иногда надо юзеру находится в системе под администратором, но в этой проге.
← →
Song (2002-11-01 11:41) [5]Ссыла на пример задания привелегии SYSTEM была. Поищите.
Есть ещё способ очень несложный. Намыльте мне, отпишу.
← →
Qpwoe! (2002-11-02 06:50) [6]systemparametsinfo(.......,nil);
procedure onclosequery(...);
begin
canclose:=false;
end;
← →
alexta (2002-11-02 15:52) [7]От администратора так просто не отвязаться, он сможет отрубить любой процесс. Но есть один простой прикол для обхода. Создаеш два процесса и каждий следит за другим. Как только одного убивают, второй загружает его снова. Так твои процессы будут жить долго. Ну и естественно они должны моноторить запущеное приложение.
← →
AngeL B. (2002-11-02 17:00) [8]
> Создаеш два процесса и каждий следит за другим.
:)
suspend(prog1);
suspend(prog2);
kill(prog1);
kill(prog2);
← →
ZZ (2002-11-02 17:08) [9]Да и вот так на 99% сработает :))
kill(prog1);
kill(prog2);
← →
alexta (2002-11-03 00:01) [10]2 AngeL B.
Родной мой! Програмными методами и батниками убъеш кого хочеш. Имеется в виду, что юзер лопух и будет пользоваться TaskManager. Причем не забывай, что процессы которые ты запустил известны тебе, а не пользователю.
Полностью отключить убиение программы в NT нельзя. Поэтому нужно опираться на человеческий фактор.
← →
AngeL B. (2002-11-03 11:44) [11]
> 2 alexta
Я что-то плохо понимаю о каком человеческом факторе в данном случае идет речь, если
> надо сделать так, чтобы ее не мог закрыть даже администратор
Ну, только если админ полный даун.
Но в этом случае называем процесс win32srv.exe, даем системную привилегию и все. :)
А вообще говоря, можно при создании процесса установить соответствующий дескриптор безопасности и отобрать у всех права на процесс.
← →
Gennadiy (2002-11-04 10:44) [12]Могу подсказать такой вариант, где программа запрещает нажатие клавиш CTRL+ALT+DEL:
procedure TForm1.Button1Click(Sender: TObject);
var old: boolean;
begin
old:=True;
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,@old,0);
end;
А данный код обратно разрешает нажатие этих клавиш:
procedure TForm1.Button8Click(Sender: TObject);
var old:boolean;
begin
old:=True;
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,@old,0);
end;
← →
DVM (2002-11-04 10:44) [13]Естественно юзер, сидящий за компьютером не будет писать проги убивающие процессы. Надо лишь, чтобы программу нельзя было убить Task Manager-ом, не выключая его.
В Win9X все скрыть легко (RegisterServiceProcess)
Как скрыть в NT (ну или не скрыть а запретить убить) программно, без дополнительных манипуляций с политиками и пр.
Т. е. надо так: запустил юзеру программу и все - снять ее он больше не может.
Если можно пример кода.
← →
Koster (2002-11-05 09:53) [14]На Хакере был пример как убрать свой процесс из списка процессов именно в 2k-шном Task Manager. Довольно криво сделано, но работает. Называлось что-то вроде "сокрытие процессов в windows 2000"
← →
Song (2002-11-05 10:49) [15]Да, исходник был на Си. Что-то вот уже долго его никто не может переделать.
← →
Mr.MaLoY (2002-11-05 14:10) [16]procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
← →
DVM (2002-11-14 13:10) [17]Для Mr.MaLoY:
Так можно запретить снять приложение, но не процесс.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c