我一直在挂钩一些功能以保护我的应用程序,我正在使用 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
}
钩子工作正常,问题是根据msdnIf the function succeeds, the return value is a handle to the new thread.
但由于函数被钩子,返回值将是我返回的任何内容,将钩子函数更改为void或其他类型只会使调用没有返回值,主要导致崩溃。如何返回原始函数应返回的值?