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

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

Отследить запуск других приложений [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


Наверх

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