我学API钩子时,钩了TextOutA()或ExtTextOutA()函数,对我自己对TextOutA()的调用显示已HOOK了该程序对TextOutA()了,但对CEdit控件的文字输出无法截获,该控件到底如何输出文字,调用哪个函数

解决方案 »

  1.   

    CEdit控件是调用什么函数输出文本,我HOOK了TextOutA()或ExtTextOutA()函数但无法截获文本
      

  2.   

    WM_GETTEXT
    WM_SETTEXT ?
      

  3.   

    TextOut 应该在gdi32.dll里,你如果单纯的替换主程序中加载的
    gdi32.dll中的TextOut,可能只能作用于你的程序直接使用的TextOut。很多dll本身加载了gdi32.dll,可以深入进去,看看主程序加载的dll有
    没有加载gdi32.dll,可能需要递归的替换所有加载点。
      

  4.   

    lji2你好,我列举了每个进程模块的DLL的PIMAGE_IMPORT_DESCRIPTOR找到该模块的调用的要找的DLL后,再找到函数后替换,显示全部替换了,但不行。
      

  5.   

    如果你在win9X系列下拦截Edit控件的文字输出,你可以参考马飞涛的屏幕取词程序http://member.netease.com/~inetsoft/downloads/sourcecode/windows/freedic/dict_tut.htm
    如果网页显示是乱码,只要该一下IE的语言即可.他的做法是我们通常说的第二种方法:找到拦截的API入口地址,把前五个字节该为JMP XXXX 指令.在NT系列中拦截的API入口的前五个字节仍能通过WIN32API进行修改,但拦截Edit控件的文字输出,好象存在点问题.