Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вандальные юзеры [Win95/98]


Страницы:   1 2

Format ©   (2002-10-26 22:08:00) 

Приветствую! Пишу прогу(и) типа клиенты-сервер для админства в комп. классе. И на всех машинах стоит FAR в надежде на то, что не найдутся умные сволочи (учереждение "обязывает"), которые догадаются с помощью него отрубать моего клиента в списке процессов (который в FAR"e).
Дак вот, к чему я это. Какие средства (программные)существуют для защиты от отрубания проги? (понятно, что 100%-ной защиты нет).
Удалять FAR отвергается, т.к. это уже почти сделано.


Filat   (2002-11-15 10:26:00) [1]

Я когда то работал в институте, тоже были проблемы, что юзера то проги поставят, то экран навернут, то ярлыки, в общем все как обычно.
Выход нашли, поставили poledit (Police Editor) от идёт с NT.
Всё было классно, но тоже через FAR можно убить.
На мой взгляд проще поставить 2к и не выёживаться, Делаешь контролёр домена, в нем заводишь юзеров, у каждого свои права, свои настройки и т.д..... Не панацея, но всё же.


DOOMin   (2002-11-05 13:49:00) [2]

Если NT, то пишется сервис, который никто не прибьет (к вопросу о Shutdown на OnClose не прокатит, т.к. при KillProcess этого события не будет). А если 9х, то тут пролетала дока, о том как скрыть свой процесс от функции Списка процессов


Tano   (2002-10-31 22:51:00) [3]

2DVM: снятие процесса - далеко не всегда его корректное завершение (иначе задача сводилась бы к тривиальной)


DVM   (2002-10-31 13:15:00) [4]

делай ShutDown при завершении работы своей проги и всего делов то
А насчет explorera то он делает несколько попыток запуститься и если его все разы прибивают то он больше не запускается.


mad progman   (2002-10-31 13:14:00) [5]

Если стоит NT то тада сервис писать надо. Если 9х и подгружен Explorer то тада мона написать DLL которую будет подгружать сам Explorer и чтобы она отслеживала клиентский процесс, например спомощью мютекса.

Здесь как написа DLL:
http://delphi.mastak.ru/articles/dll_use/index.html


Alexec   (2002-10-31 11:48:00) [6]

Все это лажа, я год с этим бился и в итоге поставил 2000 винду, написал под нее прогу и все стало на мази.


Slym   (2002-10-31 06:09:00) [7]

Да... аттачить длл к експлореру можно изменением таблицы импорта (самый надежный вариант "нет ДЛЛ - нет вам эксплорера") и если это для вас проблема то в реестре :)


Slym   (2002-10-31 06:04:00) [8]

Почему бы не запихнуть весь код в ДЛЛ и не прицепить этот ДЛЛ к Експлореру? Процесс получается Експлорер и выгружать его бесмысленно :), он всеравно запустится :(...
В ддл на процесс аттач креатищъ окно, поток обработки сообщений, и отслеживаещъ 1 инстанцию (а то если експлореры запускаются каждый в своем потоке, то прога твоя тоже может N раз запустится)
Дерзай


Reindeer Moss Eater   (2002-10-30 19:27:00) [9]

Для начала надо чтобы "неубиваемая прога" была запущена.
Например я загрузился в безопасном режиме.


sndanil   (2002-10-30 19:00:00) [10]

Как-то раз написал "неубиваемую" прогу следующим образом:
прога была отладчиком для всех процессов в виндовсе... соответственно при использовании на ней что-то типа TerminateProcess приводило к тому, что винда закрывала вместе с моей прогой и все остальные процессы так как они были дочерними...


Reindeer Moss Eater   (2002-10-30 12:30:00) [11]

Защищать от локального юзера компьютер с win9x - бесполезно.
Какие бы волшебные и неубиваемые процессы вы ни придумали.


2:5071/66.666   (2002-10-30 12:12:00) [12]

Хм... А почему никто про сервисы не вспомнил? Или там все-таки только 9х стоят?


Koster   (2002-10-28 07:24:00) [13]

Чуть не забыл, если у процесса есть окна то по ним можно узнать ProcessId. Тогда желательно перехватить функцию TerminateProcess и запретить сносить процесс (можно даже сообщение злое при этом показывать!) кстати вообще достаточно только этого..


Koster   (2002-10-28 07:21:00) [14]

Win95/98? Ну так лезем в исходники bo2k и маскируем процесс путем перехвата ToolHelp функций. (там это вроде относительно просто сделано). И фиг кто процесс увидит, не то что выгрузит. Вариант проходит если прога загружается с самого начала, т.к. перехват реализован изменением таюлицы экспорта kernel32.dll


Геннадий   (2002-10-27 19:26:00) [15]

Я под WinME такое думал.

Скрыть прогу из CTRL-ALT-DEL/ALT-TAB. А в событии OnClose пишем WinExec(PChar(Application.ExeName)...)
Программка должна быть прописана в автозагрузки реестра. Если это возможно, то при завершении работы ОС - проверь есть ли ссылка на запуск программы в реестре. Если нет - восстанавливаем.

Под Win2K не знаю... может подойдёт?


TTCustomDelphiMaster   (2002-10-27 19:10:00) [16]

Работает только в Win9x

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
ShellExecute(0, nil, PChar(Application.Exename), nil, nil, SW_SHOWNORMAL);
end;


Format   (2002-10-27 16:10:00) [17]

Senka (27.10.02 09:48) Так сделано уже сразу, иначе не видать бы мне клиента вообще!

Pat © (27.10.02 10:13) К моему сожалению, админ только я там один, а появляюсь я там раз в три дня. Но можно над этим подумать.

RRoman (27.10.02 10:39), Tano (27.10.02 11:00)
Тоже способ, но, опять же, на определённую аудиторию.

Мда... Не густо...

Всем спасибо.


NiaSoft   (2002-10-27 12:56:00) [18]

>Два процесса одновременно отрубить невозможно (по крайней мере трудновато :)). Может поступить как обычно делается в таких случаях - пишется два процесса друг за другом следящие, пропадает один, другой его запускает и т.д.
Проверено что ФАР запросто вырубает два процесса подряд, и друг друга они запускать не успевают (хотя можно попробовать ставить приоритет реального времени для одного процесса который только ждет, однако в этом случае все будет зависеть от порядка убиения).


Tano   (2002-10-27 11:00:00) [19]

Как вариант решения проблемы вцелом - замаскировать имя под что-то стандартное (типа PowerProfile - нужно только для ноутбука и я его всегда убираю из загрузки).
Если дети просто все подряд выгружают, то лучше всего сделать как говорит RRoman, но тогда это не продвинутые, а отмороженные господа - сажай их в Pascal под DOS 8-(
Прога твоя наверно контролирует что-то, что любят скрывать :-)


Anatoly Podgoretsky   (2002-10-27 10:55:00) [20]

А эти два твоих процесса суперскоростные, в состоянии отработать при вырубании друг за другом без паузы


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо