当前位置: 首页 > 专利查询>微软公司专利>正文

动态中间语言修改及替换制造技术

技术编号:5480780 阅读:224 留言:0更新日期:2012-04-11 18:40
各实施例涉及为二进制文件的至少一个方法在每一方法的基础上提供中间语言(IL)代码。在一实施例中,计算机系统从包含在二进制文件中的各个方法中选择一方法,其中这些方法被配置成执行应用程序的各种预期功能。该计算机系统向所选方法追加指示如何获得要包含在所选方法的主体中的IL代码的描述性标记,接收执行所选方法的命令,并且参考所追加的描述性标记以便基于该描述性标记中的指示来生成IL代码请求。该计算机系统将所生成的IL代码请求提交给一个或多个IL代码提供者以请求用于所选方法的IL代码,接收所请求的用于所选方法的IL代码并将该IL代码插入到所选方法的主体中。

【技术实现步骤摘要】
【国外来华专利技术】动态中间语言修改及替换背景由于计算机使用在当今社会已激增,用于开发软件应用程序以便这些计算机上运 行的方法和系统的数量也已增加。软件应用程序可以用来执行基于正在使用的应用程序的 设计的各种各样的任务。软件应用程序通常包括多个被设计成协同工作以创建某种所需的 最终结果的独立文件。为了编写这样的软件应用程序,软件开发员们通常决定一种要用于 该应用程序的编程语言。如今正使用着很多编程语言,因此,许多软件应用程序是用不同的 语言编写的。这些语言往往彼此不兼容,其中相当多的使用不同的句法,不同的编译方法及 其他不同的代码元素。为了简化多种编程语言在其各种实现中的集成和运用,引入了托管代码以提供一 种使这些不同的应用程序能够交互的平台。然而,托管代码对于在这种托管框架中运行的 应用程序的开发员们引入了新的问题和低效率。例如,中间语言(IL)元素通常被添加到源 代码(或与源代码一起编译)以补充一个文件汇编件(assembly)。这些IL元素提供可以 补充该文件的功能和/或使文件能够与该框架内的其他文件兼容的信息。在一些情况下,可以在运行时为文件提供IL元素,而不是使用静态生成的IL元 素。通常,托管框架所使用的公共语言运行库(CLR)使用挂钩以在运行时提供IL元素。然 而,挂钩适用于一个程序进程内的所有方法且不能单独地应用于给定方法。简要概述本文所描述的各实施例涉及为二进制文件的至少一个方法在每一方法的基础上 提供中间语言(IL)代码。在一实施例中,计算机系统从包含在二进制文件中的各方法中选 择一方法,其中这些方法被配置成执行应用程序的各种预期功能。该计算机系统向所选方 法追加指示如何获得要包含在所选方法的主体中的IL代码的描述性标记,接收执行所选 方法的命令,并且参考所追加的描述性标记以便基于该描述性标记中的指示来生成IL代 码请求。该计算机系统将所生成的IL代码请求提交给一个或多个IL代码提供者以请求用 于所选方法的IL代码,接收所请求的用于所选方法的IL代码并将该IL代码插入到所选方 法的主体中。其他实施例涉及为汇编件的至少一个方法在每一方法的基础上修改中间语言 (IL)代码。计算机系统接收指示修改汇编件中的方法的主体中的IL代码的意图的请求。 该计算机系统从包含在经编译的汇编件中的一个或多个方法中选择一方法,其中这些方法 被配置成执行应用程序的一个或多个预期功能。该计算机系统参考与该方法相关联的描述 性标记中的、指示那些被授权来修改所选方法的IL代码的实体的的安全属性,基于该描述 性标记中的安全属性确定所接收到的请求是从未被授权来修改所选方法的IL代码的实体 接收到的,并且基于该用户未被授权来修改所选方法的IL代码的判定来阻止该用户修改 该IL代码。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定 所要求保护的主题的范围。附图简述为了进一步阐明本专利技术的各实施例的以上和其它优点和特征,将参考附图来呈现 本专利技术的各实施例的更具体的描述。可以理解,这些附图只描绘本专利技术的典型实施例,因此 将不被认为是对其范围的限制。本专利技术将通过使用附图用附加特征和细节来描述和解释, 附图中附图说明图1示出了本专利技术的实施例可以在其中操作的一种计算机体系结构,该操作包括 为二进制文件的至少一个方法在每一方法的基础上提供中间语言(IL)代码。图2示出了用于为二进制文件的至少一个方法在每一方法的基础上提供中间语 言(IL)代码的示例方法的流程图。图3示出了本专利技术的实施例可以在其中操作的一种计算机体系结构,该操作包括 为汇编件的至少一个方法在每一方法的基础上修改中间语言(IL)代码。图4示出了用于为汇编件的至少一个方法在每一方法的基础上修改中间语言 (IL)代码的示例方法的流程图。详细描述本文所描述的各实施例涉及为二进制文件的至少一个方法在每一方法的基础上 提供中间语言(IL)代码。在一实施例中,计算机系统从包含在二进制文件中的各方法中选 择一方法,其中这些方法被配置成执行应用程序的各种预期功能。该计算机系统向所选方 法添加指示如何获得要包含在所选方法的主体中的IL代码的描述性标记,接收执行所选 方法的命令,并且参考所追加的描述性标记以便基于该描述性标记中的指示来生成IL代 码请求。该计算机系统将所生成的IL代码请求提交给一个或多个IL代码提供者以请求用 于所选方法的IL代码,接收所请求的用于所选方法的IL代码并将该IL代码插入到所选方 法的主体中。其他实施例涉及为汇编件的至少一个方法在每一方法的基础上修改中间语言 (IL)代码。计算机系统接收指示修改汇编件中的方法的主体内的IL代码的意图的请求。 该计算机系统从包含在经编译的汇编件中的一个或多个方法中选择一方法,其中这些方法 被配置成执行应用程序的一个或多个预期功能。该计算机系统参考与该方法相关联的描述 性标记中的、指示那些被授权来修改所选方法的IL代码的实体的安全属性,基于该描述性 标记中的安全属性确定所接收到的请求是从未被授权来修改所选方法的IL代码的实体接 收到的,并且基于该用户未被授权来修改所选方法的IL代码的判定来阻止该用户修改该 IL代码。本专利技术的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在 以下做出进一步讨论。本专利技术范围内的各实施例还包括用于承载或存储计算机可执行指令 和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或 专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理 存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限 制,本专利技术的各实施例可包括至少两种完全不同的计算机可读介质物理存储介质和传输 介质。物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁 存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子 数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或 无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质 可包括可用于承载或传输计算机可执行指令或数据结构形式的所需程序代码装置并可由 通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质 的范围内。然而,应当理解,在到达各种计算机系统组件之后,计算机可执行指令或数据结构 形式的程序代码装置可从传输介质自动转移到物理存储介质。例如,通过网络或数据链路 接收到的计算机可执行指令或数据结构可被缓存在网络接口卡内的RAM中,然后最终被传 送到计算机系统RAM和/或计算机系统处的较不易失的物理存储介质。由此,应当理解,物 理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某 一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语 言等中间格式指令、或甚至源代码本文档来自技高网...

【技术保护点】
一种在包含至少一个二进制文件的计算机系统处的方法,所述方法用于为所述二进制文件的至少一个方法在每一方法的基础上提供中间语言(IL)代码,所述方法包括:从包含在二进制文件中的一个或多个方法中选择一方法的动作,所述一个或多个方法被配置成执行应用程序的一个或多个预期功能;向所选方法添加指示如何获得要包含在所选方法的主体中的IL代码的描述性标记的动作;接收执行所选方法的命令的动作;参考所追加的描述性标记以便基于所述描述性标记中的指示来生成IL代码请求的动作;将所生成的IL代码请求提交给一个或多个IL代码提供者以请求用于所选方法的IL代码的动作;接收所请求的用于所选方法的IL代码的动作;以及将所述IL代码插入到所选方法的主体中的动作。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:MD唐嫩AT休斯JW凯玖SJ霍尔X李R克里希纳斯瓦米A金森
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利