none
Windows 7下用SetWindowHookEx,Hook “Shell_TrayWnd”时,普通用户运行能成功,提升权限至管理员却失败了,返回ERROR_ACCESS_DENIED RRS feed

  • 问题

  • Windows 7下用SetWindowHookEx,Hook “Shell_TrayWnd”时,普通用户运行能成功,提升权限至管理员却失败了,返回ERROR_ACCESS_DENIED

    各位有什么建议不?

    多谢。


     

     

    2011年9月27日 6:03

答案

  • 你好,

     

    Windows Vista 起, Windows 引入了新的强制完整性控制(Mandatory Integrity Control)。级别低的进程不能访问高级别的进程资源。此功能被用来隔离应用程序,在一个中等级别,如在标准用户环境中运行的应用,应用不能挂接到系统级并运行在管理员模式下的应用程序,高性级别应用,可以钩到较低级别的进程,如Windows Internet Explorer 78。一个低权限的过程不能使用线程钩子附加到一个更高权限的进程中,不能使用钩子监视一个更高权限的进程,并不能执行DLL注入到一个更高权限的进程。


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Rob Pan 2011年10月10日 8:19
    2011年9月28日 7:28
  • 你好,

     

    BUILDIN\Administrators是内置管理员权限,您需要把您的程序也提高到相同的权限,才可以访问拥有相同权限的程序


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Rob Pan 2011年10月10日 8:19
    2011年10月4日 8:08

全部回复

  • 你好,

     

    Windows Vista 起, Windows 引入了新的强制完整性控制(Mandatory Integrity Control)。级别低的进程不能访问高级别的进程资源。此功能被用来隔离应用程序,在一个中等级别,如在标准用户环境中运行的应用,应用不能挂接到系统级并运行在管理员模式下的应用程序,高性级别应用,可以钩到较低级别的进程,如Windows Internet Explorer 78。一个低权限的过程不能使用线程钩子附加到一个更高权限的进程中,不能使用钩子监视一个更高权限的进程,并不能执行DLL注入到一个更高权限的进程。


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Rob Pan 2011年10月10日 8:19
    2011年9月28日 7:28
  • 系统的explorer.exe是运行在Medium级别的,自己应用(coconut.exe)是运行在Hight级别的,所以不存在低级别访问高级别的问题。

    用processex查看到信息如下:

    explorer.exe

    coconut.exe

    2011年9月28日 8:16
  • 不过在查看系统安全性的时候,发现explorer.exe的BUILDIN\Administrators组s标识是deny;而我的应用coconut.exe提权运行的BUILDIN\Administrators组标识是OWNER,不知道是否是因此访问被explorer.exe拒绝的?

    见图:

    2011年9月28日 8:22
  • 你好,

     

    BUILDIN\Administrators是内置管理员权限,您需要把您的程序也提高到相同的权限,才可以访问拥有相同权限的程序


    Rob Pan [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Rob Pan 2011年10月10日 8:19
    2011年10月4日 8:08
  • 有其他的解决办法么?如果hook有这样的限制的话
    2014年9月23日 7:15