Почему CreateRemoteThread работает здесь?
Я пытаюсь внедрить поток в другой процесс, который позволяет процессу загрузить внешнюю DLL.
Вот код, который я нашел в интернете, и он работает.
HANDLE hThread = CreateRemoteThread (hProcess, NULL, 0,
(LPTHREAD_START_ROUTINE) GetProcAddress(
GetModuleHandle(L"kernel32"), "LoadLibraryA"),
lpMemory, 0, NULL);
if (hThread == INVALID_HANDLE_VALUE)
{
return false;
}
Но из моего понимания адрес вернулся GetProcAddress
живет в пространстве памяти текущего процесса, а не целевого.
Так почему же это работает?
Проверено на Windows 7