Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Контроль работы приложения на уд. компе   Найти похожие ветки 

 
novice   (2006-06-05 10:51) [0]

Даже не знаю, с какой стороны подойти к этому вопросу, может и постановка его изначально неверна... Суть такова: на n машинах в сети работает некая программа (моя). Юзеры очень не хотят, чтобы она работала и стараются ее убить (на 9х виндах - легко). Недопустить этого, на мой взгляд, невозможно, но проконтролировать хотелось бы. Как я это представляю: моя программа слушает некий порт. Со своей машины я на этот порт засылаю пакет (тут пока не понятно, считать ли приход на этот порт любого пакета успехом и тогда не заморачиваться его чтением, или же критичным установить содержание), программа на него отвечает (или нет). Если ответа нет, но пинг проходит = программу "убили".


 
Сергей М. ©   (2006-06-05 11:18) [1]


> проконтролировать хотелось бы


Предположим, ты тем или иным образом узнал о факте принудительного терминирования юзером процесса твоего подконтрольного приложения.
Что дальше ?


 
novice   (2006-06-05 11:26) [2]

Ну, во-первых, это уже повод для административных мер, во-вторых, повод для сканирования  (тем или иным способом) "уличенного" компьютера на предмет запрещенных программ - моя программа, при попытке юзером запустить таковое, его "убивает" с записью в лог времени, а главное, полного пути исполняемого файла. Но это, вобщем, дело уже пятое относительно моего вопроса.


 
Dmitrij_K   (2006-06-05 11:30) [3]

Сделай так чтобы программу нельзя было убить извесными способами


 
novice   (2006-06-05 11:36) [4]

Не представляю, как это можно сделать для 9х винды.


 
Dmitrij_K   (2006-06-05 11:42) [5]

Попробуй это http://madshi.net madCodeHook
по-моему в 9x но работает


 
Сергей М. ©   (2006-06-05 11:42) [6]


> novice   (05.06.06 11:26) [2]


Если я правильно понял, подконтрольное приложение призвано следить за несанкц. запуском юзером тех или иных программ ?


 
novice   (2006-06-05 11:59) [7]

Dmitrij_K
Посмотрю

Сергей М.
Да


 
Сергей М. ©   (2006-06-05 12:16) [8]

Копай в сторону глоб.хуков.
Сеть здесь вряд ли нужна.


 
novice   (2006-06-05 12:47) [9]

На мой взгляд, проблема здесь двойная:
1. Недопущение прерывания пользователем
2. Контроль (периодический) работы программы.
Если успешно выполнен п.1, зачем, казалось бы п.2?
Программу надо запустить. Сделать это можно несколькими способами - прописать в реестр, поместить в папку автозагрузки, по шедулеру и т.д.
Но, даже если юзер не может ничего сделать с процессом,  в таких системах, как вин9х, ему ничто не помешает выбросить программу из автозагрузки и перезагрузиться. Так что мой вопрос актуальности не теряет.


 
Alarm ©   (2006-06-05 12:55) [10]

стараются ее убить (на 9х виндах - легко)

Может быть стоит подумать над тем, чтобы уйти от Win9k (до некоторой степени "дремучесть"), а под Win2k, WinXP, довольно просто (многочисленными твикерами) ограничить юзеров тем, что считаешь необходимым (разумеется, если ты админ)


 
novice   (2006-06-05 13:02) [11]


> Может быть стоит подумать над тем, чтобы уйти от Win9k (до
> некоторой степени "дремучесть")


Невозможно по определению. Что, кроме 98, можно воткнуть на Cel-600? А на Cel-333? При том, что со своей работой такое железо справляется, и, как результат, замене не подлежит. На железе, которое может, давно уже 2к стоит.


 
Alien1769 ©   (2006-06-05 13:03) [12]


> 1. Недопущение прерывания пользователем
> 2. Контроль (периодический) работы программы.


Програмку желательно разнести на 2 уровни.
Первую загружать резидентно до загрузки Win9x.
Вторая основная - контроль за нужными дейвиями.
Если вторую уничтожат, резидент через некоторое время запустит второй блок.


 
novice   (2006-06-05 13:30) [13]

