欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種SDK工具包的生成方法及裝置與流程

文檔序號:11458512閱讀:244來源:國知局
一種SDK工具包的生成方法及裝置與流程

本發(fā)明涉及計算機(jī)安全領(lǐng)域,尤其是一種sdk工具包的生成方法及裝置。



背景技術(shù):

在軟件安全保護(hù)領(lǐng)域中,軟件開發(fā)商為了防止的軟件被黑客破解,保障自身的利益不被損害,通常會使用軟件保護(hù)手段來保護(hù)軟件,如加密鎖,加密鎖的安全性決定開發(fā)商軟件正式發(fā)售后的安全強(qiáng)度。鑒于安全性考慮,加密鎖廠商提供的sdk(softwaredevelopmentkit,sdk)必須保證功能層面上的安全性,以及不同軟件開發(fā)商sdk之間互相隔離的特性,進(jìn)而防止軟件開發(fā)商惡意通過替換安全保護(hù)組件的方式破解其他軟件開發(fā)商的軟件產(chǎn)品,因此生成sdk工具包是加密鎖產(chǎn)品體系的重要組成部分之一。

傳統(tǒng)的sdk工具包的生成方式主要有以下兩種,一種是將sdk工具包中所有模塊與軟件開發(fā)商綁定,對于不同的軟件開發(fā)商需要全部編譯sdk工具包,這使得編譯時間較長,成本較高,影響軟件開發(fā)商的正常使用;另一種是將sdk工具包分為軟件開發(fā)商通用部分和開發(fā)商私有部分分別進(jìn)行編譯,雖然能夠減少編譯的工作量,但是如果軟件開發(fā)商私有部分的編譯被其他模塊依賴,在編譯私有部分的同時有需要編譯相關(guān)文件,如果依賴的模塊較多,編譯時間仍然占用較多。

現(xiàn)有的sdk工具包可以通過增加編譯設(shè)備的方式縮短整體編譯時間,例如使用計算機(jī)集群編譯的方式將單個sdk工具包編譯任務(wù)拆分為多個獨(dú)立的模塊,從而提高編譯效率,但是該方法不能從根本上解決軟件開發(fā)商sdk工具包編譯模塊多,重復(fù)編譯工作量大的問題,也會占用更多的計算機(jī)資源。



技術(shù)實(shí)現(xiàn)要素:

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種sdk工具包的生成方法及裝置,用以提高現(xiàn)有技術(shù)中sdk工具包的編譯效率。

本發(fā)明實(shí)施例的一方面,本發(fā)明提供了一種sdk工具包的生成方法,包括:

當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,所述運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,所述運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯;

將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

進(jìn)一步地,所述在所述開發(fā)商私有文件中生成運(yùn)行時庫包括:

編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分;

編譯所述開發(fā)商密鑰數(shù)據(jù),生成所述運(yùn)行時庫的私有部分;

將所述運(yùn)行時庫的公用部分與私有部分進(jìn)行合并,生成所述運(yùn)行時庫。

進(jìn)一步地,在所述編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分之后,所述方法還包括:

采用代碼安全保護(hù)系統(tǒng)對所述運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù)。

進(jìn)一步地,在所述將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包之前,所述方法還包括:

通過保護(hù)軟件對所述運(yùn)行時庫進(jìn)行加固保護(hù)。

進(jìn)一步地,所述方法還包括:

在調(diào)用預(yù)設(shè)接口時對所述sdk工具包進(jìn)行安全性驗(yàn)證。

依據(jù)本發(fā)明實(shí)施例的另一方面,本發(fā)明實(shí)施例提供了一種sdk工具包的生成裝置,包括:

生成單元,用于當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,所述運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,所述運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯;

合并單元,用于將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

進(jìn)一步地,所述生成單元包括:

第一編譯模塊,用于編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分;

第二編譯模塊,用于編譯所述開發(fā)商密鑰數(shù)據(jù),生成所述運(yùn)行時庫的私有部分;

合并模塊,用于將所述運(yùn)行時庫的公用部分與私有部分進(jìn)行合并,生成所述運(yùn)行時庫。

進(jìn)一步地,在所述編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分之后,

所述第二編譯模塊,還用于采用代碼安全保護(hù)系統(tǒng)對所述運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù)。

進(jìn)一步地,所述裝置還包括:

加固單元,用于通過保護(hù)軟件對所述運(yùn)行時庫進(jìn)行加固保護(hù)。

