В общем методом v`тыка удалось мне добиться того, что бы данный код находил длину инструкции по заданному адресу
Собсна сам вопрос - можно ли dbgeng заставть делать то же самое, только не аттача дебаг к своему процессу и не начиная сессию отладки ?
Собсна сам вопрос - можно ли dbgeng заставть делать то же самое, только не аттача дебаг к своему процессу и не начиная сессию отладки ?
C++:
HRESULT a = DebugCreate(__uuidof(IDebugClient), (void**)&clt);
a = clt->AttachProcess(NULL, GetProcessId(GetCurrentProcess()), DEBUG_ATTACH_NONINVASIVE | DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND);
a = clt->QueryInterface(__uuidof(IDebugControl), (void**)&ctrl);
a = ctrl->WaitForEvent(DEBUG_WAIT_DEFAULT, -1);
ULONG64 newOffset = 0;
ULONG64 addr = (ULONG64)GetProcAddress(LoadLibraryA("ntdll.dll"), "NtClose");
a = ctrl->GetNearInstruction(addr, 1, &newOffset);
int instr_len = newOffset - addr;