[發(fā)明專利]一種程序保護方法及裝置有效
| 申請?zhí)枺?/td> | 201810198262.1 | 申請日: | 2018-03-09 |
| 公開(公告)號: | CN108416210B | 公開(公告)日: | 2020-07-14 |
| 發(fā)明(設(shè)計)人: | 卜蘭 | 申請(專利權(quán))人: | 北京頂象技術(shù)有限公司 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52 |
| 代理公司: | 北京超凡志成知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11371 | 代理人: | 王文紅 |
| 地址: | 100000 北京市海*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 程序 保護 方法 裝置 | ||
本發(fā)明提供了一種程序保護方法及裝置,涉及程序安全保護技術(shù)領(lǐng)域。所述程序保護方法在操作系統(tǒng)接收到進(jìn)程執(zhí)行指令時,判斷與所述進(jìn)程執(zhí)行指令對應(yīng)的程序是否為被保護程序,在為是時,所述程序從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)時,控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口進(jìn)行跳轉(zhuǎn)。本發(fā)明提供的程序保護方法繞開系統(tǒng)應(yīng)用程序編程接口,通過使用非系統(tǒng)應(yīng)用程序編程接口實現(xiàn)用戶態(tài)至內(nèi)核態(tài)的跳轉(zhuǎn),避免所述程序被HOOK時跳轉(zhuǎn)至惡意程序。
技術(shù)領(lǐng)域
本發(fā)明涉及程序安全保護技術(shù)領(lǐng)域,具體而言,涉及一種程序保護方法及裝置。
背景技術(shù)
隨著計算機技術(shù)和網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展,人們的生活已經(jīng)無法離開手機、個人電腦等具備運算功能和通信功能的電子設(shè)備。越來越多的個人數(shù)據(jù)、企業(yè)數(shù)據(jù)以及其他重要數(shù)據(jù)被存儲在各種電子設(shè)備中,人們更需要依靠越來越多的應(yīng)用程序來完成各種生產(chǎn)和生活,同時上述類型的應(yīng)用程序往往需要調(diào)用個人數(shù)據(jù)、企業(yè)數(shù)據(jù)以及其他重要數(shù)據(jù)。在大數(shù)據(jù)時代發(fā)生應(yīng)用程序或數(shù)據(jù)庫被侵入的事件,會對相關(guān)公司和用戶造成巨大的經(jīng)濟或其他方面的損失。因此,為了防止惡意程序侵入正常應(yīng)用程序,對應(yīng)用程序的安全防護已不可或缺。
常見的“掛鉤”系統(tǒng)機制即HOOK,常被用于替換程序代碼使其跳轉(zhuǎn)至惡意程序,現(xiàn)有的對抗HOOK的方式在對抗某些HOOK時無法識別HOOK類型或不能有效防止HOOK,存在極大的安全隱患。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例的目的在于提供一種程序保護方法及裝置,以解決上述問題。
第一方面,本發(fā)明實施例提供了一種程序保護方法,所述程序保護方法在操作系統(tǒng)接收到進(jìn)程執(zhí)行指令時,判斷與所述進(jìn)程執(zhí)行指令對應(yīng)的程序是否為被保護程序,在為是時,且所述程序從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)時,控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口進(jìn)行跳轉(zhuǎn)。
綜合第一方面,在所述判斷所述程序是否為被保護程序之前,所述方法還包括:將指定程序添加至被保護程序名單,其中,所述指定程序可以是單個或多個。
綜合第一方面,所述判斷所述程序是否為被保護程序,包括:判斷所述程序是否在所述被保護程序名單中,獲得判斷結(jié)果;基于所述判斷結(jié)果,判斷所述程序是否為被保護程序。其中,在所述判斷結(jié)果為是時,表明所述程序為被保護程序;在所述判斷結(jié)果為否時,表明所述程序不是被保護程序。
綜合第一方面,在所述控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口進(jìn)行跳轉(zhuǎn)之前,所述方法還包括:繞過系統(tǒng)應(yīng)用程序編程接口,預(yù)設(shè)非系統(tǒng)應(yīng)用程序編程接口,其中,所述非系統(tǒng)應(yīng)用程序接口包括從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)的匯編指令。
綜合第一方面,在所述判斷與所述進(jìn)程執(zhí)行指令對應(yīng)的程序為被保護程序之后,在所述控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口進(jìn)行跳轉(zhuǎn)之前,所述方法還包括:判斷所述程序是否發(fā)出調(diào)用內(nèi)核函數(shù)或內(nèi)核數(shù)據(jù)的內(nèi)核態(tài)跳轉(zhuǎn)請求;在為是時,執(zhí)行步驟:控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口跳轉(zhuǎn)至內(nèi)核態(tài)。
第二方面,本發(fā)明實施例提供了一種程序保護裝置,所述程序保護裝置包括程序識別單元和跳轉(zhuǎn)單元。所述程序識別單元用于在操作系統(tǒng)接收到進(jìn)程執(zhí)行指令時,判斷與所述進(jìn)程執(zhí)行指令對應(yīng)的程序是否為被保護程序。所述跳轉(zhuǎn)單元用于在所述程序是被保護程序時,且所述程序從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)時,控制所述程序通過預(yù)設(shè)的非系統(tǒng)應(yīng)用程序編程接口進(jìn)行跳轉(zhuǎn)。
綜合第二方面,所述程序保護裝置還包括名單添加單元和名單判斷單元。所述名單添加單元用于將指定程序添加至被保護程序名單,其中,所述指定程序可以是單個或多個。所述名單判斷單元用于判斷所述程序是否在所述被保護程序名單中,獲得判斷結(jié)果。
綜合第二方面,所述程序保護裝置還包括應(yīng)用程序編程接口轉(zhuǎn)換單元,所述應(yīng)用程序編程接口轉(zhuǎn)換單元用于繞過系統(tǒng)應(yīng)用程序編程接口,預(yù)設(shè)非系統(tǒng)應(yīng)用程序編程接口,其中,所述非系統(tǒng)應(yīng)用程序接口包括從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)的匯編指令。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京頂象技術(shù)有限公司,未經(jīng)北京頂象技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810198262.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