進(jìn)一步地,所述裝置還包括:

驗(yàn)證單元,用于在調(diào)用預(yù)設(shè)接口時對所述sdk工具包進(jìn)行安全性驗(yàn)證。

借由上述技術(shù)方案,本發(fā)明提供的一種sdk工具包的生成方法及裝置,當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,這里的運(yùn)行時庫中包括公用部分和私有部分,并且公用部分對于不同開發(fā)商無需重復(fù)編譯,私有部分對于不同開發(fā)商需要單獨(dú)編譯,進(jìn)一步將包含有運(yùn)行時庫的開發(fā)商私有文件集與編譯sdk工具包中開發(fā)商通用文件集進(jìn)行合并,生成sdk工具包。與現(xiàn)有技術(shù)的sdk工具包的生成方法相比,由于運(yùn)行時庫的公用部分對于不同開發(fā)商是相同的,本發(fā)明實(shí)施例通過將運(yùn)行時庫的公用部分與私有部分分開編譯,以使得不同開發(fā)商的秘鑰數(shù)據(jù)僅需與公用部分的安全業(yè)務(wù)功能代碼合并,無需進(jìn)行重復(fù)編譯,進(jìn)而將現(xiàn)有技術(shù)編譯不同開發(fā)商私有文件的安全業(yè)務(wù)功能代碼的時間減少到僅需編譯一次運(yùn)行時庫的公用部分,極大程度減少不同開發(fā)商sdk工具包編譯過程中的重復(fù)工作,提升了編譯速度。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說明

通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1示出了本發(fā)明實(shí)施例提供的一種sdk工具包的生成方法流程示意圖;

圖2示出了本發(fā)明實(shí)施例提供的另一種sdk工具包的生成方法流程示意圖;

圖3示出了本發(fā)明實(shí)施例提供的一種sdk工具包的生成裝置結(jié)構(gòu)示意圖;

圖4示出了本發(fā)明實(shí)施例提供的另一種sdk工具包的生成裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

本發(fā)明實(shí)施例提供了一種sdk工具包的生成方法,如圖1所示,該方法主要用于提高sdk工具包的編譯速度,具體步驟包括:

101、當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫。

由于加密鎖的安全性決定開發(fā)商軟件正式發(fā)售后的安全強(qiáng)度,開發(fā)商使用加密鎖的初衷是保護(hù)軟件,防止被黑客破解,保障自身利益不被損害,因此,加密鎖廠商提供的sdk工具包必須保證功能層面的安全性,以及不同開發(fā)商之間相互隔離的特性,防止開發(fā)惡意通過更改sdk工具包的方式破解其他開發(fā)商的軟件產(chǎn)品,這里的sdk工具包的編譯是加密鎖的重要組成部分。

其中,開發(fā)商私有文件為sdk工具包的開發(fā)商私有部分,由于開發(fā)商私有部分記錄有開發(fā)商的特征信息,因此,對于不同開發(fā)商的私有文件不相同,通過將開發(fā)商私有文件與開發(fā)商通用文件相結(jié)合,從而生成sdk工具包,這里的開發(fā)商通用文件為開發(fā)商通用部分,通常情況下,對于不同開發(fā)商來說,開發(fā)商通用文件相同,無需重復(fù)編譯,只需編譯一次,從而結(jié)合不同開發(fā)商私有文件,從而生成不同的開發(fā)商的sdk工具包。

其中,運(yùn)行時庫為研發(fā)人員在編譯sdk工具包中開發(fā)商私有文件時生成的可執(zhí)行程序或動態(tài)庫,運(yùn)行時庫中包括私有部分和公用部分,通過私有部分和公用部分合并生成,需要說明的是,在編譯不同開發(fā)商的sdk工具包時,運(yùn)行時庫的私有部分不相同,對于不同開發(fā)商需要單獨(dú)編譯,而運(yùn)行時庫的公用部分通常時相同,對于不同開發(fā)商無需重復(fù)編譯,通常情況,編譯次數(shù)為1次,從而極大程度節(jié)省sdk工具包的編譯時間。

102、將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

由于開發(fā)商私有文件以及開發(fā)商通用文件中會包含有多個文件,對于本發(fā)明實(shí)施例,通過將運(yùn)行時庫以及開發(fā)商以來運(yùn)行時庫的文件整理至相同目錄,然后將包含有運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合合并,從文件層面區(qū)分sdk開發(fā)商公用文件和私有文件,分別進(jìn)行編譯,有效減少了編譯時間,另外,將運(yùn)行時庫拆分為公用部分和私有部分,進(jìn)一步減少sdk工具包中開發(fā)商私有文件的編譯時間,提升編譯速度。

