这个文本在.exe文件的末尾是什么意思?

时间:2013-06-21 22:27:04

标签: exe .net-assembly

我在很多.exe文件的末尾看过这个文本。它能告诉我.exe文件是用什么语言编写的?我认为它可能是.NET语言,因为Microsoft引用。

<!-- Copyright (c) Microsoft Corporation -->
<!--
  Copyright (c) Microsoft Corporation.  All rights reserved.

   Authors:
       GaryY

   Module name:
       wextract.manifest

   Abstract:
       Manifest to support IExpress WExtract.exe.
-->

  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="x86"
    name="wextract"
    type="win32"
  />

  <description>IExpress extraction tool</description>

  <dependency>
    <dependentAssembly>
       <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           processorArchitecture="x86"
           publicKeyToken="6595b64144ccf1df"
           language="*"
       />
    </dependentAssembly>
  </dependency>

  <!-- Identify the application security requirements. -->

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

</assembly>

文件的其余部分只是废话,除了这部分。我在Notepad ++中打开了文件。

2 个答案:

答案 0 :(得分:1)

这是该程序的清单。它作为资源嵌入,类似于图标。它包含Windows关注的配置信息。

Microsoft.Windows.Common-Controls的依赖元素告诉Windows它需要XP版本的视觉样式主题用于其控件,而不是传统的Windows 2000外观。

requestedPrivileges元素声明程序与UAC兼容,并且当它为非提升程序执行 verboten 某事时不需要撒谎,例如写入c:\ windows目录或者HKLM注册表密钥。

清单可以包含存储在并行缓存(c:\ windows \ winsxs)中的DLL的其他条目。并用于实现无reg注册COM注册。这些条目是DLL Hell对策。

任何编写为在Vista上运行并且具有GUI的现代应用程序都包含这些清单条目。 .NET程序也有它们。您可以使用Application Manifest File项目模板添加自定义清单。如果不这样做,那么您将获得仅包含UAC条目的默认清单。

没有提示用什么语言来编写程序。清单独立于编程语言。微软通常用C ++编写。

答案 1 :(得分:0)

看起来它是MS用于部署EXE的自提取软件的一部分。见link。 VB.net和C#(以及其他一些)在编译之前都被转换为一种称为CIL的中间语言,所以如果你能从这个xml文档中学习确切的语言,我会感到惊讶。