《深入核心》钩子探讨(100分)

  • 主题发起人 主题发起人 VictorWoo
  • 开始时间 开始时间
V

VictorWoo

Unregistered / Unconfirmed
GUEST, unregistred user!
请有《Delphi下深入Windows核心编程》的朋友看一下。<br>==================================<br>问题一,第32页的<br>function GetMsgProc(code: integer; wPar: integer; lPar: integer): Integer; stdcall;<br>begin<br> &nbsp;Result := CallNextHookEx(MessageHook, Code, wPar, lPar);<br>end;<br>书上写错了,写成MouseHook,光盘里是对的。但是这个钩子处理过程什么也不做,那么钩WH_GETMESSAGE有什么意义?(应该和27页的2.2.2-1描述有关,但WH_GETMESSAGE和writefile等是怎么配合工作的?)<br>-----------------------------------<br>第二、THookClass起的作用是什么?<br>相关的代码似乎还有afxCodeHook和madcodehook。这些单元是否在做系统钩子的时候一定要采用?大家一般做系统钩子的时候都采用哪一套?<br>-----------------------------------<br>第三、感觉第29页的程序,pShMem好像没什么必要用,它和谁共享内存了呢?似乎谁都没有。不知大家如何理解?<br><br>谢谢回复。
 
我们群的大侠WinEggDrop就是专攻核心编程的 我上网这么久还没有见过比他厉害的 也许我这样说有点夸大 但是WinEggDrop是大家公认的高手中的高手 看到大富翁把陈经韬之流称为高手 我一直感到好笑 他的QQ 83136
 
很好,高手牛人
 
冰力不足你是在什么群?
 
老早的书了,当时在读书,感觉这本书还不错。<br><br>问题一:全局性hook只是为了让所有的应用程序把它载入到自己的内存空间,究竟是msg hook还是mouse hook差别不大,载入到程序的内存地址空间后,dll就可以修改应用程序的引入表,从而实现api hook.<br><br>问题二:THookClass实现了枚举程序的函数引入表,增加了硬跳转指令,从而实现api hook.<br><br>问题三:dll会被所有的能够加载消息循环的程序引用,因此会出现很多dll的内存实例,共享内存在这里起到了全局性变量的作用,供这些dll之间进行通讯,比如最后一个退出的要清理共享内存,释放相应资源。<br><br>呵呵,仅凭回忆。
 
good,一点拨差不多清楚了<br>还望高手能指点一下除了这套THookClass以外还有哪些好用的。(我用THookClass有的时候会影响其它程序,如SVN Client)<br>过两天结帖
 
高手是相对的。。。并不是技术最高的就算高手,而且没法说谁的技术最高。。。比自己水平高的人就是高手,谦虚最重要
 
呵呵,想到一句话:闻道有先后,术业有专攻,如是而已。不过好像有点跑题了。。
 
问题一:使用windows标准钩子可以使dll在任何进程创建后载入该进程的空间,修改应用程序的引入表,从而实现api hook,应该使用远程dll注射最好,不过要想自动挂载所有进程恐怕还要hook createprocess,不然在注射后,创建的进程就不能挂在了。
 
to menzhe:<br>&quot;不然在注射后,创建的进程就不能挂在了。&quot;是什么意思?书上那个程序没有hook createprocess,但是一样可以对新创建的进程生效。
 
这个很好理解,主动注入的,当然要枚举所有的进程,然后挨个注入,注入完成后如果不hook createprocess,新创建的进程就没有被你注入,因此也就不能Hook新创建的进程了。[:)]
 
有点久了,好像上面的回复还差一点:不hook CreateProcess怎么实现注入新创建的进程。理解了就该发分了
 
不hook createprocess,你还有别的办法能够得到新创建进程的信息嘛?如果有就可以,没有就不可以了!
 
ok,有了这些点拨,自己回头翻书去:)
 
多人接受答案了。
 

Similar threads

回复
0
查看
972
天地弦
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部