Alien1769 ©   (05.06.06 13:03)
Это более приемлимый вариант. У меня сейчас происходит так.
У нас в конторе одним из главных инструментов является 1С. Я сделал программку (стартер), которая:
1. запускает 1С
2. Проверяет наличие на лок. компе всех необходимых файлов (ехе, dll, ini). Если юзер их сподобился удалить - копирование с сервера на лок. комп.
3. Запуск программы с лок. компа.
В ярлыках на запуск 1С я подменил строку запуска на запуск стартера (тоже на сервере хранится, куда доступ у юзеров только на чтение). Т.о., запуск программы довольно незаметен для юзера, да и имя в процессах показывается как 1сv77.ехе (настоящий 1с - 1Сv7s.exe). Пока, вобщем, этого хватает, но возможность предотвращения все-таки остается. Вот и хотелось бы иметь контроль.
А насчет загрузки именно перед ОС - не годится, т.к.:
1. На лок. компе необходимые файлы могут осутствовать (напр., удалены хитросделанным юзером в безопасном режиме)
2. Сервер, с которого эти файлы можно скопировать - не доступен (сервер - это только название, обычный комп 2к с 1С и сиквелом, который на ночь выключают, да и свитчи тоже отключают на ночь).


 
saxon   (2006-06-05 13:43) [14]


> novice   (05.06.06 13:30) [13]

А если покапать в сторгону сервиса? Я правда не очень в win9к в этом смысле. Может там чтото есть.


 
tesseract ©   (2006-06-05 13:48) [15]


> А если покапать в сторгону сервиса? Я правда не очень в
> win9к в этом смысле. Может там чтото есть.

сервисы только в NT.

Если 1с, то просто накатай addin и включи его  в "ПриНачалеРаботыСистемы".

Я простосейчас сам такое пишу, может поделюсь когда закончу.
ЗЫ: Я просто хочу там автовыход из 1с корректный сделать.


 
novice   (2006-06-05 13:57) [16]

Ну, сервисы в 9х отсутствуют напрочь. Здесь все упирается в то, что юзер имеет возможность удалить необходимые файлы у себя на компе. Отсюда вытекает необходимость их копирования с сервера, который, в свою очередь может быть недоступен. Короче говоря, поскольку нет 100% уверенности в неотвратимости выполнения программы, должна быть возможность удаленного (т.е., без возможности для юзера вмешаться в этот процесс) контроля за ее работой. Можно, конечно, избрать такую форму контроля: местоположение и имена файлов известны. Если программа запущена, то удалить их нельзя (ексешник и дллку). Т.о., пытаемся их удалить, если удаление прошло успешно - значит программа не в работе (я уж не говорю о б осутствии того, что удалять).


 
novice   (2006-06-05 14:01) [17]

В 1С можно и без ВК обойтись, одним только кодом и у меня, признаться, была мысль это сделать. Но тут есть несколько машин, которые с 1С не работают вообще, я им к другим ярлыкам приклеил.


 
tesseract ©   (2006-06-05 14:02) [18]

А просто программные файлы  на сетевой диск выложить не судьба?


 
Alien1769 ©   (2006-06-05 14:02) [19]


> юзер имеет возможность удалить необходимые файлы у себя
> на компе


Подсказка : есть файлы без которых юзеры не обойдутся!
А дальше дело техники.


 
saxon   (2006-06-05 14:03) [20]


> tesseract ©   (05.06.06 13:48) [15]
> сервисы только в NT.

да уж ... Забыл (давно с ним дело не имею) :)


 
novice   (2006-06-05 14:11) [21]


> А просто программные файлы  на сетевой диск выложить не
> судьба?

Нет, не судьба. Сетевой диск должен быть доступен всегда. В сети нет компьютера, который это может обеспечить. Даже так называемый сервер может быть выключенным, если юзер работает не в 1С.

> Подсказка : есть файлы без которых юзеры не обойдутся!
> А дальше дело техники.

А немного  углубить тему? (у меня уже завертелись мысли на предмет внедрения в системные дллки закладок, бррр).


 
tesseract ©   (2006-06-05 14:17) [22]


> Нет, не судьба. Сетевой диск должен быть доступен всегда.
>  В сети нет компьютера, который это может обеспечить

Не в катил......   А где SQL стоит, и где MD храниться?


 
novice   (2006-06-05 14:32) [23]


> Не в катил......   А где SQL стоит, и где MD храниться?

