Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.012 c
15-1148965423
Ega23
2006-05-30 09:03
2006.06.25
С Днём рождения! 30 мая


15-1149173491
DillerXX
2006-06-01 18:51
2006.06.25
GetMemory в DLL


15-1149225152
Priest
2006-06-02 09:12
2006.06.25
Хочу поехать в Ялту


2-1149278751
Vitv
2006-06-03 00:05
2006.06.25
Ошибка при создании потока!!


15-1149208471
TButton
2006-06-02 04:34
2006.06.25
(JS) mouse event в FireFox





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