Пытаюсь создать удалённый поток в процессе Winlogon код, удалённого потока Код (Text): RemoteCodeStart: call .delta .delta: pop ebp sub ebp, .delta ; кода пока нет, только тестю запуск удалённого потока push 0 call [ebp+pExitThread] pExitThread dd 0 ; ;ещё переменные будут, поэтому не предлагать передавать указатель на ExitThread в качестве параметра ; RemoteCodeEnd: RemoteCodeSize equ RemoteCodeEnd-RemoteCodeStart код запускающий поток Код (Text): ; получение привилегий, получение ID winlogon invoke OpenProcess, PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or PROCESS_VM_WRITE, FALSE, [proc_entry.th32ProcessID] mov [WinlogonProcHandle], eax test eax, eax jnz @f jmp .exit @@: mov eax, [ExitThread] mov [pExitThread], eax invoke VirtualAllocEx, eax, 0, RemoteCodeSize, MEM_COMMIT+MEM_RESERVE, PAGE_EXECUTE_READWRITE mov [RemoteThreadBaseAddress], eax ; память выделяется invoke WriteProcessMemory, [WinlogonProcHandle], eax, RemoteCodeStart, RemoteCodeSize, Writed ; успешно invoke CreateRemoteThread, [WinlogonProcHandle], 0, 0, [RemoteThreadBaseAddress], 0, 0, RemoteThreadID успешность вызовов проверял в отладчике, память выделяется поток запускается. но выходит сообщение об ошибке "Инструкция по адресу 0х00000000" обратилась по адресу 0х00000000 память не может быть read" Winlogon дохнет и убивает систему. В чём может быть проблема? может я что-то упустил?
тему удалить. ошибка глупая, но над ней я мучался пол дня. и понял только после того как создал тему на форуме