谁可以帮帮我啊。。网上都查不到这个的详解。
  去哪可以查阅这个函数的详细资料呢???
  谢谢好心人。

解决方案 »

  1.   

    PFNOpenProcess应该是函数指针,为了用GetProcAddress函数从dll里加载函数OpenProcess
      

  2.   

      谢谢你!
      比如说   return PFNOpenProcess(参数);   我可以理解为是返回一个函数指针,类型是PFNOpenProcess类型的吗??
      

  3.   

    typedef HANDLE(WINAPI *PFNOpenProcess)(  DWORD dwDesiredAccess,  BOOL bInheritHandle,  DWORD dwProcessId );
    extern CAPIHook g_OpenProcess;HANDLE WINAPI Hook_OpenProcess(  DWORD dwDesiredAccess,  BOOL bInheritHandle,  DWORD dwProcessId )
    {
    HOOK_MSG_PROCESS hookMsgProcess;
    memset(&hookMsgProcess, 0, sizeof(hookMsgProcess));
    hookMsgProcess.nMsg = INET_HOOK_MSG_PROCESS_OPEN;
    hookMsgProcess.dwPid = dwProcessId;

    if( SendHookMsg(MSG_PROCESS, (char*)&hookMsgProcess, sizeof(HOOK_MSG_PROCESS)) == HOOK_MSG_RESPOND_DISABLE)
    {
    return NULL;
    }

        return((PFNOpenProcess)(PROC)g_OpenProcess)(dwDesiredAccess,bInheritHandle,dwProcessId );
    }
    CAPIHook g_OpenProcess("kernel32.dll","OpenProcess",(PROC)Hook_OpenProcess,TRUE);
      

  4.   

    return((PFNOpenProcess)(PROC)g_OpenProcess)(dwDesiredAccess,bInheritHandle,dwProcessId );先把g_OpenProcess转换成PROC,然后再转换成PFNOpenProcess,然后执行函数,再把返回值return