Vista之后的Windows系统,有了Session0隔离这个东东。挺烦。所以有了这个问题。我有2个进程,一个系统服务,另一个是登录用户程序。
当UAC打开的时候,如果没有给进程提升 mandatory level 的话(是这个东西吧),很多的Privilege 项都没有。而且有了 Session 0隔离,在 Session X(非0)的用户程序建立的局部命名内核对象(如event),
则另一个Session Y(非0) 的进程是看不见的。而要创建 Global 范围的对象是需要 SeCreateGlobalPrivilege 特权的可是一般的普通进程,不提升到high level的话,这个token是没有的,根本无从开启。
进程都是提升的就好说了, 不过总弹uac框框也不是办法,
所以如果这样的进程创建了命名内核对象,系统服务看不到是根本不行呢?还是有方法?
到底怎么做呢?非常感谢!
当UAC打开的时候,如果没有给进程提升 mandatory level 的话(是这个东西吧),很多的Privilege 项都没有。而且有了 Session 0隔离,在 Session X(非0)的用户程序建立的局部命名内核对象(如event),
则另一个Session Y(非0) 的进程是看不见的。而要创建 Global 范围的对象是需要 SeCreateGlobalPrivilege 特权的可是一般的普通进程,不提升到high level的话,这个token是没有的,根本无从开启。
进程都是提升的就好说了, 不过总弹uac框框也不是办法,
所以如果这样的进程创建了命名内核对象,系统服务看不到是根本不行呢?还是有方法?
到底怎么做呢?非常感谢!
社区 bug ?
不过很郁闷,看介绍,那种方法可用的前提是 Terminal Service 是运行的听说很多机器这个东西不会开,开了也会被禁用……崩溃!。