Работа exe определенное время

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 23.01.2009 (Пт) 20:24

Зависит от того, насколько сильно процесс хочет жить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

imserg
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 17.01.2009 (Сб) 21:49

Re: Работа exe определенное время

Сообщение imserg » 23.01.2009 (Пт) 23:41

Всем спасибо прогу написал, все работает.
Возник другой вопрос ,если в будущем я захочу изменить убиваемое exe,не переписывая код
Shell "Cmd /x/c taskkill /f /im Client.exe", vbHide
Как сделать чтобы имя exeшника вставлялось из TextBox
что то вроди этого
Shell "Cmd /x/c taskkill /f /im Text1.text", vbHide

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Работа exe определенное время

Сообщение iGrok » 23.01.2009 (Пт) 23:43

Shell "Cmd /x/c taskkill /f /im " & Text1.Text, vbHide
label:
cli
jmp label

imserg
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 17.01.2009 (Сб) 21:49

Re: Работа exe определенное время

Сообщение imserg » 23.01.2009 (Пт) 23:47

Спасибо!

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 24.01.2009 (Сб) 14:44

Что-то у меня
Shell "Cmd /x/c taskkill /f /im Winamp.exe", vbHide
не работает. И вообще никакой exe закрыть не может, что бы вместо винампа не подставлял.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 24.01.2009 (Сб) 15:00

Это крайне неправильный способ убивать задачи в рамках данной проблемы. Это хороший способ для админа, который перед taskkill сделал tasklist, и четко представляет, что запущено и какое у кого имя образа.

Неправильный потому, что для индентификации убиваемого процесса используется имя образа. Во-первых, оно может поменяться, во-вторых, оно может совпасть с чем-нибудь, что не дожно быть убитым.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 24.01.2009 (Сб) 16:48

А если искать по имени класса?
Код: Выделить всё
Option Explicit
 
Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As _
String, ByVal nMaxCount As Long) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Sub Command1_Click()
Dim win_hWnd As Long
Dim class_name As String

win_hWnd = FindWindow(vbNullString, Text1)
' FindWindow - ищет все окна, которые
' соответствуют имени класса окна и(или) его заголовку
' в win_hWnd содержится дескриптор найденного окна
' Дескриптор - уникальное целое число, которое
' присваивается объекту
' vbNullString, чтобы игнорировать класс окна

class_name = Space(255)' место под имя класса
GetClassName win_hWnd, class_name, 255
' GetClassName - возвращает имя класса, которому
' принадлежит окно
' в class_name содержится имя класса
class_name = Left(class_name, 255)' удаляю лишние пробелы
Text2 = class_name' отображаю имя класса
End Sub
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 24.01.2009 (Сб) 16:56

То ... ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 24.01.2009 (Сб) 19:13

Хакер писал(а):То ... ?

Если переименовать игру.exe в игра1.exe, то это Shell "Cmd /x/c taskkill /f /im игра.exe", vbHide уже не сработает? И опять играй сутками.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 24.01.2009 (Сб) 19:19

Не сработает. Но мой постинг "То ... ?" относился к твоему постингу с фразой "А если искать по имени класса?".

Потому что эта фраза выглядит незаконченой, и предполагается, что в ней будет вторая часть, например:

—Это крайне неправильный способ убивать задачи в рамках данной проблемы. Это хороший...
—А если искать по имени класса, то это будет хорошим способом?

или
—А если искать по имени класса, то как из hwnd получить processid?


А в том виде, котором она сейчас, непонятно, к чему вообще написана эта фраза.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 24.01.2009 (Сб) 20:34

Да. Куда ни кинь -всюду клин. А есть ли универсальный подход к проблеме закрытия программы? Чтоб как не переименуй, а все равно закрывало бы? А что если такое средство против переименования exe: при запуске программа запоминает папку, где нужный exe находится и исходя из этого любой exe c любым именем будет гасить? Правда если туда бросить еще какой exe, то произойдет конфуз :D Хотя можно запомнить объем нужного exe или по дате создания файла и тогда уже подставной exe вредить не будет.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 24.01.2009 (Сб) 21:25

