新四季網

SDK發送、應用發布、應用運行方法及裝置與流程

2023-06-03 04:46:11 2


本發明涉及數據通信技術領域,特別涉及一種sdk(softwaredevelopmentkit,軟體開發工具包)發送、應用發布、應用運行方法及裝置。



背景技術:

在移動網際網路盛行的今天,應用開發方在開發某一應用時,往往需要從開發工具提供方獲取sdk,基於該sdk來完成該應用的開發。由於該sdk是對該sdk的原始碼進行編譯得到,所以該sdk的原始碼可以輕易地通過反編譯工具對該sdk破解得到,因此,為了避免在該sdk的傳輸過程中該sdk的原始碼被攻擊者獲取後進行惡意使用,亟需一種sdk發送方法。

目前,提供了一種sdk發送方法,具體可以為:開發人員在編寫sdk的原始碼時,可以手動地將該sdk的原始碼中標準的函數名稱、方法名稱或者類名稱修改為自定義的名稱,得到混淆後的原始碼,對該混淆後的原始碼進行編譯得到加密後的sdk,將該加密後的sdk發送給應用開發方,以供應用開發方基於該加密後的sdk來開發應用。

在實現本發明的過程中,發明人發現現有技術至少存在以下問題:

通過混淆後的原始碼得到加密後的sdk只是增加了反編譯的難度和工作量,並不能完全阻止反編譯,攻擊者仍然可以對該加密後的sdk進行反編譯,得到混淆後的原始碼,通過將該混淆後的原始碼中混淆的名稱替換為有意義的名稱,可以獲取到該原始碼,原始碼的保密性較低。



技術實現要素:

為了解決現有技術的問題,本發明實施例提供了一種sdk發送、應用發布、應用運行方法及裝置。所述技術方案如下:

第一方面,提供了一種sdk發送方法,所述方法包括:

當接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數 文件,所述接口文件包括至少一個接口和至少一個接口函數聲明,所述至少一個接口和所述至少一個接口函數聲明包含於所述第一sdk中,所述加密函數文件是對所述第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

基於所述接口文件、所述加密函數文件和存儲的保護邏輯庫,生成第二sdk,所述保護邏輯庫用於對所述加密函數文件進行加載和解密;

將所述第二sdk發送給應用開發方,以供所述應用開發方基於所述第二sdk發布目標應用。

第二方面,提供了一種應用發布方法,所述方法包括:

接收開發工具提供方發送的第二sdk,所述第二sdk包括接口文件、加密函數文件和保護邏輯庫,所述接口文件包括至少一個接口和至少一個接口函數聲明,所述至少一個接口和所述至少一個接口函數聲明包含於第一sdk中,所述加密函數文件是對所述第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

基於所述接口文件,對應用原始碼進行編譯,所述應用原始碼為待開發的目標應用的原始碼;

將所述加密函數文件、所述保護邏輯庫和編譯後的應用原始碼進行集成,得到所述目標應用;

將所述目標應用發送給應用發布平臺,以對所述目標應用進行發布。

第三方面,提供了一種應用運行方法,所述方法包括:

從應用發布平臺下載目標應用,所述目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,所述加密函數文件是對第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

當接收到所述目標應用的運行指令時,基於所述編譯後的應用原始碼和所述保護邏輯庫,調用所述加密函數文件,以運行所述目標應用。

第四方面,提供了一種sdk發送裝置,所述裝置包括:

處理模塊,用於當接收到處理指令時,對第一sdk進行預處理,得到接口 文件和加密函數文件,所述接口文件包括至少一個接口和至少一個接口函數聲明,所述至少一個接口和所述至少一個接口函數聲明包含於所述第一sdk中,所述加密函數文件是對所述第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

生成模塊,用於基於所述接口文件、所述加密函數文件和存儲的保護邏輯庫,生成第二sdk,所述保護邏輯庫用於對所述加密函數文件進行加載和解密;

發送模塊,用於將所述第二sdk發送給應用開發方,以供所述應用開發方基於所述第二sdk發布目標應用。

第五方面,提供了一種應用發布裝置,所述裝置包括:

接收模塊,用於接收開發工具提供方發送的第二sdk,所述第二sdk包括接口文件、加密函數文件和保護邏輯庫,所述接口文件包括至少一個接口和至少一個接口函數聲明,所述至少一個接口和所述至少一個接口函數聲明包含於第一sdk中,所述加密函數文件是對所述第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

編譯模塊,用於基於所述接口文件,對應用原始碼進行編譯,所述應用原始碼為待開發的目標應用的原始碼;

集成模塊,用於將所述加密函數文件、所述保護邏輯庫和編譯後的應用原始碼進行集成,得到所述目標應用;

發送模塊,用於將所述目標應用發送給應用發布平臺,以對所述目標應用進行發布。

第六方面,提供了一種應用運行裝置,所述裝置包括:

下載模塊,用於從應用發布平臺下載目標應用,所述目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,所述加密函數文件是對第一sdk中的函數進行加密得到,所述第一sdk為用於進行應用開發的sdk;

調用模塊,用於當接收到所述目標應用的運行指令時,基於所述編譯後的應用原始碼和所述保護邏輯庫,調用所述加密函數文件,以運行所述目標應用。

本發明實施例提供的技術方案帶來的有益效果是:在本發明實施例中,當開發工具提供方接收到處理指令時,對第一sdk進行預處理,得到接口文件和 加密函數文件,基於該接口文件、該加密函數文件和存儲的保護邏輯庫,生成第二sdk,操作簡單,生成效率較高,之後,開發工具提供方將該第二sdk發送給應用開發方,以供該應用開發方基於該第二sdk發布目標應用。由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工具量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

附圖說明

為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1是本發明實施例提供的一種sdk發送、應用發布、應用運行方法所涉及的實施環境的示意圖。

圖2是本發明實施例提供的一種sdk發送方法流程圖。

圖3是本發明實施例提供的一種應用發布方法流程圖。

圖4是本發明實施例提供的一種應用運行方法流程圖。

圖5是本發明實施例提供的另一種sdk發送方法流程圖。

圖6是本發明實施例提供的另一種應用發布方法流程圖。

圖7是本發明實施例提供的另一種應用運行方法流程圖。

圖8是本發明實施例提供的一種sdk發送裝置的結構示意圖。

圖9是本發明實施例提供的一種處理模塊的結構示意圖。

圖10是本發明實施例提供的另一種處理模塊的結構示意圖。

圖11是本發明實施例提供的另一種sdk發送裝置的結構示意圖。

圖12是本發明實施例提供的一種應用發布裝置的結構示意圖。

圖13是本發明實施例提供的一種編譯模塊的結構示意圖。

圖14是本發明實施例提供的一種應用運行裝置的結構示意圖。

圖15是本發明實施例提供的一種調用模塊的結構示意圖。

圖16是本發明實施例提供的另一種調用模塊的結構示意圖。

圖17是本發明實施例提供的一種調用單元的結構示意圖。

圖18是本發明實施例提供的再一種sdk發送裝置的結構示意圖。

圖19是本發明實施例提供的另一種應用發布裝置的結構示意圖。

圖20是本發明實施例提供的再一種應用發布裝置的結構示意圖。

圖21是本發明實施例提供的另一種應用運行裝置的結構示意圖。

具體實施方式

為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。

在對本發明實施例進行詳細地解釋說明之前,先對本發明實施例的應用場景予以說明。圖1是本發明實施例提供的一種sdk發送、應用發布、應用運行方法所涉及的實施環境的示意圖,參見圖1,該實施環境包括:開發工具提供方110、應用開發方120、應用發布平臺130和終端140,開發工具提供方110與應用開發方120之間可以通過有線或者無線網絡進行連接,應用開發方120與應用發布平臺130之間可以通過有線或者無線網絡進行連接,應用發布平臺130和終端140之間可以通過有線或者無線網絡進行連接。其中,開發工具提供方110用於生成sdk,並將該sdk發送給應用開發方120,該開發工具提供方110可以是該sdk提供商的伺服器等。應用開發方120用於基於sdk開發應用,並將該應用發送到應用發布平臺130,該應用開發方120可以是終端或者伺服器,例如,該應用開發方120可以為行動電話、平板電腦等、工作站、伺服器等。應用發布平臺130用於發布應用,該應用分發平臺130可以為應用寶、手機助手等。終端140用於從應用發布平臺130中下載應用並運行該應用,該終端140可以為行動電話,計算機,平板設備,個人數字助理等。