需要說明的是,運(yùn)行時庫的公用部分和私有部分的編譯、以及合并的過程都是在安全環(huán)境下完成的,不會存在開發(fā)商敏感信息的泄露,也不存在給開發(fā)商造成損失的情況。

結(jié)合上述的實(shí)現(xiàn)方式可以看出,本發(fā)明實(shí)施例提供的一種sdk工具包的生成方法,當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,這里的運(yùn)行時庫中包括公用部分和私有部分,并且公用部分對于不同開發(fā)商無需重復(fù)編譯,私有部分對于不同開發(fā)商需要單獨(dú)編譯,進(jìn)一步將包含有運(yùn)行時庫的開發(fā)商私有文件集與編譯sdk工具包中開發(fā)商通用文件集進(jìn)行合并,生成sdk工具包。與現(xiàn)有技術(shù)的sdk工具包的生成方法相比,由于運(yùn)行時庫的公用部分對于不同開發(fā)商是相同的,本發(fā)明實(shí)施例通過將運(yùn)行時庫的公用部分與私有部分分開編譯,以使得不同開發(fā)商的秘鑰數(shù)據(jù)僅需與公用部分的安全業(yè)務(wù)功能代碼合并,無需進(jìn)行重復(fù)編譯,進(jìn)而將現(xiàn)有技術(shù)編譯不同開發(fā)商私有文件的安全業(yè)務(wù)功能代碼的時間減少到僅需編譯一次運(yùn)行時庫的公用部分,極大程度減少不同開發(fā)商sdk工具包編譯過程中的重復(fù)工作,提升了編譯速度。

以下為了更加詳細(xì)地說明本發(fā)明提出的一種sdk工具包的生成方法,特別是在開發(fā)商私有文件中生成運(yùn)行時庫的步驟,本發(fā)明實(shí)施例還提供了另一種sdk工具包的生成方法,如圖2所示,該方法的具體步驟包括:

201、當(dāng)編譯sdk工具包中開發(fā)商私有文件時,編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分。

本發(fā)明實(shí)施例在編譯sdk工具包中開發(fā)商私有文件runtime時,將安全業(yè)務(wù)功能代碼和開發(fā)商密鑰數(shù)據(jù)拆分成兩部分,通過編譯安全業(yè)務(wù)功能代碼,生成運(yùn)行時庫的公用部分runtime_common.lib,這里的公用部分為開發(fā)商通用的公用部分,通常情況下,對于不同的開發(fā)商運(yùn)行時庫的公用部分的內(nèi)容相同,只需編譯一次。

202、采用代碼安全保護(hù)系統(tǒng)對所述運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù)。

對于本發(fā)明實(shí)施例,由于運(yùn)行時庫的私有部分包含開發(fā)商秘鑰數(shù)據(jù),也就是開發(fā)商唯一標(biāo)識,無需進(jìn)行特殊的保護(hù)處理,而在生成運(yùn)行時庫的公用部分之后,通常采用代碼安全保護(hù)系統(tǒng)對運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù),進(jìn)而防止代碼邏輯被破解,舉例來說,這里的代碼安全保護(hù)系統(tǒng)可以為virboxprotector,virbox是一套代碼安全保護(hù)系統(tǒng),能夠從代碼編譯階段改變代碼編譯生成特征,從而增加匯編代碼分析難度,它能夠與virbox鎖配套的安全加密鎖使用,在virbox運(yùn)行期間電腦必須插入virbox鎖,保證代碼的保護(hù)處理操作全部在鎖內(nèi)執(zhí)行。

203、編譯所述開發(fā)商密鑰數(shù)據(jù),生成所述運(yùn)行時庫的私有部分。

對于本發(fā)明實(shí)施例,通過編譯開發(fā)商密鑰數(shù)據(jù),生成運(yùn)行時庫的私有部分runtime_private.lib,這里的私有部分為開發(fā)商私有的部分,通常情況下,不同開發(fā)商運(yùn)行時庫的私有部分的內(nèi)容不同,需要針對不同開發(fā)商進(jìn)行編譯。

204、將所述運(yùn)行時庫的公用部分與私有部分進(jìn)行合并,生成所述運(yùn)行時庫。