Да их куча, этих подходов. Но все можно обойти.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 25.01.2009 (Вс) 12:36

Хакер писал(а):Да их куча, этих подходов. Но все можно обойти.

Согласен. Даже майкрософт свою продукцию не может защитить, но я имею ввиду среднестатического пользователя, который не владеет дизасемблером и в состоянии сделать простые операции с файлами как то переименовать, подменить, переместить.
Главное, ребята, сердцем не стареть...

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 27.04.2010 (Вт) 15:54

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

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Работа exe определенное время

Сообщение iGrok » 27.04.2010 (Вт) 16:29

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

Топорно. Недавно проскакивала тема с отслеживанием запуска процессов.
label:
cli
jmp label

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Работа exe определенное время

Сообщение jangle » 27.04.2010 (Вт) 17:05

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


Я бы сделал так. Программа защиты, прописывает в секцию импорта контролируемого приложения ссылку на свою Native DLL. В этой DLL проверять время дозволенной работы и в случае чего, убивать вызвавший ее процесс. Таким образом проверка работает только во время запуска контролируемого приложения. И не грузит машину. Ну еще надо отобрать у пользователя права на инсталляцию софта.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Работа exe определенное время

Сообщение Денис » 28.04.2010 (Ср) 8:14

jangle писал(а):Ну еще надо отобрать у пользователя права на инсталляцию софта.


C этого надо было начать (еще автору топика). И этим же закончить.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 28.04.2010 (Ср) 13:19

jangle писал(а):Я бы сделал так. Программа защиты, прописывает в секцию импорта контролируемого приложения ссылку на свою Native DLL. В этой DLL проверять время дозволенной работы и в случае чего, убивать вызвавший ее процесс.

Хотелось бы пример. Вариант интересный. А если отслеживать по названию окна? Это будет удобней со стороны того, что если и переустановил прогу, то название окна остается прежним. Только вот как включить следящий режим? По каким параметрам? По Monitor_Change() :) Например двигаешь мышкой и идет команда на слежение за названием окна?
Как это вообще то научно делается?
PS. Все сделал по поводу отслеживания. По координатам движения мышки. Если совпадают цифры, то включается команда поиск окна.
Главное, ребята, сердцем не стареть...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Работа exe определенное время

Сообщение Twister » 29.04.2010 (Чт) 6:35

Боюсь выразиться в стиле Хакера, но вариант это черезжопный. Какая еще секция импорта? А если приложение проверяет свой CRC? Модифицировать файлы на диске не рекомендуется в принципе, так как файл может быть перенесен на другую систему, где связанной dll может не оказаться.
А я все практикую лечение травами...

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Работа exe определенное время

Сообщение Vova_2581 » 29.04.2010 (Чт) 17:06

Saturn.65 писал(а):А если отслеживать по названию окна?

А если отслеживать по сигнатуре?
К тому же в реестре есть ветка которая хучит запуски всех exe.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Работа exe определенное время

Сообщение Twister » 29.04.2010 (Чт) 19:20

Vova_2581 писал(а):А если отслеживать по сигнатуре?
К тому же в реестре есть ветка которая хучит запуски всех exe.

1. Может оказаться так, что для разных билдов сигнатуры будут разниться.
2. Нет и небыло такой такой ветки в реестре. Тем не менее, я, кажись, понимаю что ты имеешь ввиду. Прошу лишь точнее выражаться дабы не вносить сумятицу в умы читателей.
А я все практикую лечение травами...

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Работа exe определенное время

Сообщение Vova_2581 » 29.04.2010 (Чт) 20:17

Twister писал(а):
Vova_2581 писал(а):А если отслеживать по сигнатуре?
К тому же в реестре есть ветка которая хучит запуски всех exe.