圖2是本發明實施例提供的一種sdk發送方法流程圖,該方法用於開發工具提供方,參見圖2,該方法包括:

步驟201:當接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一 sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk。

步驟202:基於接口文件、加密函數文件和存儲的保護邏輯庫,生成第二sdk,保護邏輯庫用於對加密函數文件進行加載和解密。

步驟203:將第二sdk發送給應用開發方,以供應用開發方基於第二sdk發布目標應用。

在本發明實施例中,當開發工具提供方接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,基於該接口文件、該加密函數文件和存儲的保護邏輯庫,生成第二sdk,操作簡單,生成效率較高,之後,開發工具提供方將該第二sdk發送給應用開發方,以供該應用開發方基於該第二sdk發布目標應用。由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工具量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

可選地,對第一sdk進行預處理,得到接口文件和加密函數文件,包括:

從第一sdk中,獲取至少一個接口和至少一個函數;

從至少一個函數中,獲取至少一個接口函數,至少一個接口函數為至少一個接口所對應的函數;

獲取至少一個接口函數聲明,至少一個接口函數聲明為至少一個接口函數的函數聲明;

基於至少一個接口和至少一個接口函數聲明,生成接口文件;

對至少一個函數分別進行加密,得到至少一個函數密文;

基於至少一個函數密文,生成加密函數文件。

可選地,基於至少一個函數密文,生成加密函數文件之後,還包括:

對於至少一個函數中的每個函數,對函數進行哈希運算,得到函數的信息摘要;

對信息摘要進行加密,得到函數的數字籤名;

將數字籤名添加到加密函數文件中。

可選地,將第二sdk發送給應用開發方之前,還包括:

獲取第二sdk所適用的應用標識;

對獲取的應用標識進行哈希運算,得到第一哈希值;

將第一哈希值添加到第二sdk中。

上述所有可選技術方案,均可按照任意結合形成本發明的可選實施例,本發明實施例對此不再一一贅述。

圖3是本發明實施例提供的一種應用發布方法流程圖,該方法用於應用開發方,參見圖3,該方法包括:

步驟301:接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk。

步驟302:基於接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼。

步驟303:將加密函數文件、保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用。

步驟304:將目標應用發送給應用發布平臺,以對目標應用進行發布。

在本發明實施例中,應用開發方接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,基於該接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼,由於該接口文件中包括的是接口和接口函數聲明,因此,即使攻擊者可以從編譯後的應用原始碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。之後,應用開發方將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,將該目標應用發送給應用發布平臺,以對目標應用進行發布。由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

可選地,基於接口文件,對應用原始碼進行編譯,包括:

當第二sdk中包括第一哈希值時,獲取目標應用的應用標識;

對目標應用的應用標識進行哈希運算,得到第二哈希值;

當第二哈希值與第一哈希值相同時,基於接口文件,對應用原始碼進行編譯。

上述所有可選技術方案,均可按照任意結合形成本發明的可選實施例,本發明實施例對此不再一一贅述。

圖4是本發明實施例提供的一種應用運行方法流程圖,該方法用於終端中,參見圖4,該方法包括:

步驟401:從應用發布平臺下載目標應用,目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk。

步驟402:當接收到目標應用的運行指令時,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,以運行目標應用。

在本發明實施例中,終端從應用發布平臺下載目標應用,該目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,當接收到該目標應用的運行指令時,通過保護邏輯庫對該加密函數文件進行加載和解密,並通過該編譯後的應用原始碼調用解密後的該加密函數文件,以運行該目標應用,從而在保證目標應用正常運行的同時提高了該加密函數文件的保密性。

可選地,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,包括:

通過保護邏輯庫對加密函數文件中的至少一個函數密文進行加載和解密,得到至少一個函數;

確定運行指令所調用的目標接口;

基於編譯後的應用原始碼和目標接口,從至少一個函數中獲取目標函數;

通過編譯後的應用原始碼調用目標函數。

可選地,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,包括:

確定運行指令所調用的目標接口;

基於編譯後的應用原始碼和目標接口,通過保護邏輯庫對加密函數文件中 的目標函數密文進行加載和解密,得到目標函數;

通過編譯後的應用原始碼調用目標函數。

可選地,通過編譯後的應用原始碼調用目標函數,包括:

當加密函數文件中包括至少一個數字籤名時,對目標函數進行哈希運算,得到第一摘要;

從至少一個數字籤名中,獲取目標函數的數字籤名;

對獲取的數字籤名進行解密,得到第二摘要;

當第一摘要與第二摘要相同時,通過編譯後的應用原始碼調用目標函數。

上述所有可選技術方案,均可按照任意結合形成本發明的可選實施例,本發明實施例對此不再一一贅述。

圖5是本發明實施例提供的一種sdk發送方法流程圖,該方法用於開發工具提供方,參見圖5,該方法包括:

步驟501:當接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,該接口文件包括至少一個接口和至少一個接口函數聲明,該至少一個接口和該至少一個接口函數聲明包含於第一sdk中,該加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk。

需要說明的是,第一sdk是對sdk原始碼進行編譯得到的,該sdk原始碼為開發工具提供方的開發人員編寫的用於進行應用開發的原始碼。

另外,對第一sdk進行預處理時,可以通過指定保護工具對第一sdk進行預處理,該指定保護工具可以預先設置,本發明實施例對此不做具體限定。

其中,對第一sdk進行預處理,得到接口文件和加密函數文件的操作可以包括如下步驟(1)-(6):

(1)、從第一sdk中,獲取至少一個接口和至少一個函數。

其中,當從第一sdk中獲取至少一個接口時,可以基於存儲的接口列表中的至少一個接口名稱,從第一sdk中獲取至少一個接口,或者,可以對第一sdk中的至少一個接口進行識別,對所識別的至少一個接口進行獲取,本發明實施例對此不做具體限定。

其中,對第一sdk中的至少一個接口進行識別的操作可以參考相關技術,本發明實施例對此不進行詳細闡述。

需要說明的是,從第一sdk中獲取至少一個接口和至少一個函數的操作還可以參考相關技術,本發明實施例對此不再進行詳細闡述。

(2)、從該至少一個函數中,獲取至少一個接口函數,該至少一個接口函數為該至少一個接口所對應的函數。

具體地,對於該至少一個接口中的每個接口,可以從該接口中獲取接口函數名稱,基於該接口函數名稱,從該至少一個函數中,獲取接口函數。

需要說明的是,從該至少一個函數中,獲取至少一個接口函數的操作還可以參考相關技術,本發明實施例對此不再進行詳細闡述。

(3)、獲取至少一個接口函數聲明,該至少一個接口函數聲明為該至少一個接口函數的函數聲明。

其中,當獲取至少一個接口函數聲明時,對於該至少一個接口函數中的每個接口函數,可以對該接口函數中的函數聲明進行識別,對所識別的函數聲明進行獲取,得到接口函數聲明;或者,可以對該接口函數中的函數體進行識別,從該接口函數中刪除所識別的函數體,得到接口函數聲明。

需要說明的是,該接口函數的函數聲明中可以包括該接口函數的函數返回類型、函數名稱、參數名稱和參數類型,該接口函數的函數體中可以包括該接口函數的具體實現。

另外,對接口函數的函數聲明或者函數體進行識別的操作可以參考相關技術,本發明實施例對此不進行詳細闡述。

(4)、基於該至少一個接口和該至少一個接口函數聲明,生成接口文件。

具體地,可以將該至少一個接口和該至少一個接口函數進行打包,得到接口文件,當然,也可以以其它方式基於該至少一個接口和該至少一個接口函數聲明生成接口文件,本發明實施例對此不做具體限定。

(5)、對該至少一個函數分別進行加密,得到至少一個函數密文。

