![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процесс запуска EXE-файла [D7, WinXP]
fester © (2004-11-17 14:42:00)Есть файл 1.exe. Как отловить его запуск и перед запуском 1.exe выполнить какой-либо код.
Ihor Osov'yak (2004-11-19 18:51:00) [1]ах, да, сори в 15 речь вообще об контроле запуска любого процесса. Если нужно отслеживать запуск конкретного процесса (1.exe)- то есть возможность зарегистрировать свою программу как отладчик этого процесса.. Ньюансов не помню, в документацию лень смотреть - поищите что-то вокруг отладки сервисов - этот прием один из возможных вариантов отладки сервисов - как правило, в faq о написании сервисов конкретно указывается, что нужно прописать в реестри, чтобы стать отладчиком для соотв. исполнительного файла..
Ihor Osov'yak (2004-11-19 18:47:00) [2]Первый вариант - PsSetCreateProcessNotifyRoutine - уже упоминали - см. [10].
Есть еще один способ, не совсем очевидный - драйвер-фильтр файловой системы и отслеживание IRP_MJ_CREATE с последующим анализом
currentIrpStack->Parameters.Create.SecurityContext->DesiredAccess на предмет наличия флажка FILE_EXECUTE. Преимущество этого способа по сравнению с вариантом из [10] - то, что мы получаем нотификацию "до того" и есть возможность отменить запуск процесса, а также то, что мы получаем нотификацию не только об "откритии" основного файла, а и нотификацию об отображении всех подгружаемых длл для соотв. процесса.
Alekc (2004-11-19 17:28:00) [3]
> HKEY_CLASSES_ROOT\EXEFILE
>
> если делать проверку этой ветки, то надо каждую долю времени
> проверять, а это нагрузка на память. Или может я не то думаю???
Там можно указать обработчик файлов типа "exe", т.е. твоя прога будет вызываться перед перед запуском любого exe-файла... Но если ты потом свой exe нечаянно удалишь, или он будет работать неправильно, то случится *опа...
vovchik (2004-11-19 08:48:00) [4]Digitman
истина лежит вблизи ф-ции
PsSetCreateProcessNotifyRoutine()
Эта функция работает только для запуска драйверов.
----------------------------------------------------
DelphiN!
HKEY_CLASSES_ROOT\EXEFILE
если делать проверку этой ветки, то надо каждую долю времени проверять, а это нагрузка на память. Или может я не то думаю???
DelphiN! (2004-11-19 08:29:00) [5]HKEY_CLASSES_ROOT\EXEFILE
...
fester (2004-11-17 18:48:00) [6]Спасибо....это для друга :)) wasm - любимый ресурс, особннно нравится "дао программизма" :)) Жаль с асмом разбираться лень :))
Digitman (2004-11-17 18:18:00) [7]
> fester (17.11.04 18:13) [9]
так..
прекращай клоунаду.
истина лежит вблизи ф-ции
PsSetCreateProcessNotifyRoutine()
fester (2004-11-17 18:13:00) [8]Такие люди отвечают :)) Ничего плохого замутить не хочу :)) Рихтера читали, и чем отличается процесс от потока знаем :))Вот возможно ли "отловить"запуск процесса мы не знаем :(( Надо не допустить запуск определенной программы.....выполнить действия до запуска
Digitman (2004-11-17 17:45:00) [9]
> Anatoly Podgoretsky © (17.11.04 17:39) [7]
"ловцов"-то тут разных - по пояс и выше) ... проблемы в том, что как правило мало кто из них в состоянии вразумительно пояснить хотя бы что значит "процесс", что значит "отловить"..
Anatoly Podgoretsky (2004-11-17 17:39:00) [10]Зачем его отлавливать, можно можно обойтись командным файлом?
Digitman (2004-11-17 17:37:00) [11]
> fester (17.11.04 17:26) [5]
упомянутый wasm.ru тебе ни о чем не говорит ?
жми туда и ищи пример !
fester (2004-11-17 17:26:00) [12]Digitman. тогда подскажи как делать? я наверно не догоняю.....
Digitman (2004-11-17 17:03:00) [13]
> fester (17.11.04 16:21) [3]
> это не вирус, хук на какое сообщение, я не могу найти wm_...
какое нафих сообщение, если стартуемый процесс не является GUI-процессом ?
в общем случае решение единственное - kernel-mode driver
примеры - на wasm.ru
fester (2004-11-17 16:21:00) [14]это не вирус, хук на какое сообщение, я не могу найти wm_...
Игорь Шевченко (2004-11-17 14:49:00) [15]Через реестр
TUser (2004-11-17 14:44:00) [16]поставить хук на вызов апи функций
подменить сам 1.exe
ps. не пиши вирусов