アプリを保護するためにいくつかの関数をフックしています。Detours(CDetour)を使用しています。CreateThreadをフックしています。フック関数は元の関数とまったく同じである必要があります。
HANDLE WINAPI CreateThreadHook( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID
lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId )
{
//do hooking stuff here
}
フックは正常に機能しますが、問題はmsdnによるとIf the function succeeds, the return value is a handle to the new thread.
、関数がフックされているため、戻り値は私が返すものになります。フックされた関数をvoidまたは別のタイプに変更すると、呼び出しに戻り値がなくなるだけで、ほとんどの場合、クラッシュ。元の関数によって返されるはずの値を返すにはどうすればよいですか?