Требовать завершения определенного события перед запуском приложения

Я работаю над приложением (DLL), которое регистрирует определенные вызовы WIN32, используя Detours. Он внедряется в целевое приложение, которое проходит фильтр. Он должен полностью регистрировать каждый вызов приложения, начиная с первой инструкции в точке входа приложения.

Сейчас я ищу способ заставить мое приложение (которое всегда работает) вводить DLL как можно быстрее, желательно, чтобы целевое приложение не выполняло никаких других вызовов.

Есть ли способ добиться этого?

0

Решение

Вы могли бы использовать Раздел реестра AppInit_DLLs загрузить DLL в процесс. DLL загружается во время DLL_PROCESS_ATTACH из User32.dll, Для обычных приложений это должно происходить до запуска любого кода приложения.

Имейте в виду, что хотя AppInit_DLLs следует переименовать в Deadlock_Or_Crash_Randomly_DLLs.

3

Другие решения

Насколько я знаю, в Windows нет простого способа сделать это.

Ваши варианты:

  1. Перехват функции CreateProcess (или ниже) во всех процессах. Когда создается новый процесс, измените аргументы, чтобы создать его как приостановленный, внедрить и возобновить при необходимости.
  2. Использование драйвера.
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector