最好有详细代码 我第一次碰这东西

解决方案 »

  1.   

    给个提示!!!你这个要求是系统范围内的API hook,国外有一些这样的代码但都是要收费才能得到原代码。
    win98下你可以先用SoftICE找到OpenProcess函数,然后用A命令将 Jmp 0xxxxxxxx 指令
    替换掉OpenProcess头几个字节,令其系统范围所有调用Openrocess涵数的代码都跳到你的
    码去最后记得再跳回来。这些码要在2G以上!!!!!完成调试后你就写码了。
    首先要在2G以上的空间找到一个足以存放你的码的地方,然后写进去,最后改OpenProcess
    的头几个字节,改掉的OpenProcess头几个字节要在你的码中还原!!最后跳回去就是了。w2k系统你就需要改变Server table了,因为w2k以上系统API的调用是通过Serer table实现
    的。这方面的资料国外有一些!
    我建议你看看 window 2000 内部揭密 第三版,机工出的。虽然没有实例但讲到了系统的底层总之!!我建议你最好不要用系统范围内的API Hook,即便实现了稳定性和兼容性也是个问题
      

  2.   

    其实还有一个办法可以达到你的要求。你写一个全局性的hook过程,注入系统内所有的进程空间,这个DLL要做的事情只有一件。
    勾住每一个进程的OpenProcess函数调用。DLL中有一个共享变量用来存放你不想被打开
    进程的ID,当任意一个进程调用OpenProcess时判断它打开的进程是不是那个ID。这样也
    可以达到你的要求,实现起来也很容易!!!!
      

  3.   

    学习中。。 网上有几个hookapi的例子。 参考一下!
      

  4.   

    哈哈,你运气好。。这里有位仁兄正好帖了一张你需要的帖子。http://expert.csdn.net/Expert/TopicView1.asp?id=2572890
      

  5.   

    OH MY GOD 太感谢了 这就去看看
      

  6.   

    发现个问题 我要的是全局的hook 他好像不是
    所以请各路高手继续!! 谢谢