亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應(yīng)用防破解方法和裝置的制造方法

文檔序號:9524433閱讀:491來源:國知局
應(yīng)用防破解方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及互聯(lián)網(wǎng)領(lǐng)域,具體涉及應(yīng)用安全領(lǐng)域,尤其涉及應(yīng)用防破解方法和裝置。
【背景技術(shù)】
[0002]目前,在用戶安裝應(yīng)用時,通常通過下載包含有應(yīng)用的源代碼的安裝包的方式進(jìn)行安裝。為防止應(yīng)用被破解,即恢復(fù)出安裝包中的源代碼,在已知的技術(shù)中,通過將安裝包中的源代碼預(yù)先進(jìn)行加密,然后在經(jīng)加密后的源代碼加載在內(nèi)存中運(yùn)行時,再對加密的源代碼進(jìn)行解密,以防止應(yīng)用被破解。
[0003]然而,當(dāng)采用上述方式防止應(yīng)用被破解時,經(jīng)解密之后的源代碼最終依然會全部加載在內(nèi)存中運(yùn)行,導(dǎo)致破解程序依然可以通過不斷的捕獲內(nèi)存中的代碼而獲取應(yīng)用的全部源代碼,完成對應(yīng)用的破解。

【發(fā)明內(nèi)容】

[0004]本申請?zhí)峁┝藨?yīng)用防破解方法和裝置,用于解決上述【背景技術(shù)】部分存在的技術(shù)問題。
[0005]第一方面,本申請?zhí)峁┝藨?yīng)用防破解方法,該方法包括:獲取應(yīng)用對應(yīng)的被第一虛擬機(jī)解析的第一虛擬機(jī)指令,第一虛擬機(jī)指令基于對應(yīng)用的源代碼進(jìn)行編譯生成,第一虛擬機(jī)為解析第一虛擬機(jī)指令以生成機(jī)器指令的虛擬機(jī);選取第一虛擬機(jī)指令中部分第一虛擬機(jī)指令,以及將部分第一虛擬機(jī)指令轉(zhuǎn)換為被第二虛擬機(jī)解析的第二虛擬機(jī)指令,第二虛擬機(jī)為解析第二虛擬機(jī)指令生成機(jī)器指令的虛擬機(jī);基于第一虛擬機(jī)指令中未被轉(zhuǎn)換的第一虛擬機(jī)指令與第二虛擬機(jī)指令,生成應(yīng)用對應(yīng)的可執(zhí)行文件,以使得可執(zhí)行文件被執(zhí)行時,由第一虛擬機(jī)、第二虛擬機(jī)分別執(zhí)行未被轉(zhuǎn)換的第一虛擬機(jī)指令、第二虛擬機(jī)指令。
[0006]第二方面,本申請?zhí)峁┝藨?yīng)用防破解裝置,該裝置包括:獲取單元,配置用于獲取應(yīng)用對應(yīng)的被第一虛擬機(jī)解析的第一虛擬機(jī)指令,第一虛擬機(jī)指令基于對應(yīng)用的源代碼進(jìn)行編譯生成,第一虛擬機(jī)為解析第一虛擬機(jī)指令以生成機(jī)器指令的虛擬機(jī);處理單元,配置用于選取第一虛擬機(jī)指令中部分第一虛擬機(jī)指令,以及將部分第一虛擬機(jī)指令轉(zhuǎn)換為被第二虛擬機(jī)解析的第二虛擬機(jī)指令,第二虛擬機(jī)為解析第二虛擬機(jī)指令生成機(jī)器指令的虛擬機(jī);生成單元,配置用于基于第一虛擬機(jī)指令中未被轉(zhuǎn)換的第一虛擬機(jī)指令與第二虛擬機(jī)指令,生成應(yīng)用對應(yīng)的可執(zhí)行文件,以使得可執(zhí)行文件被執(zhí)行時,由第一虛擬機(jī)、第二虛擬機(jī)分別執(zhí)行未被轉(zhuǎn)換的第一虛擬機(jī)指令、第二虛擬機(jī)指令。
[0007]本申請?zhí)峁┑膽?yīng)用防破解方法和裝置,通過獲取應(yīng)用對應(yīng)的被第一虛擬機(jī)解析的第一虛擬機(jī)指令;選取第一虛擬機(jī)指令中部分第一虛擬機(jī)指令,以及將部分第一虛擬機(jī)指令轉(zhuǎn)換為被第二虛擬機(jī)解析的第二虛擬機(jī)指令;基于第一虛擬機(jī)指令中未被轉(zhuǎn)換的第一虛擬機(jī)指令與第二虛擬機(jī)指令,生成應(yīng)用對應(yīng)的可執(zhí)行文件,以使得可執(zhí)行文件被執(zhí)行時,由第一虛擬機(jī)、第二虛擬機(jī)分別執(zhí)行未被轉(zhuǎn)換的第一虛擬機(jī)指令、第二虛擬機(jī)指令。實現(xiàn)了由第一虛擬機(jī)、第二虛擬機(jī)分別解析第一虛擬機(jī)指令、第二虛擬機(jī)指令,使得即使破解程序從內(nèi)存中提取出應(yīng)用的源代碼對應(yīng)的所有虛擬機(jī)指令,因無法對第一虛擬機(jī)指令、第二虛擬機(jī)指令進(jìn)行區(qū)分,導(dǎo)致破解程序無法基于獲取的虛擬機(jī)指令對源代碼進(jìn)行恢復(fù),從而防止應(yīng)用被破解。
【附圖說明】
[0008]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
[0009]圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
[0010]圖2示出了根據(jù)本申請的應(yīng)用防破解方法的一個實施例的流程圖;
[0011]圖3示出了 Java虛擬機(jī)解析虛擬機(jī)指令生成機(jī)器指令的原理圖;
[0012]圖4示出了根據(jù)本申請的應(yīng)用防破解方法的另一個實施例的流程圖;
[0013]圖5示出了根據(jù)本申請的應(yīng)用防破解裝置的一個實施例的結(jié)構(gòu)示意圖;
[0014]圖6是適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0015]下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0016]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
[0017]圖1示出了可以應(yīng)用本申請的應(yīng)用防破解方法或應(yīng)用防破解裝置的實施例的示例性系統(tǒng)架構(gòu)100。
[0018]如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供傳輸鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無線傳輸鏈路或者光纖電纜等等。
[0019]用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊應(yīng)用,例如網(wǎng)絡(luò)安全類應(yīng)用、SP時通信工具等。
[0020]終端設(shè)備101、102、103可以是具有顯示屏并且支持網(wǎng)絡(luò)通信的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture ExpertsGroup Aud1 Layer III,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4 (Moving PictureExperts Group Aud1 Layer IV,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計算機(jī)和臺式計算機(jī)等等。
[0021]服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對終端設(shè)備101、102、103上的應(yīng)用提供安全支持的服務(wù)器。服務(wù)器105可以接收到終端設(shè)備101、102、103發(fā)送的應(yīng)用安裝包下載請求,并對安裝包進(jìn)行處理,并將處理結(jié)果(例如包含有第二虛擬機(jī)指令的安裝包)反饋給終端設(shè)備。
[0022]應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
[0023]請參考圖2,其示出了根據(jù)本申請的應(yīng)用防破解方法的一個實施例的流程200。本實施例所提供的應(yīng)用防破解方法可以由圖1中的終端設(shè)備101、102、103或服務(wù)器105執(zhí)行。該方法包括以下步驟:
[0024]步驟201,獲取應(yīng)用對應(yīng)的被第一虛擬機(jī)解析的第一虛擬機(jī)指令。
[0025]在本實施例中,第一虛擬機(jī)指令基于對應(yīng)用的源代碼進(jìn)行編譯生成,第一虛擬機(jī)為解析第一虛擬機(jī)指令以生成機(jī)器指令的虛擬機(jī)。例如,當(dāng)應(yīng)用的源代碼為Java代碼時,第一虛擬機(jī)指令可以為由Java編譯器對Java代碼進(jìn)行編譯后生成的Java字節(jié)碼,相應(yīng)地,第一虛擬機(jī)可以為執(zhí)行Java字節(jié)碼的Java虛擬機(jī)。
[0026]應(yīng)理解,上述第一虛擬機(jī)為Java字節(jié)碼,第一虛擬機(jī)可以為Java虛擬機(jī)即為示例性地簡要說明虛擬機(jī)與虛擬機(jī)指令的對應(yīng)關(guān)系,在本實施例中,并不對虛擬機(jī)的類型進(jìn)行限定。以下說明的虛擬機(jī)解析虛擬機(jī)指令生成機(jī)器指令的基本原理既適用于Java虛擬機(jī),也適用于其他類型的虛擬機(jī)。
[0027]在說明虛擬機(jī)解析虛擬機(jī)指令生成機(jī)器指令的原理之前,首先說明應(yīng)用的源代碼(例如C代碼、C++代碼等)經(jīng)編譯之后生成機(jī)器指令的基本原理:用于執(zhí)行機(jī)器指令的CPU對應(yīng)一個指令集(例如X86指令集),相應(yīng)地,CPU執(zhí)行的每一個操作(例如將數(shù)據(jù)寫入內(nèi)存的存儲操作)由多條機(jī)器指令組成。在應(yīng)用的源代碼中,可以由一條或多條代碼表示一個由CPU執(zhí)行的操作,在對源代碼進(jìn)行編譯時,源代碼會被運(yùn)行于平臺的編譯器解析為適用于平臺(例如Linux、Windows)的指令。以CPU執(zhí)行的操作為將數(shù)據(jù)寫入內(nèi)存的存儲操作為例,假設(shè)源代碼中包含一條與存儲操作對應(yīng)的代碼。在Linux平臺上,該代碼經(jīng)由運(yùn)行于Linux上的編譯器(例如GCC編譯器)進(jìn)行編譯之后,可以生成與該代碼對應(yīng)的多條Linux指令,然后將多條L
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1