如题:     我想实现截获当前运行的进程的TextOut,如何实现呢?     紧急啊!!求救!

解决方案 »

  1.   

    通过HOOK API可以做到
    其实即使修改导入表中TextOut的地址,并替换成自己的函数地址就可以了
    具体细节参考HOOK API
      

  2.   

    我知道是HOOK API啊,我能做到的只是针对特定进程的捕获。离任何进程有很大差距!
      

  3.   

    没啥说的,hook API 吧。
    http://blog.csdn.net/DavidHsing/archive/2009/05/27/4219226.aspx
    这里面有些东西对你有用。提到 API Hook,也是个老生常谈的话题了。要实现它,也有两种思路:      一种是找到该API在内存的入口地址,修改其入口前八字节数据为了一汇编的 jmp xxxxxxxx 无条件跳转指令,使其调用该API时会跳到指定的另一处函数入口处,即与这个API有着相同的参数与返回值的回调处理程序。
          第二种是在进程的输入表(IAT 表)找到保存在这里的要调用的那个API地址,修改这个地址,使程序在输入表里找该API地址时取的是我们修改后的回调程序入口地址。
      

  4.   

    网上有现成的hook textout屏幕抓词的hookyou源代码http://download.csdn.net/down/235372/zzuedu2000
      

  5.   


    你自己提问不就是问的“截获当前运行的进程”么,怎么怪人家 1 楼?
    做全局的,弄个全局钩子,通过你的 exe 载入。
    其他进程的运行时发现有这个消息就会载入这个 dll 到它的进程空间,就行了
      

  6.   

    http://dev.csdn.net/article/2/2786.shtm
    http://blog.csdn.net/huzheng_001/archive/2006/01/18/583278.aspx
    我是参考这两篇文章的,你看看吧。