私は DLL インジェクション手法について読んでいましたが、この質問を念頭に置いていました。
kernel32.dll に対して ASLR が有効になっている Windows 7 の宛先プロセスに DLL を挿入するとします。
したがって、注入されたコードのどの部分も winapi またはシステム コールを使用できません。これは、インジェクター コードの loadLibrary 関数のアドレスが宛先プロセスの loadLibrary のアドレスと異なるためです。
したがって、そのような呼び出しは機能しCreateRemoteThread
ません:
CreateRemoteThread(hProcess,
NULL,
0,
(LPTHREAD_START_ROUTINE) ::GetProcAddress(hKernel32,
"LoadLibraryA" ),
pLibRemote,
0,
NULL );
::WaitForSingleObject( hThread, INFINITE );
この推論が間違っている場合は訂正してください。