[發(fā)明專利]一種程序代碼保護方法和裝置在審
| 申請?zhí)枺?/td> | 201710419286.0 | 申請日: | 2017-06-06 |
| 公開(公告)號: | CN107292135A | 公開(公告)日: | 2017-10-24 |
| 發(fā)明(設(shè)計)人: | 朱星星;尹彬彬;鐘亞平;卓輝 | 申請(專利權(quán))人: | 網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F21/12;G06F21/60 |
| 代理公司: | 北京同達信恒知識產(chǎn)權(quán)代理有限公司11291 | 代理人: | 李欣 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 程序代碼 保護 方法 裝置 | ||
1.一種程序代碼保護方法,包括:
針對DEX文件中包含的每一函數(shù),如果判斷出該函數(shù)對應(yīng)的函數(shù)代碼指令需要加密,則獲取所述函數(shù)的結(jié)構(gòu)信息,所述結(jié)構(gòu)信息中包含有函數(shù)代碼指令及其訪問標識;
修改所述訪問標識為預(yù)設(shè)值;并
抽取所述函數(shù)對應(yīng)的函數(shù)代碼指令進行加密處理。
2.根據(jù)權(quán)利要求1所述的方法,針對DEX文件中包含的每一函數(shù),按照以下流程判斷該函數(shù)對應(yīng)的函數(shù)代碼指令是否需要加密:
針對DEX文件中包含的每一函數(shù),判斷該函數(shù)是否存在于預(yù)先存儲的白名單中;
如果存在,則確定該函數(shù)對應(yīng)的函數(shù)代碼指令需要加密;
如果不存在,則確定該函數(shù)對應(yīng)的函數(shù)代碼指令不需要加密。
3.根據(jù)權(quán)利要求2所述的方法,所述函數(shù)的結(jié)構(gòu)信息中還包括指令偏移信息;以及
抽取所述函數(shù)對應(yīng)的函數(shù)代碼指令進行加密處理,具體包括:
根據(jù)所述指令偏移信息確定所述函數(shù)對應(yīng)的函數(shù)代碼指令的起始位置和終止位置;
抽取所述開始位置與終止位置之間包含的函數(shù)代碼指令進行加密處理。
4.根據(jù)權(quán)利要求1、2或3所述方法,還包括:
存儲加密后的函數(shù)代碼指令;并
記錄加密后的函數(shù)代碼指令的存儲位置信息。
5.根據(jù)權(quán)利要求4所述的方法,還包括:
在執(zhí)行所述DEX文件時,根據(jù)所述存儲位置信息從相應(yīng)的存儲位置獲取加密后的函數(shù)代碼指令進行解密;并
執(zhí)行解密后的函數(shù)代碼指令。
6.根據(jù)權(quán)利要求4所述的方法,還包括:
在執(zhí)行所述DEX文件時,根據(jù)所述存儲位置信息從相應(yīng)的存儲位置獲取加密后的函數(shù)代碼指令進行解密;并
記錄系統(tǒng)為解密后的函數(shù)代碼指令所分配的內(nèi)存偏移信息;
修改所述函數(shù)的結(jié)構(gòu)信息中包含的指令偏移信息為分配的內(nèi)存偏移信息。
7.一種程序代碼保護裝置,包括:
第一獲取單元,用于針對DEX文件中包含的每一函數(shù),如果判斷出該函數(shù)對應(yīng)的函數(shù)代碼指令需要加密,則獲取所述函數(shù)的結(jié)構(gòu)信息,所述結(jié)構(gòu)信息中包含有函數(shù)代碼指令及其訪問標識;
第一修改單元,用于修改所述訪問標識為預(yù)設(shè)值;
加密單元,用于抽取所述函數(shù)對應(yīng)的函數(shù)代碼指令進行加密處理。
8.根據(jù)權(quán)利要求7所述的裝置,還包括:
判斷單元,用于針對DEX文件中包含的每一函數(shù),判斷該函數(shù)是否存在于預(yù)先存儲的白名單中;如果存在,則確定該函數(shù)對應(yīng)的函數(shù)代碼指令需要加密;如果不存在,則確定該函數(shù)對應(yīng)的函數(shù)代碼指令不需要加密。
9.根據(jù)權(quán)利要求8所述的裝置,所述文件結(jié)構(gòu)信息中還包括指令偏移信息;以及
所述加密單元,具體用于根據(jù)所述指令偏移信息確定所述訪問標識對應(yīng)的函數(shù)代碼指令的起始位置和終止位置;抽取所述開始位置與終止位置之間包含的函數(shù)代碼指令進行加密處理。
10.根據(jù)權(quán)利要求7、8或9所述的裝置,還包括:
存儲單元,用于存儲加密后的函數(shù)代碼指令;
第一記錄單元,用于記錄加密后的函數(shù)代碼指令的存儲位置信息。
11.根據(jù)權(quán)利要求10所述的裝置,還包括:
第二獲取單元,用于在執(zhí)行所述DEX文件時,根據(jù)所述存儲位置信息從相應(yīng)的存儲位置獲取加密后的函數(shù)代碼指令進行解密;
執(zhí)行單元,用于執(zhí)行解密后的函數(shù)代碼指令。
12.根據(jù)權(quán)利要求10所述的裝置,還包括:
第三獲取單元,用于在執(zhí)行所述DEX文件時,根據(jù)所述存儲位置信息從相應(yīng)的存儲位置獲取加密后的函數(shù)代碼指令進行解密;
第二記錄單元,用于記錄為解密后的函數(shù)代碼指令所分配的內(nèi)存偏移信息;
第二修改單元,用于修改所述文件結(jié)構(gòu)信息中包含的指令偏移信息為分配的內(nèi)存偏移信息。
13.一種計算設(shè)備,包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有計算機程序,當(dāng)所述程序被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行權(quán)利要求1~6任一權(quán)利要求所述方法的步驟。
14.一種計算機可讀介質(zhì),其存儲有可由計算設(shè)備執(zhí)行的計算機程序,當(dāng)所述程序在所述計算設(shè)備上運行時,使得所述計算設(shè)備執(zhí)行權(quán)利要求1~6任一所述方法的步驟。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司,未經(jīng)網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710419286.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