具體地,對於該至少一個函數中的每個函數,可以將該函數進行加密,得到函數密文;或者,可以對該函數進行拆分,得到多個函數段和該多個函數段的位置信息,對該多個函數段和該多個函數段的位置信息進行加密,得到函數密文。

需要說明的是,該多個函數段為將該函數拆分後得到的多段字節碼。另外,該多個函數段的位置信息中包括該多個函數段中各個函數段在函數中的位置。

其中,對該函數進行加密時,可以利用指定加密算法和該開發工具提供方的密鑰對該函數進行加密,當然,也可以利用其它的方法進行加密,本發明實施例對此不做具體限定。

需要說明的是,指定加密算法可以預先設置,如該指定加密算法可以為des(dataencryptionstandard,數據加密標準)算法、aes(advancedencryptionstandard,高級加密標準)算法等等,本發明實施例對此不做具體限定。

其中,對該多個函數段和該多個函數段的位置信息進行加密時,也可以利用指定加密算法和該開發工具提供方的密鑰對該多個函數段和該多個函數段的位置信息整體進行加密,或者,利用指定加密算法和該開發工具提供方的密鑰對該多個函數段和該多個函數段的位置信息分別進行加密,當然,也可以利用其它的方法對該多個函數段和該多個函數段的位置信息進行加密,本發明實施例對此不作具體限定。再者,本發明實施例中對該多個函數段和該多個函數段的位置信息進行加密,得到函數密文,可以進一步提高函數的保密性。

其中,對該函數進行拆分,得到多個函數段時,可以按照指定格式對該函數進行拆分,得到多個函數段。另外,指定格式可以預先設置,如該指定格式可以為函數聲明+函數體、函數名+形式參數+函數體等等,本發明實施例對此不做具體限定。

例如,當該指定格式為函數聲明+函數體時,按照該指定格式對函數進行拆分,得到多個函數段為該函數的函數聲明和函數體。當該指定格式為函數名+形式參數+函數體時,按照該指定格式對函數進行拆分,得到多個函數段為該函數的函數名、形式參數和函數體。

(6)、基於該至少一個函數密文,生成加密函數文件。

具體地,可以將該至少一個函數密文進行打包,得到加密函數文件,當然,也可以以其它方式基於該至少一個函數密文,生成加密函數文件,本發明實施例對此不做具體限定。

進一步地,基於該至少一個函數密文,生成加密函數文件之後,對於至少一個函數中的每個函數,還可以對該函數進行哈希運算,得到該函數的信息摘要;對該信息摘要進行加密,得到該函數的數字籤名;將該數字籤名添加到加密函數文件中。

其中,對該函數進行哈希運算時,可以利用指定哈希算法對該函數進行哈 希運算。另外,該指定哈希算法可以預先設置,如該指定哈希算法可以為md5(message-digestalgorithm5,信息-摘要算法5)、sha1(securehashalgorithm,安全哈希算法)等等,本發明實施例對此不做具體限定。

其中,對該信息摘要進行加密時,可以利用指定加密算法和該開發工具提供方的密鑰對該信息摘要進行加密,當然,也通過利用其它的方法進行加密,本發明實施例對此不做具體限定。

其中,將該數字籤名添加到加密函數文件中時,可以將該數字籤名打包到該加密函數文件中,當然,也可以以其它方式將該數字籤名添加到該加密函數文件中,本發明實施例對此不做具體限定。

步驟502:基於接口文件、加密函數文件和存儲的保護邏輯庫,生成第二sdk,保護邏輯庫用於對加密函數文件進行加載和解密。

具體地,可以將接口文件、加密函數文件和存儲的保護邏輯庫進行打包,得到該第二sdk,當然,也可以以其它方式基於接口文件、加密函數文件和存儲的保護邏輯庫,生成第二sdk,本發明實施例對此不做具體限定。

需要說明的是,該保護邏輯庫可以通過指定保護工具生成,且該指定保護工具可以在完成對第一sdk的預處理時對該保護邏輯庫進行生成。

需要說明的是,由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工作量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

另外,在本發明實施例中,無需提供sdk原始碼,只需對第一sdk進行預處理,基於預處理得到的接口文件、加密函數文件和已存儲的保護邏輯庫,即可生成第二sdk,操作簡單,易於對sdk原始碼進行保護。另外,由於第二sdk是基於第一sdk得到的,第一sdk是對sdk的原始碼進行編譯得到的,因此,開發工具提供方在集成該第二sdk時,可以先採用普通集成方式集成第一sdk,再基於第一sdk集成第二sdk,集成過程簡單,集成效率較高。

步驟503:將第二sdk發送給應用開發方,以供應用開發方基於第二sdk發布目標應用。

需要說明的是,可以通過有線或者無線網絡將第二sdk發送給應用開發方,本發明實施例對此不做具體限定。

進一步地,將第二sdk發送給應用開發方之前,還可以獲取第二sdk所適用的應用標識;對獲取的應用標識進行哈希運算,得到第一哈希值;將第一哈希值添加到第二sdk中。

需要說明的是,應用標識可以為應用的應用名稱和應用籤名中的至少一個,且當該應用標識為應用名稱時,該應用標識用於唯一標識該應用,當該應用標識為應用籤名時,該應用標識用於唯一標識應用提供商,當該應用標識為該應用名稱和應用籤名時,該應用標識用於唯一標識該應用提供商提供的該應用。

需要說明的是,應用籤名為應用提供商在開發某一應用時,對該應用附加的序列號,該序列號用於表示提供該應用的應用提供商。

其中,對獲取的應用標識進行哈希運算時,可以利用指定哈希算法對獲取的應用標識進行哈希運算。

其中,將第一哈希值添加到第二sdk中時,可以將第一哈希值打包到第二sdk中,當然,也可以以其它方式將第一哈希值添加到第二sdk中,本發明實施例對此不做具體限定。

在本發明實施例中,當開發工具提供方接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,基於該接口文件、該加密函數文件和存儲的保護邏輯庫,生成第二sdk,操作簡單,生成效率較高,之後,開發工具提供方將該第二sdk發送給應用開發方,以供該應用開發方基於該第二sdk發布目標應用。由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工具量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

需要說明的是,在本發明實施例中,開發工具提供方可以通過上述步驟501-503生成第二sdk並將該第二sdk發送給應用開發方,而應用開發方基於該第二sdk發布目標應用的操作可以通過如下步驟601-604實現。

圖6是本發明實施例提供的一種應用發布方法流程圖,該方法用於應用開 發方,參見圖6,該方法包括:

步驟601:接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫。

需要說明的是,應用開發方接收的第二sdk即為上述步驟503中開發工具提供方向應用開發方發送的第二sdk。

步驟602:基於該接口文件,對應用原始碼進行編譯,該應用原始碼為待開發的目標應用的原始碼。

具體地,當第二sdk中包括第一哈希值時,獲取該目標應用的應用標識;對該目標應用的應用標識進行哈希運算,得到第二哈希值;當該第二哈希值與該第一哈希值相同時,基於該接口文件,對該應用原始碼進行編譯。

其中,對目標應用的應用標識進行哈希運算時,可以利用指定哈希算法對該目標應用的應用標識進行哈希運算。

需要說明的是,本發明實施例中,可以當該第二哈希值與該第一哈希值相同時,基於該接口文件,對該應用原始碼進行編譯,從而可以避免第二sdk不適用的應用或者應用提供商對該接口文件的非法使用。

另外,當該應用標識為應用的應用名稱時,本發明實施例可以實現對特定應用的檢驗,從而限制該接口文件只能由該特定應用使用,該特定應用為第二sdk所適用的應用;當該應用標識為應用的應用籤名時,本發明實施例可以實現對特定應用提供商的檢驗,從而限制該接口文件只能由該特定應用提供商使用,該特定應用提供商為第二sdk所適用的應用提供商;當該應用標識為應用的應用名稱和應用籤名時,本發明實施例可以實現對特定應用提供商提供的特定應用的檢驗,從而實現該接口文件只能由該特定應用提供商提供的特定應用使用,該特定應用提供商提供的特定應用為第二sdk所適用的應用。

