[發(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)鍵詞: | 一種 程序 保護 方法 裝置 | ||
1.一種程序保護方法,其特征在于,包括:
在操作系統(tǒng)接收到進程執(zhí)行指令時,判斷與所述進程執(zhí)行指令對應(yīng)的程序是否為被保護程序;
在為是時,將所述程序的代碼中所使用的系統(tǒng)API部分重寫,重新編輯Ring3跳轉(zhuǎn)到Ring0前的所有部分,以繞過系統(tǒng)應(yīng)用程序編程接口,預設(shè)非系統(tǒng)應(yīng)用程序編程接口,所述程序從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)時,控制所述程序通過預設(shè)的所述非系統(tǒng)應(yīng)用程序編程接口進行跳轉(zhuǎn)。
2.根據(jù)權(quán)利要求1所述的程序保護方法,其特征在于,在所述判斷所述程序是否為被保護程序之前,所述方法還包括:
將指定程序添加至被保護程序名單,其中,所述指定程序可以是單個或多個。
3.根據(jù)權(quán)利要求2所述的程序保護方法,其特征在于,所述判斷所述程序是否為被保護程序,包括:
判斷所述程序是否在所述被保護程序名單中,獲得判斷結(jié)果;
基于所述判斷結(jié)果,判斷所述程序是否為被保護程序,其中:
在所述判斷結(jié)果為是時,表明所述程序為被保護程序;
在所述判斷結(jié)果為否時,表明所述程序不是被保護程序。
4.根據(jù)權(quán)利要求1所述的程序保護方法,其特征在于,在所述控制所述程序通過預設(shè)的非系統(tǒng)應(yīng)用程序編程接口進行跳轉(zhuǎn)之前,所述方法還包括:
繞過系統(tǒng)應(yīng)用程序編程接口,預設(shè)非系統(tǒng)應(yīng)用程序編程接口,其中,所述非系統(tǒng)應(yīng)用程序接口包括從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)的匯編指令。
5.根據(jù)權(quán)利要求1所述的程序保護方法,其特征在于,在所述判斷與所述進程執(zhí)行指令對應(yīng)的程序為被保護程序之后,在所述控制所述程序通過預設(shè)的非系統(tǒng)應(yīng)用程序編程接口進行跳轉(zhuǎn)之前,所述方法還包括:
判斷所述程序是否發(fā)出調(diào)用內(nèi)核函數(shù)或內(nèi)核數(shù)據(jù)的內(nèi)核態(tài)跳轉(zhuǎn)請求;
在為是時,執(zhí)行步驟:控制所述程序通過預設(shè)的非系統(tǒng)應(yīng)用程序編程接口跳轉(zhuǎn)至內(nèi)核態(tài)。
6.一種程序保護裝置,其特征在于,包括:
程序識別單元,用于在操作系統(tǒng)接收到進程執(zhí)行指令時,判斷與所述進程執(zhí)行指令對應(yīng)的程序是否為被保護程序;
跳轉(zhuǎn)單元,用于在所述程序是被保護程序時,將所述程序的代碼中所使用的系統(tǒng)API部分重寫,重新編輯Ring3跳轉(zhuǎn)到Ring0前的所有部分,以繞過系統(tǒng)應(yīng)用程序編程接口,預設(shè)非系統(tǒng)應(yīng)用程序編程接口,且所述程序從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)時,控制所述程序通過預設(shè)的所述非系統(tǒng)應(yīng)用程序編程接口進行跳轉(zhuǎn)。
7.根據(jù)權(quán)利要求6所述的程序保護裝置,其特征在于,所述裝置還包括:
名單添加單元,用于將指定程序添加至被保護程序名單,其中,所述指定程序可以是單個或多個;
名單判斷單元,用于判斷所述程序是否在所述被保護程序名單中,獲得判斷結(jié)果。
8.根據(jù)權(quán)利要求6所述的程序保護裝置,其特征在于,所述裝置還包括:
應(yīng)用程序編程接口轉(zhuǎn)換單元,用于繞過系統(tǒng)應(yīng)用程序編程接口,預設(shè)非系統(tǒng)應(yīng)用程序編程接口,其中,所述非系統(tǒng)應(yīng)用程序接口包括從用戶態(tài)跳轉(zhuǎn)至內(nèi)核態(tài)的匯編指令。
9.根據(jù)權(quán)利要求6所述的程序保護裝置,其特征在于,所述裝置還包括:
跳轉(zhuǎn)判斷單元,用于判斷所述程序是否發(fā)出調(diào)用內(nèi)核函數(shù)或內(nèi)核數(shù)據(jù)的內(nèi)核態(tài)跳轉(zhuǎn)請求。
10.一種計算機可讀取存儲介質(zhì),其特征在于,所述計算機可讀取存儲介質(zhì)中存儲有計算機程序指令,所述計算機程序指令被一處理器讀取并運行時,執(zhí)行權(quán)利要求1-5任一項所述方法中的步驟。
該專利技術(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/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





