Удивительная штука выясняется. Похоже в семерке при создании процесса не дергается NtCreateThread. Никто не в курсе с чем связаны такие кондибобрики?
поток создаётся из ринг0. похукать не получается? есть другие методы, на форуме уже было это, используйте поиск.
Достаточно хукнуть ZwResumeThread. Этого вполне достаточно в большинстве случаев. Работает и в XP и в Vista и в W7
Спасибо за помощь, уже сам вкурил. Созданием процесса теперь занимается NtCreateUserProcess, которая и создает поток. Хорошо хоть NtResumeThread из юзермода дергается. похукать поучается, заставить работать на семерке не получалось )
Начиная с Vista NtCreateThreadEx используется, а NtCreateThread для совместимости Код (Text): typedef struct _CREATE_THREAD_EX_BUFFER { ULONG Length; ULONG Unknown1; ULONG Unknown2; PCLIENT_ID cid; ULONG Unknown4; ULONG Unknown5; ULONG Unknown6; PVOID *TEB; ULONG Unknown8; } CREATE_THREAD_EX_BUFFER,*PCREATE_THREAD_EX_BUFFER; NTSTATUS NtCreateThreadEx( OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, IN ULONG InitialEip, IN ULONG InitialValueInStack OPTIONAL, IN ULONG ThreadState, /// Old "BOOLEAN CreateSuspended" IN ULONG StackZeroBits, IN ULONG SizeOfStackCommit OPTIONAL, IN ULONG SizeOfStackReserve OPTIONAL, OUT PCREATE_THREAD_EX_BUFFER ClientId );