需要說明的是,本發明實施例中可以基於接口文件,對應用原始碼進行編譯,得到編譯後的應用原始碼,該編譯後的應用原始碼中包括接口文件中的至少一個接口和至少一個接口函數聲明,因此,即使攻擊者可以從編譯後的應用原始碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。

步驟603:將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用。

需要說明的是,將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用時,可以將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行打包,得到目標應用,當然,也可以以其它方式將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,本發明實施例對此不做具體限定。

另外,由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取該接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

步驟604:將目標應用發送給應用發布平臺,以對目標應用進行發布。

需要說明的是,可以通過有線或者無線網絡將目標應用發送給應用發布平臺,本發明實施例對此不做具體限定。

需要說明的是,應用發布平臺用於發布應用,該應用發布平臺可以為應用寶、手機助手等等,本發明實施例對此不做具體限定。

在本發明實施例中,應用開發方接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,基於該接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼,由於該接口文件中包括的是接口和接口函數聲明,因此,即使攻擊者可以從編譯後的應用原始碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。之後,應用開發方將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,將該目標應用發送給應用發布平臺,以對目標應用進行發布。由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

需要說明的是,在本發明實施例中,應用開發方可以通過上述步驟601-604基於第二sdk生成目標應用,並將該目標應用發送給應用發布平臺,以對所述目標應用進行發布,而終端從該應用發布平臺下載該目標應用,並運行該目標應用的操作可以通過如下步驟701-702實現。

圖7是本發明實施例提供的一種應用運行方法流程圖,該方法用於終端,參見圖7,該方法包括:

步驟701:從應用發布平臺下載目標應用,該目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼。

需要說明的是,終端下載的目標應用即為上述步驟604中應用開發方向應用發布平臺發送的目標應用。

步驟702:當接收到該目標應用的運行指令時,基於該編譯後的應用原始碼和該保護邏輯庫,調用該加密函數文件,以運行該目標應用。

需要說明的是,運行指令用於指示運行該目標應用,該運行指令可以由用戶觸發,用戶可以通過指定操作觸發,該指定操作可以為滑動操作、單擊操作、語音操作等等,本發明實施例對此不做具體限定。

具體地,基於該編譯後的應用原始碼和該保護邏輯庫,調用該加密函數文件的操作可以包括如下兩種方式:

第一種方式:通過該保護邏輯庫對該加密函數文件中的至少一個函數密文進行加載和解密,得到至少一個函數;確定該運行指令所調用的目標接口;基於該編譯後的應用原始碼和該目標接口,從該至少一個函數中獲取目標函數;通過該編譯後的應用原始碼調用該目標函數。

其中,通過該保護邏輯庫對該加密函數文件中的至少一個函數密文進行加載和解密,得到至少一個函數時,可以通過該保護邏輯庫中的安全類加載器對該至少一個函數密文進行加載,並通過該保護邏輯庫對該加載後的至少一個函數密文進行解密,得到至少一個函數。

由於函數密文是對函數加密後得到的,該函數密文不符合終端的類加載器的加載格式,因此,為了保證該函數密文可以被終端正常加載,可以使用保護邏輯庫中的安全類加載器將函數密文加載到終端中。其中,該安全類加載器用於加載函數密文。

其中,通過保護邏輯庫對該加載後的至少一個函數密文進行解密,得到至少一個函數的操作可以為:當函數密文是對函數進行加密得到時,通過保護邏輯庫提供的指定加密算法的逆算法和開發工具提供方的密鑰對該至少一個函數密文進行解密,得到至少一個函數;當函數密文是對多個函數段和該多個函數段的位置信息進行加密得到時,對於該至少一個函數密文中的每個函數密文,通過保護邏輯庫提供的指定加密算法的逆算法和開發工具提供方的密鑰對該函數密文進行解密,得到多個函數段和該多個函數段的位置信息,基於該多個函 數段的位置信息,對該多個函數段進行組裝,得到該函數。

需要說明的是,基於開發工具提供方對函數的加密方法的不同,通過保護邏輯庫對該加載後的至少一個函數密文的解密方法也不同,該加密方法與該解密方法是對應的。

其中,確定該運行指令所調用的目標接口的操作可以參考相關技術,本發明實施例對此不進行詳細闡述。

其中,基於該編譯後的應用原始碼和該目標接口,從該至少一個函數中獲取目標函數時,可以基於該編譯後的應用原始碼和該目標接口,確定目標函數名稱,基於該目標函數名稱,從該至少一個函數中獲取目標函數。

其中,由於編譯後的應用原始碼中包括至少一個接口和至少一個接口函數聲明,因此,基於該編譯後的應用原始碼和該目標接口,確定目標函數名稱時,可以基於該目標接口,從編譯後的應用原始碼中確定該目標接口對應的接口函數聲明,並從該目標接口對應的接口函數聲明中,獲取接口函數名稱,將該獲取的接口函數名稱確定為目標函數名稱。

其中,基於該目標函數名稱,從該至少一個函數中獲取目標函數時,可以基於該目標函數名稱,從該至少一個函數中獲取該目標函數名稱對應的函數,將獲取的函數確定為目標函數。

其中,通過該編譯後的應用原始碼調用該目標函數的操作可以為:當該加密函數文件中包括至少一個數字籤名時,對該目標函數進行哈希運算,得到第一摘要;從該至少一個數字籤名中,獲取該目標函數的數字籤名;對獲取的數字籤名進行解密,得到第二摘要;當該第一摘要與該第二摘要相同時,通過該編譯後的應用原始碼調用該目標函數。

其中,對該目標函數進行哈希運算時,可以利用指定哈希算法對該目標函數進行哈希運算。

其中,對獲取的數字籤名進行解密,得到第二摘要時,可以通過保護邏輯庫提供的指定加密算法的逆算法和開發工具提供方的密鑰對該獲取的數字籤名進行解密,得到第二摘要。

需要說明的是,基於開發工具提供方對函數的信息摘要的加密方法的不同,通過保護邏輯庫對該獲取的數字籤名的解密方法也不同,該加密方法與該解密方法是對應的。

需要說明的是,在本發明實施例中,當第一摘要與第二摘要相同時,終端可以確定該目標函數未被篡改,進而可以通過該編譯後的應用原始碼調用該目標函數,保證該目標應用的正常運行。

另外,在本發明實施例中,在初次運行該目標應用時,可以通過保護邏輯庫對該加密函數文件中的至少一個函數密文進行加載和加密,得到至少一個函數,從而可以使得終端在初次運行該目標應用之後再次運行該目標應用時,無需再進行加載和解密的操作,直接從該至少一個函數中獲取所要調用的函數並對該函數進行調用即可,提高了函數調用效率,節省了終端的處理資源。

第二種方式:確定該運行指令所調用的目標接口;基於該編譯後的應用原始碼和該目標接口,確定目標函數名稱;基於該目標函數名稱,通過該保護邏輯庫對該加密函數文件中的目標函數密文進行加載和解密,得到目標函數;通過該編譯後的應用原始碼調用該目標函數。

其中,確定該運行指令所調用的目標接口,基於該編譯後的應用原始碼和該目標接口,確定目標函數名稱的操作與步驟702第一種方式中的操作相同,本發明實施例在此不再贅述。

其中,基於該目標函數名稱,通過該保護邏輯庫對該加密函數文件中的目標函數密文進行加載和解密,得到目標函數時,可以基於該目標函數名稱,通過該保護邏輯庫中的安全類加載器對該目標函數密文進行加載,並通過該保護邏輯庫對該加載後的目標函數密文進行解密,得到目標函數。

其中,通過保護邏輯庫對該加載後的目標函數密文進行解密,得到目標函數的操作可以為:當函數密文是對函數進行加密得到時,通過保護邏輯庫提供的指定加密算法的逆算法和開發工具提供方的密鑰對該目標函數密文進行解密,得到目標函數;當函數密文是對多個函數段和該多個函數段的位置信息進行加密得到時,通過保護邏輯庫提供的指定加密算法的逆算法和開發工具提供方的密鑰對該目標函數密文進行解密,得到該多個目標函數段和該多個目標函數段的位置信息,基於該多個目標函數段的位置信息,對該多個目標函數段進行組裝,得到該目標函數。

