Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-86732
S.P.I.R.I.T
2003-01-16 06:03
2003.01.27
Потерял гдето


4-87205
kofman
2002-12-12 00:14
2003.01.27
Как после восстановления проги из трея расположит ее поверх всех?


6-87009
DrOne
2002-11-26 23:50
2003.01.27
О взломе...


3-86694
Вованчик
2003-01-09 11:17
2003.01.27
Bde.pas


4-87184
boa
2002-12-11 08:07
2003.01.27
Как узнать сочетание клавишь для смены раскладки клавиатуры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский