Код (Text): xor ecx, ecx push IdThread push ecx push ecx push ThreadFunc push ecx push ecx call [CreateThread] mov [hThread], eax ; mov eax, dword [hThread] ; push eax ; call [SuspendThread] push _context mov dword [_context.ContextFlags], CONTEXT_ALL mov eax, dword [hThread] push eax call [GetThreadContext] mov eax, dword [_context.EFlags] mov esi, str_out call BinToHex_32 push 0 push _caption push str_out push 0 call [MessageBoxA] push 0 call [ExitProcess] proc ThreadFunc mov eax, 0x12345678 @@: add ecx, 1 loop @B ret endp все вызовы API отрабатывает без ошибок, структура прилагается, в результате пустой контекст ((. P.S. без суспенда тоже самое
А какой он по твоему должен быть, если новый поток еще не запустился ? Хотя бы sleep для "приличия" поставь, или еще лучше на GetCurrentThread проверь для начала PS: для получения контекста суспендить поток не обязательно, просто если не суспендить, то неизвезтно какому моменту времени будет соответсвовать состояние регистров
Не знаю как из под 95, но под XP векторы [30%FF] - заглушки(KiUnexpectedInterruptTail). Попробуй вызвать Чел уже второй день пытается правильные параметры в NtGetContextThread скормить
из нового потока тоже не получает контекст главного потока. может структуру CONTEXT неправильно перекодил?
t00x Ты прикалываешся ? Local Context:CONTEXT mov Context.ContextFlags,CONTEXT_DEBUG_REGISTERS invoke ZwGetContextThread, ThreadHandle, addr Context