1. Может оказаться так, что для разных билдов сигнатуры будут разниться.
2. Нет и небыло такой такой ветки в реестре. Тем не менее, я, кажись, понимаю что ты имеешь ввиду. Прошу лишь точнее выражаться дабы не вносить сумятицу в умы читателей.

1. Для конкретного билда конкретной программы сигнатура всегда конкретна и разнится она не может.
2. HKEY_CLASSES_ROOT\exefile\shell\open\command -- на эту ветку ставится свой shell и соотв. контроль над всеми запусками всех exe. Получаем возможность запрещать запуски отдельных exe. Технология давно известна в сфере виросописания.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Работа exe определенное время

Сообщение Twister » 29.04.2010 (Чт) 21:19

Для конкретного билда конкретной программы сигнатура всегда конкретна и разнится она не может.
Я попрошу не отклоняться от темы и не путать божий дар с яишницей. Антивирусы определяют зловредный софт по сигнатурам, к примеру, но это совсем не то, о чем идет речь в этом топике. Или Вы, к примеру, собрались определять наличие запущенной игры Heroes III по сигнатуре? Тогда только для нее одной придется держать около 15-ти сигнатур... При этом при всем: как Вы собираетесь дать пользователю право выбора на то, какие программы разрешать запускать, а какие нет? Предложите ему самому вносить сигнатуры в базу?

на эту ветку ставится свой shell и соотв. контроль над всеми запусками всех exe
Да-да, я за свою практику видел тонну подобных поделий. Яркий пример - некий троянчик Soundmix, который прописывался в данной ветке и пропускал через себя запуск многих (не всех, подчеркиваю) EXE. Только вот это решение ну никак не вписывается в концепцию легального способа слежения за запуском и (тем более!) остановом исполняемых модулей. В первую очередь - по скорости. Мне кажется все минусы расписывать нет смысла, легко догадаться самому. Во вторую - по законности. Любой нормальный анализатор малвари заорет, увидев подмененное значение данной ветки. В третью, как я уже говорил, у Вас не будет возможности контролировать запуск любого модуля. Только те Вы отловите, что запускаются Вами же через оболочку.

А теперь, раз уж пошла такая дискуссия, я попрошу привести хотябы 1-2 довода в пользу использования данных методов. А то вдруг я тут ересь несу? ;)
А я все практикую лечение травами...

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 30.04.2010 (Пт) 18:50

Это все мелочи по сравнению с тем как блокировать нужное количество exe. Просто вот один знакомый жалуется, что дочь сидит в мирке, как заблокировать ее в нужное время? Ее заблокируешь -начнет сидеть в аське и т.д. Если и писать программу, то чтоб блокировала нужное количество заданных файлов. И надо, чтоб конец ограничения времени тоже можно было задать. Т.е. блокирует с и до. Кто наведет на мысль, как эту группу выделенных файлов сунуть под опеку таймеру? :) Выбираешь файл, загоняешь его в ListView и весь список сохраняется в тхт файле. Там же сохраняется и время для каждой выбранной программы с и до. Вот как весь список вывести, чтоб таймер следил за временем? Программ то много. :?
Главное, ребята, сердцем не стареть...

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Работа exe определенное время

Сообщение Vova_2581 » 01.05.2010 (Сб) 1:29

Saturn.65 писал(а):Кто наведет на мысль, как эту группу выделенных файлов сунуть под опеку таймеру?

Тут скорее не список файлов нужно хранить, а список MD5 хэшов этих файлов. Т.е. алгоритм может быть таким:
1. Создаем список MD5 на лимитируемые файлы.
2. Пишем модуль контроля в скрытой автозагрузке.
3. Модуль контроля с интервалом, например, 30 сек. через THL сканирует список процессов, вычисляет их MD5.
Затем сравнивает хэши со списком на лимит. Если хеш совпал, значит юзверь запустил лимитируемый файл.
4. Модуль запускает таймер (результаты счетчика сохраняет в тот же список, например). Как только превышение, то killProcess.
5. Отдельно выполняем запрет юзверю изменять дату и время, самым простым способом -- gpedit.msc, Конфигурация компьютера / Конфигурация Windows / Параметры безопасности / Локальные политики / Назначение прав пользователя / Изменение системного времени / удалить всех. (Перезагрузка компа).
Вот, типа того.
Twister писал(а):В третью, как я уже говорил, у Вас не будет возможности контролировать запуск любого модуля. Только те Вы отловите, что запускаются Вами же через оболочку.

