我正在阅读有关 DLL 注入技术的信息,我想到了这个问题。
假设我们想将一个 DLL 注入到 Windows 7 中的目标进程中,该进程为 kernel32.dll 启用了 ASLR
因此,任何注入代码都不能使用任何 winapi 或任何系统调用,因为假设注入器代码中的 loadLibrary 函数的地址将与目标进程中的地址 loadLibrary 不同,不是吗?
所以这样的调用是CreateRemoteThread
行不通的:
CreateRemoteThread(hProcess,
NULL,
0,
(LPTHREAD_START_ROUTINE) ::GetProcAddress(hKernel32,
"LoadLibraryA" ),
pLibRemote,
0,
NULL );
::WaitForSingleObject( hThread, INFINITE );
如果我在这个推理中错了,请纠正我。