本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9696269
建立时间:2004年12月20日




[编程感想]从Vista看进去,Microsoft是最好的学生 
原创空间,  软件技术

邢红瑞 发表于 2008/3/10 22:46:19

最近把我做的程序移植到vista上,发现vista从界面到使用逻辑,和linux越来越像,界面简直就是kde4,进程管理就是Debian。UAC,Windows Vista 里面重要构成部分。对 Windows 安全保护起着绝对重要用途。在安全机制的问题上,微软已经被病毒制造者以及黑客们整得抓狂了,有些显得好笑。用牺牲大量易用性来换取安全,可以是权宜之计,不是长久之计,无异于饮鸩止渴。在Windows Vista里面,进程是分权限级别的。Windows会根据manifest内容、Windows Installer detection、兼容性数据库等方法判断一个进程是否需要一开始就运行在完整admin模式下。Activex控件的安装需要adminstrator权限,路由添加需要Administrator。有时候不得不写manifest,是程序运行就是Administrator权限,这样可以后台启用服务,不需要每次跑起来总会跳出一个UAC窗口,问是否继续操作。<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity  version="1.0.0.0"  processorArchitecture="X86"  name="solo.exe"  type="win32"/><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">  <security>    <requestedPrivileges>        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>    </requestedPrivileges>  </security></trustInfo></assembly>很有意思的是但是不是所有的程序一开始就需要运行在完整admin模式下的,例如任务管理器TaskMgr.EXE。在Windows Vista里面,启动任务管理器以后,默认只能显示当前账户相关的进程信息,一个没有完全admin权限的进程是没法直接创建更高权限进程的,也就是说一般权限下的进程是没法直接创建完全Admin权限进程的。因此CreateProcess API函数肯定是不能使用的。如果使用CreateProcessAsUser函数,那么需要提供一个比较高的token才能完成,而TaskMgr根本无法做到。原因是在Windows Vista里面,ShellExecuteExW的lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候,会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。看来微软很善于学习,至少不是那末固步自封。


阅读全文(5352) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144772503 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号