需要說明的是,基於開發工具提供方對函數的加密方法的不同,通過保護邏輯庫對該加載後的目標函數密文的解密方法也不同,該加密方法與該解密方法是對應的。

其中,通過該編譯後的應用原始碼調用該目標函數的操作與步驟702第一種方式中的操作相同,本發明實施例在此不再贅述。

需要說明的是,本發明實施例中,可以實現對該加密函數文件的按需加載,也即是,可以在確定所要調用的目標函數後,只對該目標函數進行加載和解密,從而避免該終端中出現該加密函數文件中的所有函數,進而避免攻擊者從該終端中獲取到該加密函數文件中的所有函數,提高了該加密函數文件的保密性。

進一步地,通過編譯後的應用原始碼調用該目標函數之後,還可以將該目標函數進行卸載,從而保證在目標應用每次運行時,該終端中都只會存在該次運行所需調用的函數,進一步避免該終端中出現該加密函數文件中的所有函數,避免攻擊者從該終端中獲取到該加密函數文件中的所有函數,進一步提高了該加密函數文件的保密性。

在本發明實施例中,終端從應用發布平臺下載目標應用,該目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,當接收到該目標應用的運行指令時,通過保護邏輯庫對該加密函數文件進行加載和解密,並通過該編譯後的應用原始碼調用解密後的該加密函數文件,以運行該目標應用,從而在保證目標應用正常運行的同時提高了該加密函數文件的保密性。

參見圖8,本發明實施例提供了一種sdk發送裝置,該裝置包括處理模塊801,生成模塊802和發送模塊803。

處理模塊801,用於當接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

生成模塊802,用於基於接口文件、加密函數文件和存儲的保護邏輯庫,生成第二sdk,保護邏輯庫用於對加密函數文件進行加載和解密;

發送模塊803,用於將第二sdk發送給應用開發方,以供應用開發方基於第二sdk發布目標應用。

可選地,參見圖9,該處理模塊801包括第一獲取單元8011,第二獲取單元8012,第三獲取單元8013,第一生成單元8014,第一加密單元8015和第二生成單元8016。

第一獲取單元8011,用於當接收到處理指令時,從第一sdk中,獲取至少一個接口和至少一個函數;

第二獲取單元8012,用於從至少一個函數中,獲取至少一個接口函數,至少一個接口函數為至少一個接口所對應的函數;

第三獲取單元8013,用於獲取至少一個接口函數聲明,至少一個接口函數聲明為至少一個接口函數的函數聲明;

第一生成單元8014,用於基於至少一個接口和至少一個接口函數聲明,生成接口文件;

第一加密單元8015,用於對至少一個函數分別進行加密,得到至少一個函數密文;

第二生成單元8016,用於基於至少一個函數密文,生成加密函數文件。

可選地,參見圖10,該處理模塊還包括運算單元8017,第二加密單元8018和添加單元8019。

運算單元8017,用於對於至少一個函數中的每個函數,對函數進行哈希運算,得到函數的信息摘要;

第二加密單元8018,用於對信息摘要進行加密,得到函數的數字籤名;

添加單元8019,用於將數字籤名添加到加密函數文件中。

可選地,參見圖11,該裝置還包括獲取模塊804,運算模塊805和添加模塊806。

獲取模塊804,用於獲取第二sdk所適用的應用標識;

運算模塊805,用於對獲取的應用標識進行哈希運算,得到第一哈希值;

添加模塊806,用於將第一哈希值添加到第二sdk中。

在本發明實施例中,當開發工具提供方接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,基於該接口文件、該加密函數文件和存儲的保護邏輯庫,生成第二sdk,操作簡單,生成效率較高,之後,開發工具提供方將該第二sdk發送給應用開發方,以供該應用開發方基於該第二sdk發布目標應用。由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工具量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編 譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

需要說明的是:上述實施例提供的sdk發送裝置在sdk發送時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的sdk發送裝置與sdk發送實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。

參見圖12,本發明實施例提供了一種應用發布裝置,該裝置包括接收模塊1201,編譯模塊1202,集成模塊1203和發送模塊1204。

接收模塊1201,用於接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

編譯模塊1202,用於基於接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼;

集成模塊1203,用於將加密函數文件、保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用;

發送模塊1204,用於將目標應用發送給應用發布平臺,以對目標應用進行發布。

可選地,參見圖13,該編譯模塊1202包括獲取單元12021,運算單元12022和編譯單元12023。

獲取單元12021,用於當第二sdk中包括第一哈希值時,獲取目標應用的應用標識;

運算單元12022,用於對目標應用的應用標識進行哈希運算,得到第二哈希值;

編譯單元12023,用於當第二哈希值與第一哈希值相同時,基於接口文件,對應用原始碼進行編譯。

在本發明實施例中,應用開發方接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,基於該接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼,由於該接口文件中包括的是接口和接口函數聲明,因此,即使攻擊者可以從編譯後的應用原始碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。之後,應用開發方將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,將該目標應用發送給應用發布平臺,以對目標應用進行發布。由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

需要說明的是:上述實施例提供的應用發布裝置在應用發布時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的應用發布裝置與應用發布實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。

參見圖14,本發明實施例提供了一種應用運行裝置,該裝置包括下載模塊1401和調用模塊1402。

下載模塊1401,用於從應用發布平臺下載目標應用,目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

調用模塊1402,用於當接收到目標應用的運行指令時,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,以運行目標應用。

可選地,參見圖15,該調用模塊1402包括第一加載解密單元14021,第一確定單元14022,獲取單元14023和調用單元14024。

第一加載解密單元14021,用於當接收到目標應用的運行指令時,通過保護邏輯庫對加密函數文件中的至少一個函數密文進行加載和解密,得到至少一個函數;

第一確定單元14022,用於確定運行指令所調用的目標接口;

獲取單元14023,用於基於編譯後的應用原始碼和目標接口,從至少一個函數中獲取目標函數;

調用單元14024,用於通過編譯後的應用原始碼調用目標函數。

可選地,參見圖16,該調用模塊1402包括第二確定單元14025,第二加載解密單元14026和調用單元14024。

第二確定單元14025,用於當接收到目標應用的運行指令時,確定運行指令所調用的目標接口;

第二加載解密單元14026,用於基於編譯後的應用原始碼和目標接口,通過保護邏輯庫對加密函數文件中的目標函數密文進行加載和解密,得到目標函數;

調用單元14024,用於通過編譯後的應用原始碼調用目標函數。

可選地,參見圖17,該調用單元14024包括運算子單元140241,獲取子單元140242,解密子單元140243和調用子單元140244。

運算子單元140241,用於當加密函數文件中包括至少一個數字籤名時,對目標函數進行哈希運算,得到第一摘要;

獲取子單元140242,用於從至少一個數字籤名中,獲取目標函數的數字籤名;

解密子單元140243,用於對獲取的數字籤名進行解密,得到第二摘要;

調用子單元140244,用於當第一摘要與第二摘要相同時,通過編譯後的應用原始碼調用目標函數。

在本發明實施例中,終端從應用發布平臺下載目標應用,該目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,當接收到該目標應用的運行指令時,通過保護邏輯庫對該加密函數文件進行加載和解密,並通過該編譯後的應用原始碼調用解密後的該加密函數文件,以運行該目標應用,從而在保證目標應用正常運行的同時提高了該加密函數文件的保密性。

需要說明的是:上述實施例提供的應用運行裝置在應用運行時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的應用運行裝置與應用運行發實施例屬於同一構思,其具體實現過程詳見方法實施例,這裡不再贅述。

圖18示出了本發明一個實施例提供的sdk發送裝置伺服器的結構示意圖。該伺服器可以是後臺伺服器集群中的伺服器。具體來講:

伺服器1800包括中央處理單元(cpu)1801、包括隨機存取存儲器(ram)1802和只讀存儲器(rom)1803的系統存儲器1804,以及連接系統存儲器1804和中央處理單元1801的系統總線1805。伺服器1800還包括幫助計算機內的各個器件之間傳輸信息的基本輸入/輸出系統(i/o系統)1806,和用於存儲作業系統1813、應用程式1814和其他程序模塊1815的大容量存儲設備1807。

