Thanks, I weren't sure about that one. I thought that every recent compiler will zero-initialize local variables/structures. Are there compilers or some special cases which wouldn't let that happen? Are they often enough not explicit set to zero (by using non-previously-used memory for the first time), so it'll be assumed to be zero?
On 04/07/2017 06:43 PM, Michael Müller wrote:
Am 07.04.2017 um 17:52 schrieb Christian Inci:
DWORD tid = 0; int request_pipe[2];
CONTEXT ctx; NTSTATUS status;
[...]
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
NtSetContextThread(handle, &ctx);
You didn't initialize the register values and therefore set the debug registers to random stack values. You should either initialize them manually or memset the whole struct.