такая проблема - в перехватчике NtCreateThread (методом записи jmp new_NtCreateThread в начало) вроде задаются начальные значения регистров (во всяком случае EIP и ESP) вот код который должен ставить хардверный бряк во всех создаваемых потоках: Код (Text): u_long __stdcall new_NtCreateThread(PHANDLE ThreadHandle,ACCESS_MASK DesiredAccess,void* ObjectAttributes,HANDLE ProcessHandle,u_long* ClientId,PCONTEXT ThreadContext,void* InitialTeb,BOOLEAN CreateSuspended) { u_long result; char buf[200]; скипнуто ThreadContext->Dr0=LdrLoadDll; ThreadContext->Dr7=0x101; ThreadContext->ContextFlags|=CONTEXT_DEBUG_REGISTERS; result=old_NtCreateThread(ThreadHandle,DesiredAccess,ObjectAttributes,ProcessHandle,ClientId,ThreadContext,InitialTeb,CreateSuspended); log("new_NtCreateThread %X %X",ThreadContext->Eip,ThreadContext->Esp); скипнуто return result; }; только как выяснилось бряки не устанавливаются (OllyDbg показывает DR0==0) может это так и должно быть ?