基本輸入/輸出系統1806包括有用於顯示信息的顯示器1808和用於用戶輸入信息的諸如滑鼠、鍵盤之類的輸入設備1809。其中顯示器1808和輸入設備1809都通過連接到系統總線1805的輸入輸出控制器1810連接到中央處理單元1801。基本輸入/輸出系統1806還可以包括輸入輸出控制器1810以用於接收和處理來自鍵盤、滑鼠、或電子觸控筆等多個其他設備的輸入。類似地,輸入輸出控制器1810還提供輸出到顯示屏、印表機或其他類型的輸出設備。

大容量存儲設備1807通過連接到系統總線1805的大容量存儲控制器(未示出)連接到中央處理單元1801。大容量存儲設備1807及其相關聯的計算機可讀介質為伺服器1800提供非易失性存儲。也就是說,大容量存儲設備1807可以包括諸如硬碟或者cd-rom驅動器之類的計算機可讀介質(未示出)。

不失一般性,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以用於存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據等信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括ram、rom、eprom、eeprom、快閃記憶體或其他固態存儲其技術,cd-rom、dvd或其他光學存儲、磁帶盒、磁帶、磁碟存儲或其他磁性存儲設備。當然,本領域技術人員可知計算機存儲介質不局限於上述幾種。上述的系統存儲器1804和大容量存儲設備1807可以統稱為存儲器。

根據本發明的各種實施例,伺服器1800還可以通過諸如網際網路等網絡連接到網絡上的遠程計算機運行。也即伺服器1800可以通過連接在系統總線1805上的網絡接口單元1811連接到網絡1812,或者說,也可以使用網絡接口單元1811來連接到其他類型的網絡或遠程計算機系統(未示出)。

上述存儲器還包括一個或者一個以上的程序,一個或者一個以上程序存儲 於存儲器中,被配置由cpu執行,所述一個或者一個以上程序包含用於進行本發明實施例提供的如下所述的sdk發送方法的指令,包括:

當接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

基於接口文件、加密函數文件和存儲的保護邏輯庫,生成第二sdk,保護邏輯庫用於對加密函數文件進行加載和解密;

將第二sdk發送給應用開發方,以供應用開發方基於第二sdk發布目標應用。

可選地,對第一sdk進行預處理,得到接口文件和加密函數文件,包括:

從第一sdk中,獲取至少一個接口和至少一個函數;

從至少一個函數中,獲取至少一個接口函數,至少一個接口函數為至少一個接口所對應的函數;

獲取至少一個接口函數聲明,至少一個接口函數聲明為至少一個接口函數的函數聲明;

基於至少一個接口和至少一個接口函數聲明,生成接口文件;

對至少一個函數分別進行加密,得到至少一個函數密文;

基於至少一個函數密文,生成加密函數文件。

可選地,基於至少一個函數密文,生成加密函數文件之後,還包括:

對於至少一個函數中的每個函數,對函數進行哈希運算,得到函數的信息摘要;

對信息摘要進行加密,得到函數的數字籤名;

將數字籤名添加到加密函數文件中。

可選地,將第二sdk發送給應用開發方之前,還包括:

獲取第二sdk所適用的應用標識;

對獲取的應用標識進行哈希運算,得到第一哈希值;

將第一哈希值添加到第二sdk中。

在本發明實施例中,當開發工具提供方接收到處理指令時,對第一sdk進行預處理,得到接口文件和加密函數文件,基於該接口文件、該加密函數文件 和存儲的保護邏輯庫,生成第二sdk,操作簡單,生成效率較高,之後,開發工具提供方將該第二sdk發送給應用開發方,以供該應用開發方基於該第二sdk發布目標應用。由於第二sdk中包括接口文件、加密函數文件和保護邏輯庫,因此,第二sdk可以大大提高反編譯的難度和工具量。且由於接口文件包括的是接口和接口函數聲明,加密函數文件包括的是函數密文,保護邏輯庫中沒有第一sdk中的內容,因此,即使攻擊者可以對該第二sdk成功進行反編譯,也無法獲取到sdk原始碼,從而實現了對sdk原始碼的保護,增強了sdk原始碼的保密性。

圖19和圖20是本發明實施例提供的應用發布裝置的結構示意圖。該應用發布裝置可以為伺服器或者終端。

圖19示出了本發明一個實施例提供的應用發布裝置伺服器的結構示意圖。該伺服器可以是後臺伺服器集群中的伺服器。具體來講:

伺服器1900包括中央處理單元(cpu)1901、包括隨機存取存儲器(ram)1902和只讀存儲器(rom)1903的系統存儲器1904,以及連接系統存儲器1904和中央處理單元1901的系統總線1905。伺服器1900還包括幫助計算機內的各個器件之間傳輸信息的基本輸入/輸出系統(i/o系統)1906,和用於存儲作業系統1913、應用程式1914和其他程序模塊1915的大容量存儲設備1907。

基本輸入/輸出系統1906包括有用於顯示信息的顯示器1908和用於用戶輸入信息的諸如滑鼠、鍵盤之類的輸入設備1909。其中顯示器1908和輸入設備1909都通過連接到系統總線1905的輸入輸出控制器1910連接到中央處理單元1901。基本輸入/輸出系統1906還可以包括輸入輸出控制器1910以用於接收和處理來自鍵盤、滑鼠、或電子觸控筆等多個其他設備的輸入。類似地,輸入輸出控制器1910還提供輸出到顯示屏、印表機或其他類型的輸出設備。

大容量存儲設備1907通過連接到系統總線1905的大容量存儲控制器(未示出)連接到中央處理單元1901。大容量存儲設備1907及其相關聯的計算機可讀介質為伺服器1900提供非易失性存儲。也就是說,大容量存儲設備1907可以包括諸如硬碟或者cd-rom驅動器之類的計算機可讀介質(未示出)。

不失一般性,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以用於存儲諸如計算機可讀指令、數據結構、程序模塊或其他 數據等信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括ram、rom、eprom、eeprom、快閃記憶體或其他固態存儲其技術,cd-rom、dvd或其他光學存儲、磁帶盒、磁帶、磁碟存儲或其他磁性存儲設備。當然,本領域技術人員可知計算機存儲介質不局限於上述幾種。上述的系統存儲器1904和大容量存儲設備1907可以統稱為存儲器。

根據本發明的各種實施例,伺服器1900還可以通過諸如網際網路等網絡連接到網絡上的遠程計算機運行。也即伺服器1900可以通過連接在系統總線1905上的網絡接口單元1911連接到網絡1912,或者說,也可以使用網絡接口單元1911來連接到其他類型的網絡或遠程計算機系統(未示出)。

上述存儲器還包括一個或者一個以上的程序,一個或者一個以上程序存儲於存儲器中,被配置由cpu執行,所述一個或者一個以上程序包含用於進行本發明實施例提供的如下所述的應用發布方法的指令,包括:

接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

基於接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼;

將加密函數文件、保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用;

將目標應用發送給應用發布平臺,以對目標應用進行發布。

可選地,基於接口文件,對應用原始碼進行編譯,包括:

當第二sdk中包括第一哈希值時,獲取目標應用的應用標識;

對目標應用的應用標識進行哈希運算,得到第二哈希值;

當第二哈希值與第一哈希值相同時,基於接口文件,對應用原始碼進行編譯。

在本發明實施例中,應用開發方接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,基於該接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼,由於該接口文件中包括的是接口和接口函數聲明,因此,即使攻擊者可以從編譯後的應用源代 碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。之後,應用開發方將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,將該目標應用發送給應用發布平臺,以對目標應用進行發布。由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

圖20是本發明實施例提供的一種應用發布裝置終端的結構示意圖。參見圖20,終端2000可以包括通信單元2010、包括有一個或一個以上計算機可讀存儲介質的存儲器2020、輸入單元2030、顯示單元2040、傳感器2050、音頻電路2060、wifi(wirelessfidelity,無線保真)模塊2070、包括有一個或者一個以上處理核心的處理器2080、以及電源2090等部件。本領域技術人員可以理解,圖20中示出的終端結構並不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:

