![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отследить запуск других приложений [D7, Win95/98, Win2k, WinXP]
keymaster © (2006-04-13 11:29:00)Как отледить, какие приложения запускал пользователь в течение своего сеанса?
Rouse_ (2006-04-17 23:09:00) [1]
> Если все приложения оконные, то хук WH_CBT пойдет.
Если приложение - сервис, шелл расширение, батник? :)
Не ясно что имеет ввиду автор - способов исполнения произвольного кода сотни, какие необходимо детектировать - непонятно...
n0name (2006-04-17 19:13:00) [2]Если все приложения оконные, то хук WH_CBT пойдет.
Сергей М. © (17.04.06 11:27) [5]
Причем в инете есть примеры работы этой функции.
Игорь Шевченко (2006-04-17 17:38:00) [3]DVM © (17.04.06 17:06) [11]
в 95/98 и диспетчера задач нету :) И PsSetCreateProcessNotifyRoutine...
DVM (2006-04-17 17:06:00) [4]
> Игорь Шевченко © (17.04.06 17:03) [10]
У автора в вопросе стоит
> D7, Win95/98, Win2k, WinXP
насколько мне известно в 98/95 аудита нет.
Игорь Шевченко (2006-04-17 17:03:00) [5]Elen © (17.04.06 16:59) [9]
Лавры Ивана Кулибина покоя не дают ? Просто странно, при наличии готовых средств изобретать велосипед.
Elen (2006-04-17 16:59:00) [6]DVM прав. И неплохо еще подумать о скрытности программы, чтобы юзер не смог ее закрыть в диспетчере задач
DVM (2006-04-17 16:24:00) [7]
> Elen © (17.04.06 07:55) [2]
еще лучше при старте один раз EnumWindows, а потом поставить ловушку WH_SHELL.
Сергей М. (2006-04-17 11:51:00) [8]
> что делает эта функция?
Регистрирует или удаляет ранее запрошенную регистрирацию callback-функции, которая будет вызываться системой всякий раз при старте или завершении процесса.
Описана в ntoskrnl.h (см. NT DDK).
Работает только в режиме ядра, пример имеется на wasm.ru
Elen (2006-04-17 11:41:00) [9]
> Под НТ лучше и надежней всего с этим справится PsSetCreateProcessNotifyRoutine()
Сергей, а что делает эта функция? В какой библиотеке она описана?
Сергей М. (2006-04-17 11:27:00) [10]Под НТ лучше и надежней всего с этим справится PsSetCreateProcessNotifyRoutine()
Elen (2006-04-17 11:10:00) [11]Значит нужно использовать процедуру EnumProcesses. Кстати неплохо-бы спросить автора какие приложения например он имеет ввиду. Если это такие стремительные процессы, то в таком случае лучше перехватить их запуск, заменив функцию API CreateProcess на свою методом сплайсинга и регистрировать их
Дмитрий Л. (2006-04-17 10:57:00) [12]
> Elen © (17.04.06 07:55) [2]
>
> Можно написать программку, которая по таймеру будет вызывать
> CallBack API функцию EnumWindow. Туда передается адрес процедуры,
> которую Винда будет вызывать, перелистывая список запущенных
> программ. Первая же программа - активна. Можно узнать ее
> имя, тип, файл и фиксировать эту информацию в файл
А если у процесса нет окон? или жизненный цикл процесса входит в интервал между вызовами процедуры таймера?
Elen (2006-04-17 07:55:00) [13]Можно написать программку, которая по таймеру будет вызывать CallBack API функцию EnumWindow. Туда передается адрес процедуры, которую Винда будет вызывать, перелистывая список запущенных программ. Первая же программа - активна. Можно узнать ее имя, тип, файл и фиксировать эту информацию в файл
Игорь Шевченко (2006-04-13 12:43:00) [14]Включить аудит процессов в локальной/доменной политике, смотреть EventLog