對于本發(fā)明實(shí)施例,通過將運(yùn)行時庫的公用部分runtime_common.lib與運(yùn)行時庫的私有部分runtime_private.lib進(jìn)行合并,生成運(yùn)行時庫runtime,應(yīng)說明的時,這里的運(yùn)行時庫可以為動態(tài)庫runtime.dll和靜態(tài)庫runtime.lib,本發(fā)明實(shí)施例對運(yùn)行時庫的類型不進(jìn)行限定。

需要說明的是,由于運(yùn)行時庫runtime涉及安全性,因此,運(yùn)行時庫的組成部分公用部分與私有部分必須在指定的安全、無網(wǎng)絡(luò)環(huán)境中編譯、鏈接合并,防止關(guān)鍵代碼和密鑰數(shù)據(jù)泄露,給開發(fā)商帶來無法挽回的損失。

205、通過保護(hù)軟件對所述運(yùn)行時庫進(jìn)行加固保護(hù)。

由于運(yùn)行時庫的私有部分中的內(nèi)容涉及開發(fā)商機(jī)密性較高的內(nèi)容,此時的私有部分需要與運(yùn)行時庫的公用部分合并生成運(yùn)行時庫才能使用,因此運(yùn)行時庫的安全性尤為重要,本發(fā)明實(shí)施例通過保護(hù)軟件對運(yùn)行時庫進(jìn)行加固保護(hù)。

舉例來說,上述的保護(hù)軟件可以使用vmprotect對生成的運(yùn)行時庫進(jìn)行加固防護(hù),使得被保護(hù)的運(yùn)行時庫很難被分析與破解,本發(fā)明實(shí)施例對加固保護(hù)所使用的保護(hù)軟件不進(jìn)行限定,vmprotect是一個軟件保護(hù)軟件,通過該軟件保護(hù)的代碼部分在虛擬機(jī)上執(zhí)行,這使得被保護(hù)的程序很難被分解與破解。

206、將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

對于本發(fā)明實(shí)施例,通過將包含有運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合合并,組成sdk工具與庫文件目錄,進(jìn)而生成開發(fā)商sdk工具包。

需要說明的是,由于開發(fā)商通用文件可以適用于不同開發(fā)商,并且不涉及安全性,只需編譯一次,而運(yùn)行時庫中的公用部分同樣可以適用于不同開發(fā)商,且不涉及安全性,通常情況下,無需重復(fù)編譯,編譯次數(shù)為1次,而運(yùn)行時庫中的私有部分涉及開發(fā)商機(jī)密文件,對于不同開發(fā)需要單獨(dú)編譯。

207、在調(diào)用預(yù)設(shè)接口時對所述sdk工具包進(jìn)行安全性驗(yàn)證。

由于密鑰數(shù)據(jù)涉及開發(fā)商的軟件機(jī)密,并且所有與開發(fā)商綁定的安全模塊都會與運(yùn)行時庫runtime關(guān)聯(lián),為了提高生成sdk工具包的安全性,在調(diào)用預(yù)設(shè)接口時可能會涉及到開發(fā)商的敏感數(shù)據(jù),因此需要在調(diào)用預(yù)設(shè)接口時對sdk工具包進(jìn)行安全性驗(yàn)證。

上述預(yù)設(shè)接口是一些預(yù)先定義的函數(shù),目的是提供不同開發(fā)人員訪問sdk工具包中運(yùn)行時庫runtime的能力,進(jìn)一步對sdk工具包進(jìn)行安全行驗(yàn)證,從而保證sdk工具包中數(shù)據(jù)的安全性,本發(fā)明實(shí)施例的安全性驗(yàn)證方式可以有多重,可以為身份驗(yàn)證,還可以是標(biāo)簽驗(yàn)證等,本發(fā)明實(shí)施例對安全性驗(yàn)證方式不進(jìn)行限定。

本發(fā)明實(shí)施例的具體步驟可以包括但不限制于下述實(shí)現(xiàn)方式:當(dāng)編譯sdk工具包中開發(fā)商私有文件時,首先編譯開發(fā)商安全業(yè)務(wù)功能代碼,生成運(yùn)行時庫的公用部分,這里的公用部分對于不同的開發(fā)商通常相同,僅需編譯一次,進(jìn)一步采用代碼安全保護(hù)系統(tǒng)對運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù),然后編譯開發(fā)商密鑰數(shù)據(jù),生成運(yùn)行時庫的私有部分,這里得私有部分對于不同開發(fā)商通常不同,需要單獨(dú)編譯,該部分涉及開發(fā)商機(jī)密性較高的內(nèi)容,通常無需進(jìn)行特殊保護(hù),進(jìn)一步將公用靜態(tài)庫與私有靜態(tài)庫合并運(yùn)行,生成運(yùn)行時庫,通過保護(hù)軟件對運(yùn)行時庫進(jìn)行加固保護(hù)之后,最后將包含有運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

