[发明专利]将可执行代码编译到较不可信的地址空间中无效
申请号: | 200780043929.0 | 申请日: | 2007-11-27 |
公开(公告)号: | CN101553784A | 公开(公告)日: | 2009-10-07 |
发明(设计)人: | D·C·赖顿;R·S·乌诺基 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F12/02 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈 斌;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可执行 代码 编译 不可信 地址 空间 | ||
背景
随着计算机化系统的日益普及,在这些计算机化系统上使用的各种应用程 序也日益增加。具体而言,现在存在出于任何数量的目的配置的各种各样的应 用程序,无论是用作复杂的操作系统、数据库等,还是用作单个计算器。在许 多情况下,软件开发者将使用任何数量的适当的语言在脑海中了解特定操作系 统的情况下编写新的应用程序。一旦软件完成,开发者就将该应用程序编译成 机器可执行代码,其然后可被安装在具有适当的操作系统的计算机系统上。
因此,可以理解,存在操作系统以及各个应用程序的开发者通常必须考虑 的多个考虑事项。这些关注事项中的许多甚至可能是竞争的。例如,许多应用 程序开发者所关注的可能是敏捷且快速的操作,而许多操作系统开发者所关注 的可能是安全性和稳定性。在某些情况下,安全性和稳定性要求可导致某些应 用程序具有较慢的执行和/或较低的性能。
例如,操作系统可被配置成使应用程序以较不可信的“用户”级运行,而使 其他系统组件以可信的“内核”级运行。结果,以用户级运行的应用程序可能只 能够通过经中间可信组件请求给定功能来执行特定类型的功能。该中间组件然 后可确认该请求并且然后将对该功能的请求传递给内核级组件,该组件然后可 执行该请求。
管理安全性的其他方法是将各种应用程序和组件限于特定可读、可写和/ 或可执行许可空间。例如,操作系统可允许某些应用程序只在读/执行地址空间 中运行。这可允许这些应用程序执行任何现有指令,但将禁止应用程序执行任 何写入操作。相反,该操作系统可允许其他敏感的系统组件只在读/写地址空间 中操作。这可允许这些敏感组件做出新的写入,但将禁止执行这些写入。
在还有一些情况下,操作系统可只允许符合特定代码标准的特定类型的应 用程序在可读、可写及可执行空间中运行。例如,操作系统可只允许“类型安 全”应用程序在读/写/执行地址空间中运行。类型安全规则的一个示例可能是要 求整数值只被加到其他整数值而不是浮点值。然后可使用类型安全编译器来只 编译该类型安全的可执行程序代码,并由此受到操作系统信任。
不幸的是,某些最近的应用程序开发趋势使得以上提到的安全管理方法的 各方面复杂化。例如,各种各样的应用程序开发者现在正使用“托管代码”来创 建视频游戏应用程序。一般而言,托管代码包括可执行程序代码以及可在按需 的基础上编译的中间语言代码。例如,应用程序的开发者可能包括对中间代码 的一个或多个引用(在经编译的、可执行代码中)。因此,当可执行代码来到 其需要使用仅在中间语言代码中可用的函数的时刻时,使用JIT(即时)编译 器来将特定中间语言代码编译成可执行指令。
因此,可以理解,操作系统有时将对托管代码的使用限于类型安全应用程 序。具体而言,因为JIT编译器将需要写入,并且因为该应用程序将需要执行, 并且还因为该应用程序将需要访问该JIT编译器所编写的经编译的代码,所以 该JIT编译器和正在执行的应用程序通常将在可读、可写及可执行的同一地址 空间中操作。由此,如果中间语言代码不是类型安全的(或符合某些其他程序 代码限制),则恶意方可欺骗JIT编译器生成可执行的有害指令。
不幸的是,诸如类型安全等程序代码限制通常被认为与速度和性能考虑冲 突。这对于其中速度和性能考虑处于非常宝贵的地位的视频游戏应用程序而言 可能尤其成问题。因此,在某些情况下,视频游戏应用程序的开发者可发现忽 略诸如类型安全等特定代码规约是更佳且更高效的。
简要概述
本发明的各实现提供了被配置成允许在操作系统中使用托管代码的系统、 方法和计算机程序产品,其中该托管代码可能未必符合任何特定代码标准。例 如,在一个实现中,操作系统提供在两个不同的地址空间中对存储器位置的访 问并且设置这些地址空间中的许可,使得该存储器位置可从这两个不同的地址 空间以不同的许可来访问。在一个实现中,在一个地址空间中操作的JIT编译 器将经编译的代码传递到共享存储器堆中。可执行程序代码进而从该存储器堆 访问该经编译的代码,并在另一个存储器地址空间中执行该经编译的代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200780043929.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:节能型泵站拍门缓闭装置
- 下一篇:双偏心轮驱动阶梯型栅条过滤设备