通信單元2010可用於收發信息或通話過程中,信號的接收和發送,該通信單元2010可以為rf(radiofreque至少一cy,射頻)電路、路由器、數據機、等網絡通信設備。特別地,當通信單元2010為rf電路時,將基站的下行信息接收後,交由一個或者一個以上處理器2080處理;另外,將涉及上行的數據發送給基站。通常,作為通信單元的rf電路包括但不限於天線、至少一個放大器、調諧器、一個或多個振蕩器、用戶身份模塊(sim)卡、收發信機、耦合器、l至少一a(low至少一oiseamplifier,低噪聲放大器)、雙工器等。此外,通信單元2010還可以通過無線通信與網絡和其他設備通信。所述無線通信可以使用任一通信標準或協議,包括但不限於gsm(globalsystemofmobilecommu至少一icatio至少一,全球移動通訊系統)、gprs(ge至少一eralpacketradioservice,通用分組無線服務)、cdma(codedivisio至少一multipleaccess,碼分多址)、wcdma(wideba至少一dcodedivisio至少一multipleaccess,寬帶碼分多址)、lte(lo至少一gtermevolutio至少一,長期演進)、電子郵件、sms(shortmessagi至少一gservice,短消息服務)等。存儲器2020可用於存儲軟體程序以及模塊,處理器2080通過運行存儲在存儲器2020的軟體程 序以及模塊,從而執行各種功能應用以及數據處理。存儲器2020可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲作業系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據終端2000的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器2020可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁碟存儲器件、快閃記憶體器件、或其他易失性固態存儲器件。相應地,存儲器2020還可以包括存儲器控制器,以提供處理器2080和輸入單元2030對存儲器2020的訪問。

輸入單元2030可用於接收輸入的數字或字符信息,以及產生與用戶設置以及功能控制有關的鍵盤、滑鼠、操作杆、光學或者軌跡球信號輸入。優選地,輸入單元2030可包括觸敏表面2031以及其他輸入設備2032。觸敏表面2031,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面2031上或在觸敏表面2031附近的操作),並根據預先設定的程式驅動相應的連接裝置。可選的,觸敏表面2031可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,並檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,並將它轉換成觸點坐標,再送給處理器2080,並能接收處理器2080發來的命令並加以執行。此外,可以採用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸敏表面2031。除了觸敏表面2031,輸入單元2030還可以包括其他輸入設備2032。優選地,其他輸入設備2032可以包括但不限於物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、滑鼠、操作杆等中的一種或多種。

顯示單元2040可用於顯示由用戶輸入的信息或提供給用戶的信息以及終端2000的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構成。顯示單元2040可包括顯示面板2041,可選的,可以採用lcd(liquidcrystaldisplay,液晶顯示器)、oled(orga至少一iclight-emitti至少一gdiode,有機發光二極體)等形式來配置顯示面板2041。進一步的,觸敏表面2031可覆蓋顯示面板2041,當觸敏表面2031檢測到在其上或附近的觸摸操作後,傳送給處理器2080以確定觸摸事件的類型,隨後處理器2080根據觸摸事件的類型在顯示面板2041上提供相應的視覺輸出。雖然在圖20中,觸 敏表面2031與顯示面板2041是作為兩個獨立的部件來實現輸入和輸入功能,但是在某些實施例中,可以將觸敏表面2031與顯示面板2041集成而實現輸入和輸出功能。

終端2000還可包括至少一種傳感器2050,比如光傳感器、運動傳感器以及其他傳感器。光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示面板2041的亮度,接近傳感器可在終端2000移動到耳邊時,關閉顯示面板2041和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用於識別手機姿態的應用(比如橫豎屏切換、相關遊戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至於終端2000還可配置的陀螺儀、氣壓計、溼度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。

音頻電路2060、揚聲器2061,傳聲器2062可提供用戶與終端2000之間的音頻接口。音頻電路2060可將接收到的音頻數據轉換後的電信號,傳輸到揚聲器2061,由揚聲器2061轉換為聲音信號輸出;另一方面,傳聲器2062將收集的聲音信號轉換為電信號,由音頻電路2060接收後轉換為音頻數據,再將音頻數據輸出處理器2080處理後,經通信單元2010以發送給比如另一終端,或者將音頻數據輸出至存儲器2020以便進一步處理。音頻電路2060還可能包括耳塞插孔,以提供外設耳機與終端2000的通信。

為了實現無線通信,該終端上可以配置有無線通信單元2070,該無線通信單元2070可以為wifi模塊。wifi屬於短距離無線傳輸技術,終端2000通過無線通信單元2070可以幫助用戶收發電子郵件、瀏覽網頁和訪問流式媒體等,它為用戶提供了無線的寬帶網際網路訪問。雖然圖中示出了無線通信單元2070,但是可以理解的是,其並不屬於終端2000的必須構成,完全可以根據需要在不改變發明的本質的範圍內而省略。

處理器2080是終端2000的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在存儲器2020內的軟體程序和/或模塊,以及調用存儲在存儲器2020內的數據,執行終端2000的各種功能和處理數據,從而對手機進行整體監控。可選的,處理器2080可包括一個或多個處理核心;優選的,處理器2080可集成應用處理器和調製解調處理器,其中,應用處理器主 要處理作業系統、用戶界面和應用程式等,調製解調處理器主要處理無線通信。可以理解的是,上述調製解調處理器也可以不集成到處理器2080中。

終端2000還包括給各個部件供電的電源2090(比如電池),優選的,電源可以通過電源管理系統與處理器2080邏輯相連,從而通過電源管理系統實現管理充電、放電、以及功耗管理等功能。電源2060還可以包括一個或一個以上的直流或交流電源、再充電系統、電源故障檢測電路、電源轉換器或者逆變器、電源狀態指示器等任意組件。

儘管未示出,終端2000還可以包括攝像頭、藍牙模塊等,在此不再贅述。

在本實施例中,終端還包括有一個或者一個以上的程序,這一個或者一個以上程序存儲於存儲器中,且經配置以由一個或者一個以上處理器執行,所述一個或者一個以上程序包含用於進行本發明實施例提供的如下所述的應用發布方法的指令,包括:

接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,接口文件包括至少一個接口和至少一個接口函數聲明,至少一個接口和至少一個接口函數聲明包含於第一sdk中,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

基於接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼;

將加密函數文件、保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用;

將目標應用發送給應用發布平臺,以對目標應用進行發布。

可選地,基於接口文件,對應用原始碼進行編譯,包括:

當第二sdk中包括第一哈希值時,獲取目標應用的應用標識;

對目標應用的應用標識進行哈希運算,得到第二哈希值;

當第二哈希值與第一哈希值相同時,基於接口文件,對應用原始碼進行編譯。

在本發明實施例中,應用開發方接收開發工具提供方發送的第二sdk,第二sdk包括接口文件、加密函數文件和保護邏輯庫,基於該接口文件,對應用原始碼進行編譯,應用原始碼為待開發的目標應用的原始碼,由於該接口文件中包括的是接口和接口函數聲明,因此,即使攻擊者可以從編譯後的應用源代 碼中獲取到該接口文件並對該接口文件進行反編譯,也不能獲取到sdk原始碼,提高了sdk原始碼的保密性。之後,應用開發方將該加密函數文件、該保護邏輯庫和編譯後的應用原始碼進行集成,得到目標應用,將該目標應用發送給應用發布平臺,以對目標應用進行發布。由於加密函數文件中包括的是函數密文,後續目標應用運行時實際上調用的是加密函數文件,因此,即使攻擊者可以從編譯後的應用原始碼中獲取接口文件並對該接口文件進行篡改,也不會影響目標應用的正常運行。

圖21是本發明實施例提供的一種應用運行裝置終端的結構示意圖。參見圖21,終端2100可以包括通信單元2110、包括有一個或一個以上計算機可讀存儲介質的存儲器2120、輸入單元2130、顯示單元2140、傳感器2150、音頻電路2160、wifi(wirelessfidelity,無線保真)模塊2170、包括有一個或者一個以上處理核心的處理器2180、以及電源2190等部件。本領域技術人員可以理解,圖21中示出的終端結構並不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:

通信單元2110可用於收發信息或通話過程中,信號的接收和發送,該通信單元2110可以為rf(radiofreque至少一cy,射頻)電路、路由器、數據機、等網絡通信設備。特別地,當通信單元2110為rf電路時,將基站的下行信息接收後,交由一個或者一個以上處理器2180處理;另外,將涉及上行的數據發送給基站。通常,作為通信單元的rf電路包括但不限於天線、至少一個放大器、調諧器、一個或多個振蕩器、用戶身份模塊(sim)卡、收發信機、耦合器、l至少一a(low至少一oiseamplifier,低噪聲放大器)、雙工器等。此外,通信單元2110還可以通過無線通信與網絡和其他設備通信。所述無線通信可以使用任一通信標準或協議,包括但不限於gsm(globalsystemofmobilecommu至少一icatio至少一,全球移動通訊系統)、gprs(ge至少一eralpacketradioservice,通用分組無線服務)、cdma(codedivisio至少一multipleaccess,碼分多址)、wcdma(wideba至少一dcodedivisio至少一multipleaccess,寬帶碼分多址)、lte(lo至少一gtermevolutio至少一,長期演進)、電子郵件、sms(shortmessagi至少一gservice,短消息服務)等。存儲器2120可用於存儲軟體程序以及模塊,處理器2180通過運行存儲在存儲器2120的軟體程 序以及模塊,從而執行各種功能應用以及數據處理。存儲器2120可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲作業系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據終端2100的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器2120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁碟存儲器件、快閃記憶體器件、或其他易失性固態存儲器件。相應地,存儲器2120還可以包括存儲器控制器,以提供處理器2180和輸入單元2130對存儲器2120的訪問。

輸入單元2130可用於接收輸入的數字或字符信息,以及產生與用戶設置以及功能控制有關的鍵盤、滑鼠、操作杆、光學或者軌跡球信號輸入。優選地,輸入單元2130可包括觸敏表面2131以及其他輸入設備2132。觸敏表面2131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面2131上或在觸敏表面2131附近的操作),並根據預先設定的程式驅動相應的連接裝置。可選的,觸敏表面2131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,並檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,並將它轉換成觸點坐標,再送給處理器2180,並能接收處理器2180發來的命令並加以執行。此外,可以採用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸敏表面2131。除了觸敏表面2131,輸入單元2130還可以包括其他輸入設備2132。優選地,其他輸入設備2132可以包括但不限於物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、滑鼠、操作杆等中的一種或多種。