本發(fā)明實(shí)施例提供的另一種sdk工具包的生成方法,通過將sdk工具包的編譯減少到編譯二次公共文件、以及編譯包含密鑰的源代碼文件到最后鏈接時間,極大程度減少不同開發(fā)商sdk編譯過程中重復(fù)的工作,提升了sdk工具包生成速度,對于依賴較多的項(xiàng)目,也可以使用類似的方式,在編譯公用部分時,將功能部分代碼編譯完成,最后階段進(jìn)行鏈接合并的方式提升編譯速度。

進(jìn)一步地,作為圖1所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供一種sdk工具包的生成裝置,該裝置實(shí)施例與前述方法實(shí)施例對應(yīng),為便于閱讀,本裝置不在對前述方法實(shí)施例中的細(xì)節(jié)內(nèi)容進(jìn)行逐一贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容,如圖3所示,所述裝置包括:

生成單元31,可以用于當(dāng)編譯sdk工具包中開發(fā)商私有工具庫時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,所述運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,所述運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯,所述生成單元31為本裝置中用于生成運(yùn)行時庫的主要功能模塊,具體通過將編譯的公用部分和私有部分合并后生成運(yùn)行時庫;

其中,運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯;

合并單元32,可以用于將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包,所述合并單元32為本裝置中用于將開發(fā)商私有文件集合與sdk工具包中開發(fā)商通用文件集合進(jìn)行合并的主要功能模塊,對于本發(fā)明實(shí)施例,通過將包含有開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,從文件層面區(qū)分sdk開發(fā)商公用文件和私有文件,分別進(jìn)行編譯,有效減少了編譯時間。

本發(fā)明實(shí)施例提供的一種sdk工具包的生成裝置,當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,這里的運(yùn)行時庫中包括公用部分和私有部分,并且公用部分對于不同開發(fā)商無需重復(fù)編譯,私有部分對于不同開發(fā)商需要單獨(dú)編譯,進(jìn)一步將包含有運(yùn)行時庫的開發(fā)商私有文件集與編譯sdk工具包中開發(fā)商通用文件集進(jìn)行合并,生成sdk工具包。與現(xiàn)有技術(shù)的sdk工具包的生成方法相比,由于運(yùn)行時庫的公用部分對于不同開發(fā)商是相同的,本發(fā)明實(shí)施例通過將運(yùn)行時庫的公用部分與私有部分分開編譯,以使得不同開發(fā)商的秘鑰數(shù)據(jù)僅需與公用部分的安全業(yè)務(wù)功能代碼合并,無需進(jìn)行重復(fù)編譯,進(jìn)而將現(xiàn)有技術(shù)編譯不同開發(fā)商私有文件的安全業(yè)務(wù)功能代碼的時間減少到僅需編譯一次運(yùn)行時庫的公用部分,極大程度減少不同開發(fā)商sdk工具包編譯過程中的重復(fù)工作,提升了編譯速度。

進(jìn)一步地,作為圖2所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了另一種sdk工具包的生成裝置,該裝置實(shí)施例與前述方法實(shí)施例對應(yīng),為便于閱讀,本裝置不在對前述方法實(shí)施例中的細(xì)節(jié)內(nèi)容進(jìn)行逐一贅述,但應(yīng)當(dāng)明確,本實(shí)施例中的裝置能夠?qū)?yīng)實(shí)現(xiàn)前述方法實(shí)施例中的全部內(nèi)容,如圖4所示,所述裝置包括:

生成單元41,可以用于當(dāng)編譯sdk工具包中開發(fā)商私有工具庫時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,所述運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,所述運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯,所述生成單元41為本裝置中用于生成運(yùn)行時庫的主要功能模塊,具體通過將編譯的公用部分和私有部分合并后生成運(yùn)行時庫;

