То есть программа находится в памяти, а при запуске например IEXPLORE.EXE (каждой копии процесса), выполняет какие-либо действия. Кому не трудно - пожалуйста объясните поподробнее.
Можно. Если перехватываешь CreateProcess в юзермоде то там тебе и имя сразу. Если из ядра, то есть куча вариантов. Можешь выставить колбек PsSetCreateProcessNotifyRoutine, там получишь Id процесса, затем можешь вызвать ZwQuerySystemInformation и получить инфу. Можно сделать PsLookupProcessByProcessId() получить указатель на EPROCESS а оттуда добыть всю интересующую инфу. Ещё можно самому подумать.
http://slow.alfamoon.com/index.php?module=filesdb&id=1&fid=7&get=1 - это в юзермоде, метод невероятно кривой но работающий.