Все правильно, эска с сиквелом на т.н. сервере. НО! На ночь он выключается, т.е. при включении юзерского компа сет.диск МОЖЕТ быть недоступен,а при выключении т.н. сервера юзерский комп МОЖЕТ быть еще в работе (кроме 1С существуют еще программы, которые не требуют сети, тот же Налогоплательщик, ворд и т.д.).


 
Alien1769 ©   (2006-06-05 15:00) [24]


> А немного  углубить тему?


Хотелось бы узнать какая винда стоит на компах.
Милениум не позволяет имитацию ДОС-режима


 
novice   (2006-06-05 15:04) [25]

98, 2к, хр


 
tesseract ©   (2006-06-05 15:08) [26]

я думал ты имеешь в виду только 1с.


 
novice   (2006-06-05 15:11) [27]


> я думал ты имеешь в виду только 1с.

Если бы не 4 человека, которые 1с не используют в принципе, то она идеально служила бы в качестве загрузчика.


 
Topper   (2006-06-05 16:24) [28]

а в чем проблема то собственно?


 
Alien1769 ©   (2006-06-05 16:27) [29]


> а в чем проблема то собственно

в контроле запуска программ для Win9x


 
Elen ©   (2006-06-05 16:38) [30]


>  Юзеры очень не хотят, чтобы она работала и стараются ее убить

Назови свой экзешеник системным именем (lsass, ssms...). Кажется винда не имеет права закрывать проги с этими именами


 
tesseract ©   (2006-06-05 16:44) [31]


> Назови свой экзешеник системным именем (lsass, ssms...).
>  Кажется винда не имеет права закрывать проги с этими именами


народ , орехи что-то  валом пошли......


 
Elen ©   (2006-06-05 16:45) [32]

Да и еще пропиши ее старт в реестре, а сам на всех компах удали regedit и иже с ним. Тогда юзер не сможет открыть реестр


 
novice   (2006-06-05 16:46) [33]


> Назови свой экзешеник системным именем

Это прокатит в NT, но не в 98.


 
novice   (2006-06-05 16:48) [34]

Еще раз повторю для вновь присоединившихся: нет проблем с w2k и XP. Есть проблемы с Вынь98.


 
tesseract ©   (2006-06-05 16:51) [35]

novice, а отруби ка ты им explorer. Как в клубах - нетути ничего, только рабочую папку оставь.


 
Elen ©   (2006-06-05 16:51) [36]


> народ , орехи что-то  валом пошли......

То есть?


 
tesseract ©   (2006-06-05 16:54) [37]


> То есть?


Не путай сервисы с приложениями, и/или драйверами.

Предупреждение с криком "Стёрли/заменили важный файл" появилась в XP.


 
Topper   (2006-06-05 16:54) [38]

Если я правльно понял, то проблема в том что твою классную программу убивают, а ты бы этого не хотел, так сделай

Идея 1
Сделай в программе по таймеру счетчик своих процессов в системе и если он меньше 2 или 3х, то запуск самого себя до этого количества.

Идея 2
Размести код в dll и внедри его в explorer.exe - юзеры без шела не станут работать, или вообще не поймут что его нужно убивать, кроме того шел обычно сам перезапускается


 
tesseract ©   (2006-06-05 16:58) [39]


> кроме того шел обычно сам перезапускается

в 98 такого ещё нет.

почему бы просто не скрыть программу из task manager-а? не знаешь - не убъёшь. И при закрытии заново прописываться в авторан.


 
Elen ©   (2006-06-05 16:59) [40]


> Не путай сервисы с приложениями, и/или драйверами.

Я и не путаю я так одну прогу назвала и втюхала ее к юзеру он не смог ее закрыть, причем она не мешала уже запущенному lsass.

> Это прокатит в NT, но не в 98.

Для меня Win9k - прошлое и слава богу успешно забытое



Страницы: 1 2 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.03 c
8-1137837125
deamon_t
2006-01-21 12:52
2006.06.25
Алгоритм сравнения двух TBitmap


2-1149670549
Кирей
2006-06-07 12:55
2006.06.25
Как результаты запроса записать в *.xls файл


1-1148025448
QuickFinder
2006-05-19 11:57
2006.06.25
Текстовые файлы огромного размера


3-1146563364
D@Nger
2006-05-02 13:49
2006.06.25
запрет на редактирование в колонке DBGrid


1-1147688524
Tempora
2006-05-15 14:22
2006.06.25
Как определить является ли папка символической ссылкой?