加固單元42,可以用于通過保護(hù)軟件對所述運(yùn)行時庫進(jìn)行加固保護(hù),所述加固單元42為本裝置中用于對運(yùn)行時庫進(jìn)行加固的主要功能模塊,舉例來說,上述的保護(hù)軟件可以使用vmprotect對生成的運(yùn)行時庫進(jìn)行加固防護(hù),使得被保護(hù)的運(yùn)行時庫很難被分析與破解。

合并單元43,可以用于將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包,所述合并單元43為本裝置中用于將開發(fā)商私有文件集合與sdk工具包中開發(fā)商通用文件集合進(jìn)行合并的主要功能模塊,對于本發(fā)明實(shí)施例,通過將包含有開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,從文件層面區(qū)分sdk開發(fā)商公用文件和私有文件,分別進(jìn)行編譯,有效減少了編譯時間。

驗(yàn)證單元44,可以用于在調(diào)用預(yù)設(shè)接口時對所述sdk工具包進(jìn)行安全性驗(yàn)證,所述驗(yàn)證單元44為本裝置中用于對sdk工具包進(jìn)行安全性驗(yàn)證的主要功能模塊,具體可以通過身份驗(yàn)證或者標(biāo)簽驗(yàn)證等方式對sdk工具包進(jìn)行安全性驗(yàn)證,本發(fā)明實(shí)施例不進(jìn)行限定。

進(jìn)一步地,所述生成單元41包括:

第一編譯模塊411,可以用于編譯所述安全業(yè)務(wù)功能代碼,生成所述運(yùn)行時庫的公用部分;

第二編譯模塊412,可以用于編譯所述開發(fā)商密鑰數(shù)據(jù),生成所述運(yùn)行時庫的私有部分;

合并模塊413,可以用于將所述運(yùn)行時庫的公用部分與私有部分進(jìn)行合并,生成所述運(yùn)行時庫。

進(jìn)一步地,所述第二編譯模塊412,還用于采用代碼安全保護(hù)系統(tǒng)對所述運(yùn)行時庫的公用部分進(jìn)行代碼保護(hù)。

本發(fā)明實(shí)施例提供的另一種sdk工具包的生成裝置,通過將sdk工具包的編譯減少到編譯二次公共文件、以及編譯包含密鑰的源代碼文件到最后鏈接時間,極大程度減少不同開發(fā)商sdk編譯過程中重復(fù)的工作,提升了sdk工具包生成速度,對于依賴較多的項(xiàng)目,也可以使用類似的方式,在編譯公用部分時,將功能部分代碼編譯完成,最后階段進(jìn)行鏈接合并的方式提升編譯速度。

所述sdk工具包的生成裝置包括處理器和存儲器,上述生成單元31和合并單元32等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元來實(shí)現(xiàn)相應(yīng)的功能。

處理器中包含內(nèi)核,由內(nèi)核去存儲器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個或以上,通過調(diào)整內(nèi)核參數(shù)來節(jié)省人力,用以提高現(xiàn)有技術(shù)中sdk工具包的編譯效率。

存儲器可能包括計算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram),存儲器包括至少一個存儲芯片。

本申請還提供了一種計算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時,適于執(zhí)行初始化有如下方法步驟的程序代碼:當(dāng)編譯sdk工具包中開發(fā)商私有文件時,在所述開發(fā)商私有文件中生成運(yùn)行時庫,所述運(yùn)行時庫的公用部分對于不同開發(fā)商無需重復(fù)編譯,所述運(yùn)行時庫的私有部分對于不同開發(fā)商需要單獨(dú)編譯,將包含有所述運(yùn)行時庫的開發(fā)商私有文件集合與編譯sdk工具包中開發(fā)商通用文件集合進(jìn)行合并,生成sdk工具包。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。

本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

在一個典型的配置中,計算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

存儲器可能包括計算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。存儲器是計算機(jī)可讀介質(zhì)的示例。

計算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、其他類型的隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。

以上僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
榆中县| 马龙县| 白玉县| 蒙自县| 安新县| 贺兰县| 尤溪县| 龙里县| 佛冈县| 惠安县| 招远市| 阿城市| 宜兴市| 鄂托克旗| 于田县| 永福县| 池州市| 靖远县| 十堰市| 云林县| 司法| 麻栗坡县| 临安市| 靖安县| 怀远县| 荥阳市| 桦南县| 文水县| 宁陕县| 北宁市| 台北市| 屏东市| 岳普湖县| 涞源县| 嘉祥县| 安仁县| 西青区| 平凉市| 兰州市| 富民县| 彰化市|