定位一个窗口消息处理函数long get_proc_fun(HWND hwnd)
{
char          name[NUM_STRING]={0};;
HINSTANCE     p_instance=NULL;
WNDCLASS      wndclass={0}; GetClassName(hwnd,name,NUM_STRING);
p_instance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);
GetClassInfo(p_instance,name,&wndclass); return((long)wndclass.lpfnWndProc);
}为什么返回值 是 FFFF05B9  呢?
为什么不是窗口hwnd的消息处理函数地址?谁能给个定位一个窗口消息处理函数的思路?

解决方案 »

  1.   

    顺便说下我是先注入DLL,进入一个进程的内存空间,然后执行的这个代码
    hwnd 是被hook的窗口句柄
      

  2.   

    WNDPROC WndProc = (WNDPROC) GetWindowLong(hWnd,GWL_WNDPROC); 
      

  3.   

    对我自己用VC6.0编译的程序就能得到正确结果
    为什么对游戏、记事本等等窗口使用返回值 是 FFFF05B9  呢?
    返回值不定但是全部是FFFF开头的地址,不是窗口hwnd的消息处理函数地址?
      

  4.   

    子类化 窗口 在 多进程的 情况下,不工作。
    请 hook :WH_CALLWNDPROC 和 WH_CALLWNDPROCRET