Вообщем, дело такое: переделываю свой античит к одной игрушке. Нужно выбрать правильную методику. Читы обычно работают так: Toolhelp-сканер процессов ищёт нужный процесс, а далее внедряет туда DLL. Основная и самая простая идея - не дать внедрить DLL перехватом OpenProcess, WriteVirtualMemory, VirtualProtect и т. д. Сейчас моя программка это и делает, но метод загрузки очень неудобным оказался: моя DLL просто лежит в директории импорта. Хотел сделать как-нибудь это по-другому. Т. е. в виде отдельной программки, которая тоже будет ждать загрузки нужного процесса... Лучшее что придумал - это перехватить CreateProcess на уровне ядра... Но вот как перехватить момент когда процесс появляется в списках черех Toolhelp и ZwQuerySystemInformation?
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.