当前位置:  开发笔记 > 后端 > 正文

从temp文件夹运行Signed和RequireAdministrator可执行文件?

如何解决《从temp文件夹运行Signed和RequireAdministrator可执行文件?》经验,为你挑选了0个好方法。

我表示我的可执行文件需要管理员:


 

    
    
        
            
                
            
        
     

然后我对它进行了数字签名.

但是当我运行可执行文件时,我注意到一些奇怪的东西:Consent对话框上的可执行文件的名称从更改PingWarning.exepinxxxx.tmp; 好像是临时副本,正在运行:

替代文字http://i42.tinypic.com/nmkppz.jpg

我挖出了Process Montior,看看是否有人在我启动可执行文件时创建一个*.tmp文件,并且:

alt text http://i42.tinypic.com/10o1b8g.jpg

此特定容器中的Application Information服务有意将我的可执行文件复制到Windows临时文件夹,并从那里请求用户"同意"; 提供无效的文件名.svchost

一旦获得同意,可执行文件将从其原始位置运行: 链接文本http://i43.tinypic.com/104noub.jpg

如果我没有对其进行数字签名,则不会将该文件复制到临时文件夹:

alt text http://i43.tinypic.com/14kvevd.jpg


所以我的问题是当我对我的可执行文件进行数字签名时出现在同意对话框中的无效文件名已经表现为.requireAdministrator

做什么?


更新:

我能找到的最接近解释的内容来自Uninformed.org(http://uninformed.org/index.cgi?v=8&a=6&p=3):

对于请求uiaccess的程序的启动请求,调用 appinfo!RAiLaunchAdminProcess来为请求提供服务.然后,该过程被appinfo!AiCheckSecureApplicationDirectory验证为在(硬编码的)允许目录集内 .在验证程序是从允许的目录中启动之后,控制最终会传递给appinfo!AiLaunchProcess ,它执行服务启动请求所需的剩余工作.此时,由于"安全"应用程序目录要求,有限用户(或运行具有低完整性的用户)不可能在任何"安全"应用程序目录中放置自定义可执行文件.

提示是一些(未记录的,未指定的)硬编码路径,应用程序被"允许"位于其中.

另一个是请求uiaccess的程序.就我而言uiAccess="false",我的原始清单中没有.但是更改清单以包含no ui访问:

但这并没有解决原来的问题.


更新二:

来自MSDN():

重要
的uiAccess标志设置为true的应用程序必须经过Authenticode签名才能正常启动.此外,应用程序必须位于文件系统中受保护的位置.\ Program Files \和\ windows\system32\
目前是两个允许的受保护位置.

这似乎可以替代请求的可执行文件uiAccess必须位于允许的位置的概念; 除了我不要求uiAccess.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有