为了保护我的应用程序,我一直在挂钩一些函数,我正在使用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或其他类型只会调用没有返回值,大多导致崩溃。如何返回原始函数应返回的值?