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

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

Процесс запуска 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. не пиши вирусов


Наверх

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