Jeffrey Richter的例子看样子是Hook掉所有进程中的所有MessageBox的,可是我希望只Hook指定进程的MessageBox,应该对Jeffrey Richter的例子作些什么改动呢?
另外CAPIHook::ReplaceIATEntryInOneMod()当中的GetCurrentProcessId()得到的究竟是哪个进程的ID?

解决方案 »

  1.   

    看一下这些或许有帮助.
    http://community.csdn.net/Expert/topic/3656/3656705.xml?temp=.7367517
    http://community.csdn.net/Expert/topic/3653/3653785.xml?temp=.3947718
    http://community.csdn.net/Expert/topic/3322/3322367.xml?temp=.4119226
      

  2.   

    GetCurrentProcessId()得到的究竟是哪个进程的ID?
    指被注入的哪个进程ID.
      

  3.   

    GetCurrentProcessId()我自己也试过了,注入一个进程时是被注入进程的ID;但如果是全局钩子,GetCurrentProcessId()将得到自己主进程的ID。
      

  4.   

    是否由于98跟NT的差异,所以在NT下,可以只Hook指定一个进程的API,而在98下,Hook指定进程的一个API函数就等于Hook掉所有进程对该API函数的调用呢?
      

  5.   

    GetCurrentProcessId()我自己也试过了,注入一个进程时是被注入进程的ID;但如果是全局钩子,GetCurrentProcessId()将得到自己主进程的ID。
    --------------------------------------------
    不完全正确,
    因为自己也被注入了,所以GetCurrentProcessId()也能得到自己主进程的ID。98下的APIHOOK我没有接触过,帮不了你了
    你可以查查关于98的资料
    另,我也有<Windows核心编程>上的代码,对你可以参考一下
    我的主页 http://myproject.91x.net/