2

別のプロセスにスレッドを挿入しようとしています。これにより、プロセスは外部 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 でテスト済み

4

0 に答える 0