CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 技巧

manifest导致XP SP2崩溃问题跟踪说明

作者: smallfrogs,  出处:Windows Vista博客, 责任编辑: 韩博颖, 
2008-06-12 09:41
  由于Windows XP SP2的SXS.DLL模块在解析被Visual Studio 2005 RTM修改以后的UAC manifest时存在一个访问越界的BUG导致崩溃。

  我在Windows XP SP2下运行一个含有Windows Vista UAC manifest内容的程序时,系统突然蓝屏了。重启以后我发现这个蓝屏不是由于驱动程序造成的,而是由于CSRSS.EXE 崩溃导致的。

  Microsoft更新了KB 921337知识库文章,介绍了一下这个问题的具体成因是由于编译器造成的,并且说明这个问题将在 Visual Studio 2005 SP1里面得到解决。数天以前,Visual Studio 2005 SP1发布并修正了这个问题。

  问题解决了,那么为什么会造成这个问题呢?

  故障原因:

  究其原因是由于Visual Studio 2005 RTM自带的一个组件mt.exe自作聪明的(或者就是这样设计的)在编译的时候修改了用户添加的UAC manifest内容,同时,由于Windows XP SP2的SXS.DLL模块在解析被Visual Studio 2005 RTM修改以后的UAC manifest时存在一个访问越界的BUG导致崩溃。由于这2个原因,最终导致了在manifest里面加入Windows Vista UAC所用信息以后可能导致Windows XP SP2崩溃的问题。

  根据Microsoft UAC 开发文档,应用程序可以在manifest里面添加关于UAC的相关描述信息,如下所示:  

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
<security> 
<requestedPrivileges> 
<requestedExecutionLevel 
level="highestAvailable" 
uiAccess="false" 
/> 
</requestedPrivileges> 
</security> 
</trustInfo>
  

  上述内容添加到manifest以后,将由mt.exe添加到PE文件里面,使用Visual Studio 2005 RTM编译以后生成的manifest内容如下(可以使用Resource Hacker查看EXE文件里面的manifest内容):  

<ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3" xmlns="urn:schemas-microsoft-com:asm.v3"> 
<ms_asmv3:security xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"> 
<requestedPrivileges> 
<requestedExecutionLevel level="highestAvailable" uiAccess="false"> 
</requestedExecutionLevel> 
</requestedPrivileges> 
</ms_asmv3:security> 
</ms_asmv3:trustInfo>
 

  遗憾的是,由于Visual Studio 2005自带的mt.exe的BUG,mt.exe在编译的时候将一个错误的标记附加给了上述内容,出现了2个schema: 

<ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3" 

xmlns="urn:schemas-microsoft-com:asm.v3">

  正是由于这2个schema的存在,最终导致了Windows XP SP2的SXS.DLL崩溃和Windows的蓝屏。
共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i