А какие exe пойдут в обход? Поясните, если не трудно.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 01.05.2010 (Сб) 7:11

Vova_2581 писал(а):Затем сравнивает хэши со списком на лимит.

Допустим я сохраняю данные ListView в текстовый документ. В нем все будет указано в таком варианте:
Код: Выделить всё
"C:\Program Files\QIP\QIP.exe","QIP.exe","22.00","08.00"

А как потом такой список читать? Здесь и начало запрета 22.00 и конец запрета 08.00.
Тем более надо читать все строчки в списке, искать совпадающее время и название проги и принимать соответствующее действие.
Прочитать то можно, а как сортировать? А если не корячится, а программным способом выделять каждую минуту каждую строчку в ListView и нужные данные будут выводится в текстбоксы? А как программно выделять строки? Путем эмуляции работы клавиш Up и Down? Крутой механизм получится. :)
Главное, ребята, сердцем не стареть...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Работа exe определенное время

Сообщение Twister » 01.05.2010 (Сб) 17:13

А какие exe пойдут в обход?
Абсолютно все, которые заускаются не через Проводник и cmd.
А я все практикую лечение травами...

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Работа exe определенное время

Сообщение Vova_2581 » 03.05.2010 (Пн) 2:13

Saturn.65 писал(а):Прочитать то можно, а как сортировать? А если не корячится, а программным способом выделять каждую минуту каждую строчку в ListView и нужные данные будут выводится в текстбоксы? А как программно выделять строки? Путем эмуляции работы клавиш Up и Down? Крутой механизм получится.

Что-то ты замутил такое, все-таки хочешь просто через имя образа ограничилку строить. Так ведь легко обойти все эти запреты.
Тут есть существенные недостатки (опять-таки по списку):
1. QIP.exe – можно переименовать и работай себе дальше улыбаясь.
2. Искать окна по заголовку – так, например, игрушка Heroes III может не иметь заголовка, или он может динамически меняться, как это происходит в Word.
3. Искать по имени класса – так и имя класса тоже, как ни прикольно, тоже может меняться, если сишные программисты использовали MFC функцию AfxRegisterWindow, которая придумывает название класса окна. Вот почитай, убедить сам.
Вот если замутить хэширование (скажем, MD5-- лучше, чем CRC), то это почти, как «отпечаток пальца» той проги, которую нужно ограничить. И в плане легальности полный порядок, мы никуда не лезем и ничего не прописываем, антивирусы не против. Это все не так сложно, как кажется, наоборот просто и достаточно эффективно, как мне кажется будет. Ну, недостатков не вижу, может кто скажет?

Twister, да понял. Дествительно можно так, а еще если запускать ассоциированный файл, например, *.doc, то Word.exe запустится в обход. Значит, этот путь не годится.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Работа exe определенное время

Сообщение Saturn.65 » 03.05.2010 (Пн) 5:28

Vova_2581 писал(а):2. Искать окна по заголовку – так, например, игрушка Heroes III может не иметь заголовка, или он может динамически меняться, как это происходит в Word.

Кстати в опере заголовок меняется и программа ее все равно видит.
По MD5 конечно лучше. У тебя есть пример для определения?
Вот как привинтить ListView со списком программ и времени ограничения к одному таймеру? Вот это задача! Если это решится, тогда можно думать и о MD5.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа exe определенное время

Сообщение Хакер » 03.05.2010 (Пн) 7:37

О каком MD5 речь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 76

    TopList