[發(fā)明專利]Java應(yīng)用軟件的保護(hù)方法和裝置有效
| 申請?zhí)枺?/td> | 201410448768.5 | 申請日: | 2014-09-04 |
| 公開(公告)號: | CN105404794B | 公開(公告)日: | 2019-09-20 |
| 發(fā)明(設(shè)計)人: | 謝志海;戴云峰;郭德安 | 申請(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F21/10 | 分類號: | G06F21/10 |
| 代理公司: | 廣州三環(huán)專利商標(biāo)代理有限公司 44202 | 代理人: | 郝傳鑫;賈允 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 類文件 方法和裝置 壓縮包 訪問權(quán)限 合并處理 逆向工程 同一函數(shù) 應(yīng)用軟件 遠(yuǎn)程代碼 指令合并 編譯 混淆 指令 | ||
本發(fā)明提供一種Java應(yīng)用軟件的保護(hù)方法和裝置,通過獲取Java應(yīng)用軟件的壓縮包,上述壓縮包中包含至少一個類文件,根據(jù)至少一個類文件中的指令的訪問權(quán)限,對至少一個類文件中的函數(shù)進(jìn)行合并處理,從而,將多個函數(shù)的指令合并到同一函數(shù)中,產(chǎn)生強(qiáng)混淆的效果,同時減少了總函數(shù)數(shù)量,增加了通過反編譯和通過逆向工程獲得應(yīng)用軟件完整的遠(yuǎn)程代碼的難度,從而實現(xiàn)保護(hù)Java應(yīng)用軟件。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)技術(shù),尤其涉及一種Java應(yīng)用軟件的保護(hù)方法和裝置。
背景技術(shù)
Java通過虛擬機(jī)方式運行,具有編程時無需考慮內(nèi)存管理等優(yōu)點,因此,被廣泛應(yīng)用于編寫各種應(yīng)用軟件。
通常情況下,如圖1所示,圖1為Java應(yīng)用軟件的應(yīng)用場景示意圖,采用Java編寫的應(yīng)用軟件源程序代碼經(jīng)過Java編譯器編譯后,生成Java字節(jié)碼(.class文件),Java字節(jié)碼獨立于計算機(jī)硬件及操作系統(tǒng),在運行時由Java虛擬機(jī)的Java解釋器負(fù)責(zé)解釋并通過即時編譯器生成機(jī)器代碼而執(zhí)行。然而,由于Java字節(jié)碼中包含大量的調(diào)試信息,例如:源文件名、行號、字段名、方法名、參數(shù)名和變量名等,這些調(diào)試信息很容易被反編譯和通過逆向工程獲得應(yīng)用軟件完整的源程序代碼,現(xiàn)有技術(shù)中通過用無意義的字符序列來替換調(diào)試信息中的所有名字,增加對字節(jié)碼進(jìn)行反編譯和通過逆向工程獲得應(yīng)用軟件完整的源程序代碼的難度。
然而,采用現(xiàn)有技術(shù)的方法,雖然用無意義字符序列來替換調(diào)試信息中的所有名字可以增加逆向難度,但是對于專業(yè)的逆向分析人員來說仍然很容易獲得Java應(yīng)用軟件完整的源程序代碼,無法保護(hù)Java應(yīng)用軟件。
發(fā)明內(nèi)容
本發(fā)明提供一種Java應(yīng)用軟件的保護(hù)方法和裝置,以保護(hù)Java應(yīng)用軟件。
本發(fā)明第一方面提供一種Java應(yīng)用軟件的保護(hù)方法,包括:
獲取Java應(yīng)用軟件的壓縮包,所述壓縮包中包含至少一個類文件;
獲取所述至少一個類文件中能夠進(jìn)行合并的函數(shù);
將所述能夠進(jìn)行合并的函數(shù)進(jìn)行函數(shù)合并處理。
進(jìn)一步地,所述獲取所述至少一個類文件中能夠進(jìn)行合并的函數(shù),包括:
根據(jù)所述至少一個類文件的訪問權(quán)限、繼承樹、所述至少一個類文件的函數(shù)的訪問權(quán)限和所述函數(shù)的指令的訪問權(quán)限,獲取能夠進(jìn)行合并的函數(shù)。
進(jìn)一步地,所述將所述能夠進(jìn)行合并的函數(shù)進(jìn)行函數(shù)合并處理,包括:
將所述能夠進(jìn)行合并的函數(shù)的實例方法轉(zhuǎn)為能夠進(jìn)行合并的函數(shù)的靜態(tài)方法;
根據(jù)所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法的棧區(qū)重新構(gòu)造一個合并棧區(qū);
根據(jù)所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法生成一個選擇運行函數(shù)的指令,所述指令用于選擇運行的函數(shù);
修改所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法中的指令的訪問權(quán)限;
根據(jù)所述合并棧區(qū)、所述選擇運行函數(shù)的指令、所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法中的指令的訪問權(quán)限和所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法的指令,生成一個合并函數(shù);
將調(diào)用所述能夠進(jìn)行合并的函數(shù)的代碼修改為調(diào)用所述合并函數(shù)。
進(jìn)一步地,所述將所述能夠進(jìn)行合并的函數(shù)的實例方法轉(zhuǎn)為靜態(tài)方法,包括:
根據(jù)所述能夠進(jìn)行合并的函數(shù)所在類重新構(gòu)造參數(shù)列表;
根據(jù)所述重新構(gòu)造的參數(shù)列表生成所述能夠進(jìn)行合并的函數(shù)的靜態(tài)方法。
進(jìn)一步地,所述將所述能夠進(jìn)行合并的函數(shù)進(jìn)行函數(shù)合并處理,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410448768.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點
G06F21-22 .通過限制訪問或處理程序或過程
- 處理訪問權(quán)限的方法和設(shè)備
- 資源訪問方法及裝置
- 訪問權(quán)限管理系統(tǒng)及方法
- 數(shù)據(jù)訪問權(quán)限的控制方法及裝置
- 文件訪問權(quán)限的設(shè)置方法及裝置、終端設(shè)備、存儲介質(zhì)
- 應(yīng)用程序的資源訪問權(quán)限配置方法及裝置
- 權(quán)限策略配置方法、裝置及計算機(jī)可讀存儲介質(zhì)
- 存儲空間的訪問權(quán)限管理方法及存儲權(quán)限管理單元
- 一種應(yīng)用權(quán)限的啟動方法、設(shè)備及機(jī)器可讀存儲介質(zhì)
- 一種前端頁面的顯示方法、系統(tǒng)、裝置及可讀存儲介質(zhì)