顯示單元2140可用於顯示由用戶輸入的信息或提供給用戶的信息以及終端2100的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構成。顯示單元2140可包括顯示面板2141,可選的,可以採用lcd(liquidcrystaldisplay,液晶顯示器)、oled(orga至少一iclight-emitti至少一gdiode,有機發光二極體)等形式來配置顯示面板2141。進一步的,觸敏表面2131可覆蓋顯示面板2141,當觸敏表面2131檢測到在其上或附近的觸摸操作後,傳送給處理器2180以確定觸摸事件的類型,隨後處理器2180根據觸摸事件的類型在顯示面板2141上提供相應的視覺輸出。雖然在圖21中,觸 敏表面2131與顯示面板2141是作為兩個獨立的部件來實現輸入和輸入功能,但是在某些實施例中,可以將觸敏表面2131與顯示面板2141集成而實現輸入和輸出功能。

終端2100還可包括至少一種傳感器2150,比如光傳感器、運動傳感器以及其他傳感器。光傳感器可包括環境光傳感器及接近傳感器,其中,環境光傳感器可根據環境光線的明暗來調節顯示面板2141的亮度,接近傳感器可在終端2100移動到耳邊時,關閉顯示面板2141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用於識別手機姿態的應用(比如橫豎屏切換、相關遊戲、磁力計姿態校準)、振動識別相關功能(比如計步器、敲擊)等;至於終端2100還可配置的陀螺儀、氣壓計、溼度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。

音頻電路2160、揚聲器2161,傳聲器2162可提供用戶與終端2100之間的音頻接口。音頻電路2160可將接收到的音頻數據轉換後的電信號,傳輸到揚聲器2161,由揚聲器2161轉換為聲音信號輸出;另一方面,傳聲器2162將收集的聲音信號轉換為電信號,由音頻電路2160接收後轉換為音頻數據,再將音頻數據輸出處理器2180處理後,經通信單元2110以發送給比如另一終端,或者將音頻數據輸出至存儲器2120以便進一步處理。音頻電路2160還可能包括耳塞插孔,以提供外設耳機與終端2100的通信。

為了實現無線通信,該終端上可以配置有無線通信單元2170,該無線通信單元2170可以為wifi模塊。wifi屬於短距離無線傳輸技術,終端2100通過無線通信單元2170可以幫助用戶收發電子郵件、瀏覽網頁和訪問流式媒體等,它為用戶提供了無線的寬帶網際網路訪問。雖然圖中示出了無線通信單元2170,但是可以理解的是,其並不屬於終端2100的必須構成,完全可以根據需要在不改變發明的本質的範圍內而省略。

處理器2180是終端2100的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在存儲器2120內的軟體程序和/或模塊,以及調用存儲在存儲器2120內的數據,執行終端2100的各種功能和處理數據,從而對手機進行整體監控。可選的,處理器2180可包括一個或多個處理核心;優選的,處理器2180可集成應用處理器和調製解調處理器,其中,應用處理器主 要處理作業系統、用戶界面和應用程式等,調製解調處理器主要處理無線通信。可以理解的是,上述調製解調處理器也可以不集成到處理器2180中。

終端2100還包括給各個部件供電的電源2190(比如電池),優選的,電源可以通過電源管理系統與處理器2180邏輯相連,從而通過電源管理系統實現管理充電、放電、以及功耗管理等功能。電源2160還可以包括一個或一個以上的直流或交流電源、再充電系統、電源故障檢測電路、電源轉換器或者逆變器、電源狀態指示器等任意組件。

儘管未示出,終端2100還可以包括攝像頭、藍牙模塊等,在此不再贅述。

在本實施例中,終端還包括有一個或者一個以上的程序,這一個或者一個以上程序存儲於存儲器中,且經配置以由一個或者一個以上處理器執行,所述一個或者一個以上程序包含用於進行本發明實施例提供的如下所述的應用運行方法的指令,包括:

從應用發布平臺下載目標應用,目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,加密函數文件是對第一sdk中的函數進行加密得到,第一sdk為用於進行應用開發的sdk;

當接收到目標應用的運行指令時,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,以運行目標應用。

可選地,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,包括:

通過保護邏輯庫對加密函數文件中的至少一個函數密文進行加載和解密,得到至少一個函數;

確定運行指令所調用的目標接口;

基於編譯後的應用原始碼和目標接口,從至少一個函數中獲取目標函數;

通過編譯後的應用原始碼調用目標函數。

可選地,基於編譯後的應用原始碼和保護邏輯庫,調用加密函數文件,包括:

確定運行指令所調用的目標接口;

基於編譯後的應用原始碼和目標接口,通過保護邏輯庫對加密函數文件中的目標函數密文進行加載和解密,得到目標函數;

通過編譯後的應用原始碼調用目標函數。

可選地,通過編譯後的應用原始碼調用目標函數,包括:

當加密函數文件中包括至少一個數字籤名時,對目標函數進行哈希運算,得到第一摘要;

從至少一個數字籤名中,獲取目標函數的數字籤名;

對獲取的數字籤名進行解密,得到第二摘要;

當第一摘要與第二摘要相同時,通過編譯後的應用原始碼調用目標函數。

在本發明實施例中,終端從應用發布平臺下載目標應用,該目標應用包括加密函數文件、保護邏輯庫和編譯後的應用原始碼,當接收到該目標應用的運行指令時,通過保護邏輯庫對該加密函數文件進行加載和解密,並通過該編譯後的應用原始碼調用解密後的該加密函數文件,以運行該目標應用,從而在保證目標應用正常運行的同時提高了該加密函數文件的保密性。

上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。

本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。

以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