我正在尝试将一个线程注入另一个进程,让该进程加载一个外部 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 上测试