Как узнать о запуске нового процесса?
Здорово пацаны, если кто в курсах, подскажите плиз как отловить запуск нового процесса. Именно что надо - это узнать ProcessID каждого запускаемого процесса. Как такое можно сделать???
Я би зделал так (хто ето и плохая идея): создал би поток, которий би брал список всех запущених процессов и обновлял би его все время, проверяя нету ли нових процессов.
Или можешь сходить на wasm.ru и прочитать как хакнуть функцию CreateProcess
1) создать поток и получать в нем список всех процессов в системе, через малый промежуток времени
2) написать библиотеку, которая будет грузиться во все процессы и подменять вызов оригинальной CreateProcessA(W) на вашу собственную функцию(которая вначале исгнализирует нам - потом отдает управление на оигинальную CreateProcess). хоть через сплайсинг, хоть через таблицу импорта...
Это конечно всё хорошо, но сама задача стоит так: необходимо к каждому выполняемому процессу крепит набор подменённых API функций. Поэтому здесь и стоит задача об получении уведомлений о создании процессов
Укажи в этом ключе свою DLL, которая либо будет уведомлять кого-то о запуске нового процесса, либо уже сразу сама хучить API функции.
Название ключа не помню, но google тебе в помощь.
Есть такие штуки дрюки - хуки ))))
<skip>
Название ключа не помню, но google тебе в помощь.
[/quote]
а ключик такой: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\ и там параметр AppInit_DLLs.