私が作成した注入されたDLLのリモートプロセスで関数を呼び出したい。注入されたDLLの関数を呼び出す
CreateRemoteThread(pHandle, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("kernel32"), "LoadLibraryA"), pLibRemote, 0, NULL);
にDllMainが実行され、DLLが待機モードで実行されている:
は、私は正常に私のDLLを注入しています。私がやりたいことは、何らかの作業をするために何とかリモートでロードされたDLLを呼び出すことです。私はこのような機能を輸出しようとしている:
extern "C" __declspec(dllexport) void MyFunc(void)
し、このように関数を実行:
CreateRemoteThread(pHandle, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("mydll"), "MyFunc"), NULL, 0, NULL);
が、それはクラッシュにつながります。
どうすればこの問題を解決できますか?
GetModuleHandleは何を返しますか? GetProcAddressは何を返しますか? –
両方とも0を返します。GetModuleHandleは、ロードしていないホストプロセス内のモジュールのハンドルを取得しようとします。 –