亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置的制造方法

文檔序號:10535297閱讀:257來源:國知局
關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置的制造方法
【專利摘要】本發(fā)明公開了關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置,所述方法包括:根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用的可執(zhí)行文件;根據(jù)關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當客戶端應用啟動之后,若需要運行關鍵代碼,動態(tài)加載該二進制數(shù)據(jù)并執(zhí)行。應用本發(fā)明所述方案,能夠提高關鍵代碼的安全性。
【專利說明】
關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置
【技術領域】
[0001]本發(fā)明涉及計算機應用技術,特別涉及關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置。
【【背景技術】】
[0002]現(xiàn)有技術中,對于客戶端應用,可使用高級語言來編寫程序代碼,并通過編譯鏈接等,得到二進制的可執(zhí)行文件。
[0003]他人在獲取到上述可執(zhí)行文件后,進行反匯編,通過對匯編代碼進行靜態(tài)分析和動態(tài)調(diào)試等,可對可執(zhí)行文件中的關鍵代碼進行修改,從而降低了關鍵代碼的安全性。

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

[0004]本發(fā)明提供了關鍵代碼保護方法以及代碼生成裝置和代碼運行裝置,能夠提高關鍵代碼的安全性。
[0005]具體技術方案如下:
[0006]—種關鍵代碼保護方法,包括:
[0007]根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成所述客戶端應用的可執(zhí)行文件;
[0008]根據(jù)所述關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當所述客戶端應用啟動之后,若需要運行所述關鍵代碼,動態(tài)加載所述二進制數(shù)據(jù)并執(zhí)行。
[0009]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:將所述二進制數(shù)據(jù)保存在服務器中。
[0010]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:對保存在所述服務器中的所述二進制數(shù)據(jù)進行更新。
[0011]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:將所述二進制數(shù)據(jù)進行編碼或加密后,保存在所述服務器中。
[0012]一種關鍵代碼保護方法,包括:
[0013]客戶端應用啟動之后,若需要運行自身的關鍵代碼,則動態(tài)加載所述關鍵代碼對應的、可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),并執(zhí)行所述二進制數(shù)據(jù)。
[0014]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:所述客戶端應用啟動之后,若確定本地磁盤中未保存有所述二進制數(shù)據(jù),則從服務器中拉取所述二進制數(shù)據(jù)并保存到本地磁盤中;
[0015]所述客戶端應用動態(tài)加載所述二進制數(shù)據(jù)包括:所述客戶端應用動態(tài)加載保存在本地磁盤中的所述二進制數(shù)據(jù)。
[0016]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:所述客戶端應用確定本地磁盤中保存有所述二進制數(shù)據(jù),但為更新之前的所述二進制數(shù)據(jù),則從所述服務器中拉取更新之后的所述二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的所述二進制數(shù)據(jù)替換為更新之后的所述二進制數(shù)據(jù)。
[0017]根據(jù)本發(fā)明一優(yōu)選實施例,該方法進一步包括:所述客戶端應用在加載執(zhí)行所述二進制數(shù)據(jù)之前,若確定所述二進制數(shù)據(jù)進行了編碼或加密,則對所述二進制數(shù)據(jù)進行解碼或解密。
[0018]一種代碼生成裝置,包括:
[0019]代碼生成模塊,用于根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成所述客戶端應用的可執(zhí)行文件,根據(jù)所述關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當所述客戶端應用啟動之后,若需要運行所述關鍵代碼,動態(tài)加載所述二進制數(shù)據(jù)并執(zhí)行。
[0020]根據(jù)本發(fā)明一優(yōu)選實施例,所述裝置中進一步包括:保存模塊;
[0021 ]保存模塊,用于將所述二進制數(shù)據(jù)保存到服務器中。
[0022]根據(jù)本發(fā)明一優(yōu)選實施例,所述保存模塊進一步用于,將所述二進制數(shù)據(jù)進行編碼或加密后,保存到所述服務器中。
[0023]根據(jù)本發(fā)明一優(yōu)選實施例,所述代碼生成模塊進一步用于,對所述二進制數(shù)據(jù)進行更新;
[0024]所述保存模塊將更新后的所述二進制數(shù)據(jù)保存到所述服務器中。
[0025]一種代碼運行裝置,包括:
[0026]運行模塊,用于在啟動之后,若需要運行自身的關鍵代碼,則動態(tài)加載所述關鍵代碼對應的、可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),并執(zhí)行所述二進制數(shù)據(jù)。
[0027]根據(jù)本發(fā)明一優(yōu)選實施例,所述裝置中進一步包括:拉取模塊;
[0028]所述拉取模塊,用于在所述運行模塊啟動之后,若確定本地磁盤中未保存有所述二進制數(shù)據(jù),則從服務器中拉取所述二進制數(shù)據(jù)并保存到本地磁盤中;
[0029]所述運行模塊對保存在本地磁盤中的所述二進制數(shù)據(jù)動態(tài)加載并執(zhí)行。
[0030]根據(jù)本發(fā)明一優(yōu)選實施例,所述拉取模塊進一步用于,若確定本地磁盤中保存有所述二進制數(shù)據(jù),但為更新之前的所述二進制數(shù)據(jù),則從所述服務器中拉取更新之后的所述二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的所述二進制數(shù)據(jù)替換為更新之后的所述二進制數(shù)據(jù)。
[0031]根據(jù)本發(fā)明一優(yōu)選實施例,所述運行模塊進一步用于,在加載執(zhí)行所述二進制數(shù)據(jù)之前,若確定所述二進制數(shù)據(jù)進行了編碼或加密,則對所述二進制數(shù)據(jù)進行解碼或解密。
[0032]通過以上介紹可以看出,本發(fā)明所述方案中,對關鍵代碼單獨進行處理,轉(zhuǎn)化為可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),后續(xù),當客戶端應用需要運行關鍵代碼時,可動態(tài)加載執(zhí)行,也就是說,關鍵代碼在客戶端應用中是不可見的,只有在運行時才能看到一段數(shù)據(jù)被加載執(zhí)行,從而克服了現(xiàn)有技術中存在的問題,進而提高了關鍵代碼的安全性。
【【附圖說明】】
[0033]圖1為本發(fā)明所述關鍵代碼保護方法實施例的流程圖。
[0034]圖2為本發(fā)明所述代碼生成裝置實施例的組成結(jié)構(gòu)示意圖。
[0035]圖3為本發(fā)明所述代碼運行裝置實施例的組成結(jié)構(gòu)示意圖。
[0036]圖4為本發(fā)明所述代碼生成裝置、服務器以及客戶端應用之間的交互方式示意圖。
【【具體實施方式】】
[0037]為了使本發(fā)明的技術方案更加清楚、明白,以下參照附圖并舉實施例,對本發(fā)明所述方案作進一步地詳細說明。
[0038]實施例一
[0039]圖1為本發(fā)明所述關鍵代碼保護方法實施例的流程圖,如圖1所示,包括以下具體實現(xiàn)方式。
[0040]在11中,根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用的可執(zhí)行文件。
[0041 ]如何編寫客戶端應用程序代碼為現(xiàn)有技術。
[0042]可通過現(xiàn)有的編譯鏈接方式,根據(jù)去除關鍵代碼后的程序代碼生成可執(zhí)行文件。
[0043]哪些代碼為關鍵代碼可根據(jù)實際需要而定。
[0044]在12中,根據(jù)關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當客戶端應用啟動之后,若需要運行關鍵代碼,動態(tài)加載該二進制數(shù)據(jù)并執(zhí)行。
[0045]對于關鍵代碼,可通過編譯鏈接,將其轉(zhuǎn)化成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù)。轉(zhuǎn)化得到的二進制數(shù)據(jù)可保存在服務器中。
[0046]客戶端應用啟動之后,可首先確定本地磁盤中是否保存有該二進制數(shù)據(jù),如果未保存,則可從服務器中拉取該二進制數(shù)據(jù),并將拉取到的該二進制數(shù)據(jù)保存到本地磁盤中。之后,當需要運行關鍵代碼時,客戶端應用可對保存在本地磁盤中的該二進制數(shù)據(jù)動態(tài)加載并執(zhí)行。
[0047]具體地,可將關鍵代碼寫成一個函數(shù),并通過編譯鏈接,得到可動態(tài)加載執(zhí)行的二進制數(shù)據(jù)??蛻舳藨脧姆掌魃侠〉皆摱M制數(shù)據(jù)之后,可將其保存到本地磁盤上的一個配置文件中,當需要動態(tài)加載執(zhí)行該二進制數(shù)據(jù)時,可首先準備執(zhí)行環(huán)境,如動態(tài)分配內(nèi)存并設置其可執(zhí)行屬性,設置該二進制數(shù)據(jù)對應的函數(shù)在執(zhí)行過程中需要調(diào)用函數(shù)的地址、需要輸入的數(shù)據(jù)地址以及需要輸出的數(shù)據(jù)地址(這些信息可預先定義好)等,之后,可將該二進制數(shù)據(jù)等加載到所分配的內(nèi)存中,并執(zhí)行該二進制數(shù)據(jù)。
[0048]其中,可將該函數(shù)在執(zhí)行過程中需要調(diào)用函數(shù)的地址、需要輸入的數(shù)據(jù)地址以及需要輸出的數(shù)據(jù)地址等封裝成一個結(jié)構(gòu)體,將該結(jié)構(gòu)體的地址作為該函數(shù)的參數(shù)傳遞到該函數(shù)中去,具體實現(xiàn)為現(xiàn)有技術。
[0049]可以看出,采用本實施例所述方法,將關鍵代碼轉(zhuǎn)化為可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),后續(xù),當客戶端應用需要運行關鍵代碼時,可對該二進制數(shù)據(jù)動態(tài)加載執(zhí)行,也就是說,關鍵代碼在客戶端應用中是不可見的,只有在運行時才能看到一段數(shù)據(jù)被加載執(zhí)行,從而克服了現(xiàn)有技術中存在的問題,進而提高了關鍵代碼的安全性。
[0050]在此基礎上,為了進一步提高關鍵代碼的安全性,還可以對保存在服務器上的二進制數(shù)據(jù)進行安全保護處理,如按照預定方式對該二進制數(shù)據(jù)進行編碼或加密。后續(xù)客戶端應用加載執(zhí)行該二進制數(shù)據(jù)之前,若確定該二進制數(shù)據(jù)進行了編碼或加密,則需要先對該二進制數(shù)據(jù)進行去保護處理,如按照與編碼方式對應的解碼方式對該二進制數(shù)據(jù)進行解碼,或者,按照與加密方式對應的解密方式對該二進制數(shù)據(jù)進行解密。具體采用何種編碼方式或何種加密方式不作限制,可根據(jù)實際需要而定。
[0051]另外,如果上述二進制數(shù)據(jù)在運行期間被修改,那么還可對服務器上所保存的該二進制數(shù)據(jù)進行更新,即對關鍵代碼進行更新,以使得所作修改失效,從而進一步提高了關鍵代碼的安全性。
[0052]相應地,客戶端應用啟動之后,若確定本地保存有該二進制數(shù)據(jù),但為更新之前的該二進制數(shù)據(jù),則可從服務器中拉取更新之后的該二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的該二進制數(shù)據(jù)替換為更新之后的該二進制數(shù)據(jù),以保證動態(tài)加載執(zhí)行的二進制數(shù)據(jù)為更新之后的二進制數(shù)據(jù)??蛻舳藨每赏ㄟ^詢問服務器來獲知是否對二進制數(shù)據(jù)進行了更新。
[0053]在實際應用中,為了使客戶端應用按照上述方式運行,需要在客戶端應用對應的程序代碼中增設:拉取代碼、加載代碼。
[0054]加載代碼位于關鍵代碼原來所在位置,用于執(zhí)行:對保存在本地磁盤中的二進制數(shù)據(jù)進行解碼或解密以及對該二進制數(shù)據(jù)進行加載執(zhí)行等。
[0055]拉取代碼位于程序代碼的起始位置,因此將首先被運行,拉取代碼用于執(zhí)行:在客戶端應用啟動之后,確定本地磁盤中是否保存有關鍵代碼對應的可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),若未保存,則從服務器上拉取該二進制數(shù)據(jù),并將拉取到的該二進制數(shù)據(jù)保存到本地磁盤中,若已保存,則進一步向服務器詢問自上次拉取之后是否對該二進制數(shù)據(jù)進行了更新,若進行了更新,則從服務器上拉取更新后的該二進制數(shù)據(jù),并將拉取到的更新后的該二進制數(shù)據(jù)保存到本地磁盤中,若未更新,則可不作處理。
[0056]加載代碼和拉取代碼的具體實現(xiàn)方式不限,只需根據(jù)各自功能編寫相應的代碼即可。
[0057]以上是關于本發(fā)明方法實施例的介紹,與所述方法對應的,本發(fā)明中還提出了一種代碼生成裝置以及一種代碼運行裝置,分別如實施例二和實施例三中所述。
[0058]實施例二
[0059]圖2為本發(fā)明代碼生成裝置實施例的組成結(jié)構(gòu)示意圖,如圖2所示,包括:代碼生成模塊21,還可進一步包括:保存模塊22。
[0060]代碼生成模塊21,用于根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用的可執(zhí)行文件,根據(jù)關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當客戶端應用啟動之后,若需要運行關鍵代碼,動態(tài)加載該二進制數(shù)據(jù)并執(zhí)行。
[0061]可通過編譯鏈接等,根據(jù)去除關鍵代碼后的程序代碼生成可執(zhí)行文件。哪些代碼為關鍵代碼可根據(jù)實際需要而定。
[0062]對于關鍵代碼,可通過編譯鏈接等,將其轉(zhuǎn)化成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù)。轉(zhuǎn)化得到的二進制數(shù)據(jù)可保存到服務器中,保存模塊22即用于將接收自代碼生成模塊21的二進制數(shù)據(jù)保存到服務器中。
[0063]客戶端應用啟動之后,可首先確定本地磁盤中是否保存有該二進制數(shù)據(jù),如果未保存,則可從服務器中拉取該二進制數(shù)據(jù),并將拉取到的該二進制數(shù)據(jù)保存到本地磁盤中。之后,當需要運行關鍵代碼時,客戶端應用可對保存在本地磁盤中的該二進制數(shù)據(jù)動態(tài)加載并執(zhí)行。
[0064]為了進一步提高關鍵代碼的安全性,保存模塊22還可將得到的二進制數(shù)據(jù)進行編碼或加密后,保存到服務器中。后續(xù)客戶端應用在加載執(zhí)行該二進制數(shù)據(jù)之前,若確定該二進制數(shù)據(jù)進行了編碼或加密,則需要先對該二進制數(shù)據(jù)進行去保護處理,如按照與編碼方式對應的解碼方式對該二進制數(shù)據(jù)進行解碼,或者,按照與加密方式對應的解密方式對該二進制數(shù)據(jù)進行解密。具體采用何種編碼方式或何種加密方式不作限制,可根據(jù)實際需要而定。
[0065]另外,如果上述二進制數(shù)據(jù)在運行期間被修改,那么代碼生成模塊21還可對該二進制數(shù)據(jù)進行更新,即對關鍵代碼進行更新,以使得所作修改失效,從而進一步提高了關鍵代碼的安全性。保存模塊22會將更新后的二進制數(shù)據(jù)保存到服務器中,以替代更新之前的二進制數(shù)據(jù)。客戶端應用啟動之后,若確定本地保存有該二進制數(shù)據(jù),但為更新之前的該二進制數(shù)據(jù),則可從服務器中拉取更新之后的該二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的該二進制數(shù)據(jù)替換為更新之后的該二進制數(shù)據(jù),以保證動態(tài)加載執(zhí)行的二進制數(shù)據(jù)是更新之后的二進制數(shù)據(jù),客戶端應用可通過詢問服務器來獲知是否對二進制數(shù)據(jù)進行了更新。
[0066]實施例三
[0067]圖3為本發(fā)明代碼運行裝置實施例的組成結(jié)構(gòu)示意圖,如圖3所示,包括:運行模塊31,還可進一步包括:拉取模塊32。
[0068]運行模塊31,用于在啟動之后,若需要運行自身的關鍵代碼,則動態(tài)加載關鍵代碼對應的、可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),并執(zhí)行該二進制數(shù)據(jù)。
[0069]對于關鍵代碼,可通過編譯鏈接等,將其轉(zhuǎn)化成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù)。轉(zhuǎn)化得到的二進制數(shù)據(jù)可保存在服務器中。
[0070]通過編譯鏈接等,可根據(jù)去除關鍵代碼后的程序代碼生成可執(zhí)行文件。哪些代碼為關鍵代碼可根據(jù)實際需要而定。
[0071]拉取模塊32監(jiān)測到運行模塊31啟動之后,若確定本地磁盤中未保存有所述二進制數(shù)據(jù),則可從服務器中拉取該二進制數(shù)據(jù)并保存到本地磁盤中;后續(xù),運行模塊31會對保存在本地磁盤中的該二進制數(shù)據(jù)動態(tài)加載并執(zhí)行。
[0072]為了進一步提高關鍵代碼的安全性,保存在服務器中的二進制數(shù)據(jù)還可以是經(jīng)過編碼或加密后的,這樣,運行模塊31在加載執(zhí)行該二進制數(shù)據(jù)之前,若確定該二進制數(shù)據(jù)進行了編碼或加密,則需要先對該二進制數(shù)據(jù)進行解碼或解密。
[0073]另外,如果上述二進制數(shù)據(jù)在運行期間被修改,那么還可對該二進制數(shù)據(jù)進行更新,即對關鍵代碼進行更新,以使得所作修改失效,從而進一步提高了關鍵代碼的安全性。若拉取模塊32確定本地磁盤中保存有二進制數(shù)據(jù),但為更新之前的二進制數(shù)據(jù),則從服務器中拉取更新之后的二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的二進制數(shù)據(jù)替換為更新之后的二進制數(shù)據(jù)。
[0074]實施例四
[0075]圖4為本發(fā)明所述代碼生成裝置、服務器以及客戶端應用(代碼運行裝置)之間的交互方式示意圖。
[0076]如圖4所示,代碼生成裝置41根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用43的可執(zhí)行文件,根據(jù)關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),保存到服務器42中,或者,將該二進制數(shù)據(jù)進行解碼或加密后保存到服務器42中。
[0077]客戶端應用43啟動之后,確定本地磁盤中是否保存有該二進制數(shù)據(jù),若未保存,則從服務器42上拉取該二進制數(shù)據(jù),并將拉取到的該二進制數(shù)據(jù)保存到本地磁盤中,若已保存,則進一步向服務器42詢問自上次拉取之后是否對該二進制數(shù)據(jù)進行了更新,若進行了更新,則從服務器42上拉取更新后的該二進制數(shù)據(jù),并將拉取到的更新后的該二進制數(shù)據(jù)保存到本地磁盤中,若未更新,則可不作處理,后續(xù),當客戶端應用43需要運行關鍵代碼時,對該二進制數(shù)據(jù)進行解碼或解密,之后準備執(zhí)行環(huán)境,加載該二進制數(shù)據(jù)并執(zhí)行。
[0078]基于上述各實施例中的介紹可知,采用本發(fā)明所述方案后,關鍵代碼在客戶端應用中是不可見的,只有在運行時才能看到一段數(shù)據(jù)被加載執(zhí)行,從而克服了現(xiàn)有技術中存在的問題,進而提高了關鍵代碼的安全性,在此基礎上,還可以通過對關鍵代碼對應的二進制數(shù)據(jù)進行編碼或加密,以及對二進制數(shù)據(jù)進行更新等,進一步提高關鍵代碼的安全性。
[0079]在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。
[0080]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0081]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
[0082]上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(Processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(R0M,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0083]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
【主權(quán)項】
1.一種關鍵代碼保護方法,其特征在于,包括: 根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用的可執(zhí)行文件; 根據(jù)所述關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當所述客戶端應用啟動之后,若需要運行所述關鍵代碼,動態(tài)加載所述二進制數(shù)據(jù)并執(zhí)行。2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 該方法進一步包括:將所述二進制數(shù)據(jù)保存在服務器中。3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 該方法進一步包括:對保存在所述服務器中的所述二進制數(shù)據(jù)進行更新。4.根據(jù)權(quán)利要求2所述的方法,其特征在于, 該方法進一步包括:將所述二進制數(shù)據(jù)進行編碼或加密后,保存在所述服務器中。5.一種關鍵代碼保護方法,其特征在于,包括: 客戶端應用啟動之后,若需要運行自身的關鍵代碼,則動態(tài)加載所述關鍵代碼對應的、可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),并執(zhí)行所述二進制數(shù)據(jù)。6.根據(jù)權(quán)利要求5所述的方法,其特征在于, 該方法進一步包括:所述客戶端應用啟動之后,若確定本地磁盤中未保存有所述二進制數(shù)據(jù),則從服務器中拉取所述二進制數(shù)據(jù)并保存到本地磁盤中; 所述客戶端應用動態(tài)加載所述二進制數(shù)據(jù)包括:所述客戶端應用動態(tài)加載保存在本地磁盤中的所述二進制數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于, 該方法進一步包括:所述客戶端應用確定本地磁盤中保存有所述二進制數(shù)據(jù),但為更新之前的所述二進制數(shù)據(jù),則從所述服務器中拉取更新之后的所述二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的所述二進制數(shù)據(jù)替換為更新之后的所述二進制數(shù)據(jù)。8.根據(jù)權(quán)利要求6所述的方法,其特征在于, 該方法進一步包括:所述客戶端應用加載執(zhí)行所述二進制數(shù)據(jù)之前,若確定所述二進制數(shù)據(jù)進行了編碼或加密,則對所述二進制數(shù)據(jù)進行解碼或解密。9.一種代碼生成裝置,其特征在于,包括: 代碼生成模塊,用于根據(jù)去除關鍵代碼后的客戶端應用程序代碼生成客戶端應用的可執(zhí)行文件,根據(jù)所述關鍵代碼生成可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),以便當所述客戶端應用啟動之后,若需要運行所述關鍵代碼,動態(tài)加載所述二進制數(shù)據(jù)并執(zhí)行。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述裝置中進一步包括:保存模塊; 保存模塊,用于將所述二進制數(shù)據(jù)保存到服務器中。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述保存模塊進一步用于,將所述二進制數(shù)據(jù)進行編碼或加密后,保存到所述服務器中。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述代碼生成模塊進一步用于,對所述二進制數(shù)據(jù)進行更新; 所述保存模塊將更新后的所述二進制數(shù)據(jù)保存到所述服務器中。13.一種代碼運行裝置,其特征在于,包括: 運行模塊,用于在啟動之后,若需要運行自身的關鍵代碼,則動態(tài)加載所述關鍵代碼對應的、可動態(tài)加載執(zhí)行的二進制數(shù)據(jù),并執(zhí)行所述二進制數(shù)據(jù)。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 所述裝置中進一步包括:拉取模塊; 所述拉取模塊,用于在所述運行模塊啟動之后,若確定本地磁盤中未保存有所述二進制數(shù)據(jù),則從服務器中拉取所述二進制數(shù)據(jù)并保存到本地磁盤中; 所述運行模塊對保存在本地磁盤中的所述二進制數(shù)據(jù)動態(tài)加載并執(zhí)行。15.根據(jù)權(quán)利要求14所述的裝置,其特征在于, 所述拉取模塊進一步用于,若確定本地磁盤中保存有所述二進制數(shù)據(jù),但為更新之前的所述二進制數(shù)據(jù),則從所述服務器中拉取更新之后的所述二進制數(shù)據(jù),并將本地磁盤中保存的更新之前的所述二進制數(shù)據(jù)替換為更新之后的所述二進制數(shù)據(jù)。16.根據(jù)權(quán)利要求14所述的裝置,其特征在于, 所述運行模塊進一步用于,加載執(zhí)行所述二進制數(shù)據(jù)之前,若確定所述二進制數(shù)據(jù)進行了編碼或加密,則對所述二進制數(shù)據(jù)進行解碼或解密。
【文檔編號】G06F21/60GK105893860SQ201610293871
【公開日】2016年8月24日
【申請日】2016年5月5日
【發(fā)明人】金季強
【申請人】百度在線網(wǎng)絡技術(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1