当我们使用右键菜单来运行winzip或者winrar的时候,系统explorer.exe通过什么方式来创建的winzip或者winrar进程的?我使用hook的时候,通过CreateProcess、CreateProcessWithLogonW、CreateProcessAsUserW、WinExec都不能截获到explorer.exe的创建进程的操作,请高手指点一下,explorer.exe通过什么方式来创建右键菜单运行的winzip,winrar这样的进程,或者还有什么创建进程的方式,多谢指点,谢谢!

解决方案 »

  1.   

    就是通过CreateProcess来运行的
    当某一个线程调用CreateProcess函数时,系统就会创建一个进程内核对象,其初始计数是1,该进程内核对象不是进程本身,而是操作系统管理进程时使用的一个较小的数据结构,然后,系统为新进程创建一个虚拟地址空间,并将可执行文件或任何必需的DLL文件的代码和数据加载到该进程的地址空间中。
      

  2.   

    可是我没有hook到右键菜单运行的情况,当直接打开winzip或者winrar的时候,能够hook到CreateProcess,但是右键运行的时候,不能够hook到CreateProcess。这是为什么?谢谢
      

  3.   

    那是winzip,winrar自己提供的shell extension启动了应用程序,不是explorer启动的
      

  4.   

    to  masterz(MS MVP) :我查看的当时运行环境,winzip,winrar进程的父进程是explorer,谢谢指点
    to Zark(金陵五月) :我hook了ShellExcute,好像也不是,迷惑:)