Перехват запуска процесса

Тема в разделе "WASM.WIN32", создана пользователем DPAKOH, 30 янв 2006.

  1. DPAKOH

    DPAKOH New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2006
    Сообщения:
    5
    Адрес:
    Russia
    Вообщем, дело такое: переделываю свой античит к одной игрушке. Нужно выбрать правильную методику.

    Читы обычно работают так: Toolhelp-сканер процессов ищёт нужный процесс, а далее внедряет туда DLL.

    Основная и самая простая идея - не дать внедрить DLL перехватом OpenProcess, WriteVirtualMemory, VirtualProtect и т. д.

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

    Хотел сделать как-нибудь это по-другому. Т. е. в виде отдельной программки, которая тоже будет ждать загрузки нужного процесса...

    Лучшее что придумал - это перехватить CreateProcess на уровне ядра... Но вот как перехватить момент когда процесс появляется в списках черех Toolhelp и ZwQuerySystemInformation?
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    PsSetCreateProcessNotifyRoutine

    PsSetCreateProcessNotifyRoutine adds a driver-supplied callback routine to, or removes it from, a list of routines to be called whenever a process is created or deleted.



    NTSTATUS

    PsSetCreateProcessNotifyRoutine(

    IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,

    IN BOOLEAN Remove

    );

    Parameters

    NotifyRoutine

    Specifies the entry point of a caller-supplied process-creation callback routine.

    Remove

    Indicates whether the routine specified by NotifyRoutine should be added to or removed from the system's list of notification routines. If FALSE, the specified routine is added to the list. If TRUE, the specified routine is removed from the list.