[發明專利]將可執行代碼編譯到較不可信的地址空間中無效
| 申請號: | 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.szxzyx.cn/pat/books/200780043929.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:節能型泵站拍門緩閉裝置
- 下一篇:雙偏心輪驅動階梯型柵條過濾設備





