[發明專利]引擎保護方法和裝置在審
| 申請號: | 201611259940.8 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106815520A | 公開(公告)日: | 2017-06-09 |
| 發明(設計)人: | 王萌 | 申請(專利權)人: | 東軟集團股份有限公司 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52;G06F12/02 |
| 代理公司: | 北京英創嘉友知識產權代理事務所(普通合伙)11447 | 代理人: | 魏嘉熹,南毅寧 |
| 地址: | 110179 遼*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 引擎 保護 方法 裝置 | ||
技術領域
本公開涉及網絡安全領域,具體地,涉及一種引擎保護方法和裝置。
背景技術
目前大部分瀏覽器引擎以及Java、Perl、Ruby、Flash等都使用了JIT編譯(Just-In-Time Compilation)技術來提高代碼執行效率。JIT編譯技術在為可執行對象分配內存時會直接分配可預期的、具有可讀寫可執行(Read、Write、Exeute,RWX)權限的內存地址,這樣違背了數據執行保護以及隨機地址分配的保護措施,使得可執行對象執行時其引擎很容易受到緩沖區溢出、堆噴射等惡意攻擊。因此,少數使用JIT編譯技術的引擎采取了實時修改內存地址權限的方法對其進行保護,將分配給可執行對象的內存地址的寫權限與可執行權限分開。但是這樣又會使其處理周期過長,造成使用JIT編譯技術的引擎效率降低。
發明內容
本公開的目的是提供一種引擎保護方法,該方法能夠在一定程度上避免引擎在可執行對象執行時被非法惡意攻擊。
為了實現上述目的,本公開提供一種引擎保護方法,該方法包括:
按照第一預設規則給可執行對象分配內存地址;
按照第二預設規則為所分配的內存地址設置保護區,其中所述保護區的權限為不可寫。
可選的,所述按照第一預設規則給可執行對象分配內存地址包括:
根據默認內存地址分配規則給所述可執行對象分配內存地址。
可選的,所述按照第一預設規則給可執行對象分配內存地址包括:
獲取為所述可執行對象申請內存的內存申請函數中的申請內存大小、申請內存地址和申請內存權限;
當所述申請內存地址為空且所述申請內存權限為可讀寫可執行權限時,對所述申請內存地址進行隨機化處理以得到隨機化內存地址;
根據所述隨機化內存地址、所述申請內存大小和所述申請內存權限確定要分配給所述可執行對象的內存地址;
當所確定的內存地址屬于系統內存地址時,返回所述對所述申請內存地址進行隨機化處理以得到隨機化內存地址的步驟;
當所確定的內存地址不屬于系統內存地址時,將所確定的內存地址分配給所述可執行對象。
可選的,在所述獲取為所述可執行對象申請內存的內存申請函數中的申請內存大小、申請內存地址和申請內存權限之后,所述按照第一預設規則給可執行對象分配內存地址還包括:
判斷所述申請內存大小是否是2的冪次方;
當所述申請內存大小不是2的冪次方時,將所述申請內存大小增加至大于所述申請內存大小的最小的2的冪次方。
可選的,所述按照第二預設規則為所分配的內存地址設置保護區包括:
將所述保護區設置在從所分配的內存地址的首地址開始的預設大小的內存空間內;
將所分配的內存地址向后偏移,其中偏移的大小為所述預設大小。
本公開還提供一種引擎保護裝置,該裝置包括:
內存地址分配模塊,用于按照第一預設規則給可執行對象分配內存地址;
保護區設置模塊,用于按照第二預設規則為所分配的內存地址設置保護區,其中所述保護區的權限為不可寫。
可選的,所述內存地址分配模塊包括:
內存地址默認分配子模塊,用于根據默認內存地址分配規則給所述可執行對象分配內存地址。
可選的,所述內存地址分配模塊包括:
獲取子模塊,用于獲取為所述可執行對象申請內存的內存申請函數中的申請內存大小、申請內存地址和申請內存權限;
內存地址隨機化子模塊,用于當所述申請內存地址為空且所述申請內存權限為可讀寫可執行權限時,對所述申請內存地址進行隨機化處理以得到隨機化內存地址;
內存地址確定子模塊,用于根據所述隨機化內存地址、所述申請內存大小和所述申請內存權限確定要分配給所述可執行對象的內存地址;
內存地址判斷子模塊,用于判斷所述內存地址確定子模塊所確定的內存地址是否屬于系統內存地址,并當所確定的內存地址屬于系統內存地址時,通知所述內存地址隨機化子模塊重新對所述申請內存地址進行隨機化處理以得到隨機化內存地址;
內存地址分配子模塊,用于當所述內存地址判斷子模塊判斷所確定的內存地址不屬于系統內存地址時,將所確定的內存地址分配給所述可執行對象。
可選的,在所述獲取子模塊獲取為所述可執行對象申請內存的內存申請函數中的申請內存大小、申請內存地址和申請內存權限之后,所述內存地址分配模塊還包括:
申請內存大小判斷子模塊,用于判斷所述申請內存大小是否是2的冪次方;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東軟集團股份有限公司,未經東軟集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611259940.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種應用升級方法及終端
- 下一篇:一種樣本關聯性檢測方法、系統及電子設備





