相关文章  
  • 如何让Windows 2000系统达到最佳性能
  • 经典电脑优化技巧骗术彻底揭密
  • Win2003最新优化方法大全之一
  • Win2003最新优化方法大全之二
  • 制作万能克隆版WinXP超全面攻略
  • 细说Windows XP 虚拟内存优化
  • 戳穿优化Windows XP的经典谣言
  • Windows XP系统全面软优化
  • 再谈如何释放C盘空间 27招具体优化技巧
  • 详解Windows非法操作的具体含义
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    用DLL控制Windows中进程的方法6

    现在让我们来看一看将会发生什么情况:
      
      1) 进程B中的一个线程准备将一条消息发送到一个窗口。
      
      2) 系统查看该线程上是否已经安装了W H _ G E T M E S S A G E挂钩。
      
      3) 系统查看包含G e t M s g P r o c函数的D L L是否被映射到进程B的地址空间中。
      
      4) 如果该D L L尚未被映射,系统将强制该D L L映射到进程B的地址空间,并且将进程B中的D L L映像的自动跟踪计数递增1。
      
      5) 当D L L的h i n s t D l l用于进程B时,系统查看该函数,并检查该D L L的h i n s t D l l是否与它用于进程A时所处的位置相同。
      
      如果两个h i n s t D l l是在相同的位置上,那么G e t M s g P r o c函数的内存地址在两个进程的地址空间中的位置也是相同的。在这种情况下,系统只需要调用进程A的地址空间中的G e t M s g P r o c函数即可。
      
      如果h i n s t D l l的位置不同,那么系统必须确定进程B的地址空间中G e t M s g P r o c函数的虚拟内存地址。这个地址可以使用下面的公式来确定:
      
      将GetMsgProc A的地址减去hinstDll A的地址,就可以得到G e t M s g P r o c函数的地址位移(以字节为计量单位)。将这个位移与hinstDll B的地址相加,就得出G e t M s g P r o c函数在用于进程B的地址空间中该D L L的映像时它的位置。
      
      6) 系统将进程B中的D L L映像的自动跟踪计数递增1。
      
      7)

    页码:[1] [2] [3] [4] [5] [6] [7]6页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved