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

軟件安裝包的加固保護(hù)方法及裝置與流程

文檔序號(hào):11407919閱讀:692來源:國(guó)知局
軟件安裝包的加固保護(hù)方法及裝置與流程

本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種軟件安裝包的加固保護(hù)方法及裝置。



背景技術(shù):

隨著移動(dòng)應(yīng)用的快速發(fā)展,基于安卓系統(tǒng)的移動(dòng)應(yīng)用也越來越多。安卓系統(tǒng)為開放的操作系統(tǒng),可以為移動(dòng)應(yīng)用的開發(fā)提供較多的便利,但同時(shí),也會(huì)為針對(duì)移動(dòng)應(yīng)用的惡意攻擊提供便利。

具體地,基于安卓系統(tǒng)的移動(dòng)應(yīng)用的軟件安裝包可以為基于java語(yǔ)言的安裝包,而java語(yǔ)言較容易被反編譯,且反編譯后的代碼在一定程度上接近對(duì)應(yīng)的安裝包中的源代碼,反編譯后的代碼也較容易被閱讀,因此,基于安卓系統(tǒng)的移動(dòng)應(yīng)用的邏輯,例如,與對(duì)端的通訊方式、加解密算法與密鑰,以及軟鍵盤的技術(shù)實(shí)現(xiàn)等,較容易被暴露。

由上述內(nèi)容可知,基于安卓系統(tǒng)的移動(dòng)應(yīng)用的安全性差。



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

本申請(qǐng)實(shí)施例的目的是提供一種軟件安裝包的加固保護(hù)方法及裝置,用以提高基于安卓系統(tǒng)的移動(dòng)應(yīng)用的安全性。

為解決上述技術(shù)問題,本申請(qǐng)實(shí)施例是這樣實(shí)現(xiàn)的:

本申請(qǐng)實(shí)施例提供一種軟件安裝包的加固保護(hù)方法,所述方法包括:

從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段;

基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)所述待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段;

在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件;

基于得到的所有所述被加密的源代碼段生成待加密的文件;

基于預(yù)設(shè)的第二加密算法對(duì)所述待加密的文件進(jìn)行加密;

將被加密的文件存儲(chǔ)至所述待加固的軟件安裝包中;以及

在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

本申請(qǐng)實(shí)施例提供一種軟件安裝包的加固保護(hù)裝置,所述裝置包括:

確定模塊,用于從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段;

第一加密模塊,用于基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)所述待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段;

第一生成模塊,用于在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件;

第二生成模塊,用于基于得到的所有所述被加密的源代碼段生成待加密的文件;

第二加密模塊,用于基于預(yù)設(shè)的第二加密算法對(duì)所述待加密的文件進(jìn)行加密;

存儲(chǔ)模塊,用于將被加密的文件存儲(chǔ)至所述待加固的軟件安裝包中;以及

第三生成模塊,用于在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

由以上本申請(qǐng)實(shí)施例提供的技術(shù)方案可見,本申請(qǐng)實(shí)施例可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本申請(qǐng)中,可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本申請(qǐng)實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的待加密的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的解密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

附圖說明

為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本申請(qǐng)一種軟件安裝包的加固保護(hù)方法的實(shí)施例;

圖2為本申請(qǐng)另一種軟件安裝包的加固保護(hù)方法的實(shí)施例;

圖3為本申請(qǐng)?jiān)僖环N軟件安裝包的加固保護(hù)方法的實(shí)施例;

圖4為本申請(qǐng)一種軟件安裝包的加固保護(hù)裝置的實(shí)施例;

圖5為本申請(qǐng)另一種軟件安裝包的加固保護(hù)裝置的實(shí)施例;

圖6為本申請(qǐng)?jiān)僖环N軟件安裝包的加固保護(hù)裝置的實(shí)施例;

圖7為本申請(qǐng)一種軟件安裝包的加固保護(hù)設(shè)備的實(shí)施例。

具體實(shí)施方式

本申請(qǐng)實(shí)施例提供一種軟件安裝包的加固保護(hù)方法及裝置。

為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。

實(shí)施例一

如圖1所示,本申請(qǐng)?zhí)峁┮环N軟件安裝包的加固保護(hù)方法的實(shí)施例,用以提高基于安卓系統(tǒng)的移動(dòng)應(yīng)用的安全性。本申請(qǐng)實(shí)施例可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。該方法具體包括以下步驟:

在步驟s101中:從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段。

在本實(shí)施例中,待加固的軟件安裝包可以包括基于安卓系統(tǒng)的軟件安裝包,除基于安卓系統(tǒng)的軟件安裝包外,待加固的軟件安裝包可以包括或不包括基于其他操作系統(tǒng)的軟件包,本實(shí)施例對(duì)此不做限制。

在本實(shí)施例中,可以從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段。具體地,可以根據(jù)相關(guān)人員的選取指令來從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,例如,可以根據(jù)相關(guān)人員的選取指令來從待加固的軟件安裝包中確定重要性較高的源代碼段、風(fēng)險(xiǎn)性較高的源代碼段、核心源代碼段等為待加密的源代碼段。

當(dāng)然,也可以根據(jù)預(yù)設(shè)的確定策略來自動(dòng)的從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,其中,該預(yù)設(shè)的確定策略可以包括確定指定名稱的類、方法或函數(shù)等對(duì)應(yīng)的源代碼段為待加密的源代碼段等,本申請(qǐng)對(duì)此不做限制。

在步驟s102中:基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段。

在本實(shí)施例中,可以預(yù)設(shè)第一加密算法池,其中,該第一加密算法池中可以包括至少一個(gè)第一加密算法,該第一加密算法池中的第一加密算法可以為默認(rèn)的加密算法,也可以為相關(guān)的技術(shù)人員自定義的加密算法;可以為現(xiàn)有的加密算法,也可以為基于現(xiàn)有的加密算法得到的組合加密算法等,本實(shí)施例對(duì)此不做限制。

在本實(shí)施例中,可以從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的第一加密算法池中的第一加密算法來對(duì)該多個(gè)待加密的源代碼段進(jìn)行加密。

其中,可以在從待加固的軟件安裝包中確定每一待加密的源代碼段后,對(duì)該確定的待加密的源代碼段進(jìn)行加密;也可以在從待加固的軟件安裝包中確定所有的待加密的源代碼段后,再分別對(duì)該確定的待加密的源代碼段進(jìn)行加密,本實(shí)施例對(duì)此不做限制。

在一個(gè)實(shí)施例中,在對(duì)確定的待加密的源代碼段進(jìn)行加密時(shí),可以先從預(yù)設(shè)的第一加密算法池中獲取第一加密算法,然后,再基于獲取的第一加密算法對(duì)該確定的待加密的源代碼段進(jìn)行加密。其中,對(duì)不同的待加密的源代碼段進(jìn)行加密的第一加密算法可以相同,也可以不相同,本實(shí)施例對(duì)此不做限制。

在從預(yù)設(shè)的第一加密算法池中獲取第一加密算法時(shí),可以基于預(yù)設(shè)的獲取策略來獲取,其中,該預(yù)設(shè)的獲取策略可以包括隨機(jī)獲取加密算法的獲取策略、獲取復(fù)雜度最高的加密算法的獲取策略、獲取破解難度最高的加密算法的獲取策略等,本實(shí)施例對(duì)此不做限制。

在一個(gè)示例中,該預(yù)設(shè)的獲取策略可以為獲取復(fù)雜度最高的加密算法的獲取策略,則當(dāng)從預(yù)設(shè)的第一加密算法池中獲取第一加密算法時(shí),可以確定預(yù)設(shè)的第一加密算法池中的每一第一加密算法的復(fù)雜度,并獲取復(fù)雜度最高的第一加密算法。

在本實(shí)施例中,可以對(duì)預(yù)設(shè)的第一加密算法池中的第一加密算法被使用的次數(shù)進(jìn)行統(tǒng)計(jì),當(dāng)預(yù)設(shè)的第一加密算法池中的第一加密算法被使用的次數(shù)達(dá)到使用次數(shù)閾值時(shí),可以將該第一加密算法從預(yù)設(shè)的第一加密算法池中去除。其中,不同的第一加密算法對(duì)應(yīng)的使用次數(shù)閾值可以相同,也可以不相同。

在一個(gè)示例中,在從預(yù)設(shè)的第一加密算法池中獲取第一加密算法時(shí),可以基于預(yù)設(shè)的獲取策略從預(yù)設(shè)的第一加密算法池中獲取破解難度最高的第一加密算法,假如該破解難度最高的第一加密算法已被使用9次,而與該第一加密算法對(duì)應(yīng)的使用次數(shù)閾值為10,則此次可以基于預(yù)設(shè)的獲取策略從預(yù)設(shè)的第一加密算法池中獲取該第一加密算法。但是,由于該第一加密算法在此次使用后,已累計(jì)被使用了10次,達(dá)到了對(duì)應(yīng)的使用次數(shù)閾值,因此在此次使用之后,可以將該第一加密算法從預(yù)設(shè)的第一加密算法池中去除。

在本實(shí)施例中,可以基于從預(yù)設(shè)的第一加密算法池中獲取的第一加密算法對(duì)待加密的源代碼段進(jìn)行加密,其中,可以基于獲取的第一加密算法對(duì)待加密的源代碼段進(jìn)行對(duì)稱加密,也可以基于獲取的第一加密算法對(duì)待加密的源代碼段進(jìn)行不對(duì)稱加密,本實(shí)施例對(duì)此不做限制。

在步驟s103中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件。

在本實(shí)施例中,在基于預(yù)設(shè)的第一加密算法對(duì)待加密的代碼段進(jìn)行加密后,可以在待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成對(duì)應(yīng)的第一解密文件。

在本實(shí)施例中,可以基于與第一加密算法對(duì)應(yīng)的解密算法來生成與被加密的源代碼段對(duì)應(yīng)的第一解密文件,以使虛擬機(jī)可以基于該第一解密文件來獲取以及處理該被加密的源代碼段。

在步驟s104中:基于得到的所有被加密的源代碼段生成待加密的文件。

在本實(shí)施例中,需要說明的是,步驟s103可以在步驟s104之前,也可以在步驟s104之后,也可以與步驟s104同時(shí)執(zhí)行,本實(shí)施例對(duì)此不做限制。

在本實(shí)施例中,可以基于得到的所有被加密的源代碼段生成待加密的文件。

具體地,在得到所有被加密的源代碼段后,可以對(duì)所有的被加密的源代碼段進(jìn)行編譯以及打包。其中,在打包的過程中,可以將所有的被加密的源代碼段打包至待加密的文件中,以實(shí)現(xiàn)對(duì)被加密的源代碼段的加殼。

在一個(gè)示例中,待加密文件的文件格式可以為.dex格式,具體地,該待加密文件可以為class.dex文件。

在步驟s105中:基于預(yù)設(shè)的第二加密算法對(duì)待加密的文件進(jìn)行加密。

在本實(shí)施例中,預(yù)設(shè)的第二加密算法可以來自預(yù)設(shè)的第一加密算法池,也可以不來自預(yù)設(shè)的第一加密算法池,本實(shí)施例對(duì)此不做限制。

在本實(shí)施例中,可以基于預(yù)設(shè)的第二加密算法對(duì)待加密的文件進(jìn)行加密,其中,可以為對(duì)稱加密,也可以為不對(duì)稱加密,本實(shí)施例對(duì)此不做限制。

在步驟s106中:將被加密的文件存儲(chǔ)至待加固的軟件安裝包中。

在本實(shí)施例中,在完成對(duì)待加密文件的加密后,可以將該被加密的文件存儲(chǔ)至待加固的軟件安裝包中。其中,該被加密的文件的文件格式可以與加密之前的文件,即待加密文件,的文件格式不相同。

在一個(gè)示例中,待加密文件的文件格式可以為.dex格式,在對(duì)該待加密文件進(jìn)行加密后,得到的被加密的文件的文件格式可以為.jar格式。

在一個(gè)示例中,待加密文件可以為class.dex文件,在對(duì)該待加密文件進(jìn)行加密后,得到的被加密的文件可以為assets/bangcle_classes.jar文件。

在步驟s107中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本實(shí)施例中,需要說明的是,步驟s106可以在步驟s107之前,也可以在步驟s107之后,也可以與步驟s107同時(shí)執(zhí)行,本實(shí)施例對(duì)此不做限制。

在本實(shí)施例中,在完成對(duì)待加密文件的加密后,可以基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本實(shí)施例中,第二解密文件的文件格式可以與加密之前的文件,即待加密文件,的文件格式相同,例如,若待加密文件的文件格式為.dex格式,則第二解密文件的文件格式也可以為.dex格式。

在本實(shí)施例中,第二解密文件的文件格式可以與被加密的文件的文件格式不相同,例如,若被加密的文件的文件格式為.jar格式,則第二解密文件的文件格式可以不為.jar格式。

在一個(gè)示例中,若加密之前的文件,即待加密文件,為class.dex文件,則第二解密文件也可以為class.dex文件。

在本實(shí)施例中,可以基于與第二加密算法對(duì)應(yīng)的第二解密算法來生成第二解密文件,以使虛擬機(jī)可以基于該第二解密文件來獲取以及處理待加固的軟件安裝包中所有的被加密的源代碼段。

在一個(gè)示例中,可以從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,基于預(yù)設(shè)的第一加密算法,來分別對(duì)該多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加固算法對(duì)應(yīng)的解密算法來生成第一解密文件,在得到被加密的源代碼段后,可以對(duì)所有的被加密的源代碼段進(jìn)行編譯、打包,其中,在打包的過程中,可以將所有的被加密的源代碼段打包至待加密的文件中,其中,該待加密文件可以為class.dex文件。在基于預(yù)設(shè)的第二加密算法對(duì)該待加密文件進(jìn)行加密后,可以得到assets/bangcle_classes.jar文件,以及將assets/bangcle_classes.jar文件保存待加固的軟件安裝包中。在基于預(yù)設(shè)的第二加密算法對(duì)待加密文件進(jìn)行加密后,可以在待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件,其中,該第二解密文件可以為class.dex文件。

若虛擬機(jī),例如,dalvik虛擬機(jī),獲得了該待加固的軟件安裝包,則可以基于第二解密文件class.dex文件來從被加密的文件中獲取加密前的文件,然后,dalvik虛擬機(jī)可以從加密前的文件中獲取所有的被加密的源代碼段,此時(shí),dalvik虛擬機(jī)可以基于第一解密文件來從被加密的源代碼段中獲取加密前的源代碼段,并執(zhí)行獲取的加密前的源代碼段。

本申請(qǐng)?zhí)峁┮环N軟件安裝包的加固保護(hù)方法的實(shí)施例,在本實(shí)施例中,可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本實(shí)施例中,可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的解密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

實(shí)施例二

如圖2所示,本申請(qǐng)?zhí)峁┝硪环N軟件安裝包的加固保護(hù)方法的實(shí)施例,用以提高基于安卓系統(tǒng)的移動(dòng)應(yīng)用的安全性。本申請(qǐng)實(shí)施例可以通過對(duì)待加固的軟件安裝包的程序入口的修改,來提高待加固的軟件安裝包的可處理性。該方法具體包括以下步驟:

在步驟s201中:從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段。

在步驟s202中:基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段。

在步驟s203中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件。

在步驟s204中:基于得到的所有被加密的源代碼段生成待加密的文件。

在步驟s205中:基于預(yù)設(shè)的第二加密算法對(duì)待加密的文件進(jìn)行加密。

在步驟s206中:將被加密的文件存儲(chǔ)至待加固的軟件安裝包中。

在步驟s207中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

由于步驟s201至步驟s207的內(nèi)容已在上一實(shí)施例中詳述,故本實(shí)施例在此不再贅述。

在步驟s208中:修改待加固的軟件安裝包的程序入口,以使第二解密文件先于被加密的文件被虛擬機(jī)執(zhí)行。

在本實(shí)施例中,在待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件后,可以修改該待加固的軟件安裝包的程序入口,以使該第二解密文件可以先于被加密的文件被虛擬機(jī)執(zhí)行。其中,該被加密的文件可以為上一實(shí)施例中的基于預(yù)設(shè)的第二加密算法對(duì)待加密的文件進(jìn)行加密處理得到的文件,而待加密的文件可以為上一實(shí)施例中的基于該待加固的軟件安裝包中的所有被加密的源代碼段生成的文件。

若不對(duì)該待加固的軟件安裝包的程序入口進(jìn)行修改,則當(dāng)虛擬機(jī)處理該待加固的軟件安裝包時(shí),有可能先處理被加密的文件,后處理解密文件,由于虛擬機(jī)在沒有第二解密文件的情況下,無(wú)法成功執(zhí)行被加密的文件,因此,虛擬機(jī)對(duì)該待加固的軟件安裝包的處理效率會(huì)降低,此時(shí),該待加固的軟件安裝包的可處理性較差。

若對(duì)該待加固的軟件安裝包的程序入口進(jìn)行修改,使得虛擬機(jī)處理該待加固的軟件安裝包時(shí),先處理第二解密文件,后處理成功加密后的文件,則虛擬機(jī)在處理被加密的文件時(shí),可以基于第二解密文件來實(shí)現(xiàn)對(duì)被加密的文件的處理。從而可以提高對(duì)該待加固的軟件安裝包的處理效率,此時(shí),該待加固的軟件安裝包的可處理性較好。

本申請(qǐng)?zhí)峁┝硪环N軟件安裝包的加固保護(hù)方法的實(shí)施例,在本實(shí)施例中,可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件,在得到第二解密文件后,可以修改待加固的軟件安裝包的程序入口,以使第二解密文件先于被加密的文件被虛擬機(jī)執(zhí)行。

本實(shí)施例可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本實(shí)施例可以通過對(duì)待加固的軟件安裝包的程序入口的修改,來提高待加固的軟件安裝包的可處理性。本實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的解密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

實(shí)施例三

如圖3所示,本申請(qǐng)?zhí)峁┰僖环N軟件安裝包的加固保護(hù)方法的實(shí)施例,用以提高基于安卓系統(tǒng)的移動(dòng)應(yīng)用的安全性。本申請(qǐng)實(shí)施例可以通過控制虛擬機(jī)在需要執(zhí)行被加密的源代碼時(shí),才對(duì)被加密的源代碼進(jìn)行解密,來進(jìn)一步增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。該方法具體包括以下步驟:

在步驟s301中:從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段。

在步驟s302中:基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段。

在步驟s303中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件。

在步驟s304中:基于得到的所有被加密的源代碼段生成待加密的文件。

在步驟s305中:基于預(yù)設(shè)的第二加密算法對(duì)待加密的文件進(jìn)行加密。

在步驟s306中:將被加密的文件存儲(chǔ)至待加固的軟件安裝包中。

在步驟s307中:在待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

由于步驟s301至步驟s307的內(nèi)容已在上一實(shí)施例中詳述,故本實(shí)施例在此不再贅述。

在步驟s308中:在待加固的軟件安裝包中,生成控制代碼段;其中,控制代碼段用于控制虛擬機(jī)在執(zhí)行被加密的源代碼段時(shí),基于與被加密的源代碼段對(duì)應(yīng)的第一解密文件對(duì)被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。

在本實(shí)施例中,在基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成第一解密文件后,可以在待加固的軟件安裝包中生成控制代碼段,其中,該控制代碼段可以用于控制虛擬機(jī)在執(zhí)行被加密的源代碼段時(shí),可以基于與被加密的源代碼段對(duì)應(yīng)的解密文件對(duì)被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。

在一個(gè)示例中,虛擬機(jī)(例如,dalvik虛擬機(jī))可以獲取并執(zhí)行該待加固的軟件安裝包,當(dāng)虛擬機(jī)執(zhí)行該軟件安裝包時(shí),可以基于第二解密文件對(duì)該軟件安裝包中的被加密的文件進(jìn)行解密,并得到解密后的文件,其中,該解密后的文件可以包括所有被加密的代碼段,虛擬機(jī)在對(duì)被加密的文件進(jìn)行解密后,可以繼續(xù)執(zhí)行該軟件安裝包,當(dāng)虛擬機(jī)執(zhí)行到該軟件安裝包中的未被加密的源代碼段時(shí),可以成功執(zhí)行,當(dāng)虛擬機(jī)執(zhí)行到該軟件安裝包中已被加密的源代碼段時(shí),可以基于該軟件安裝包中的控制代碼段來從該軟件安裝包中獲取與該已被加密的源代碼段對(duì)應(yīng)的第一解密文件,然后,基于該獲取的第一解密文件對(duì)該已被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。虛擬機(jī)在執(zhí)行了該解密后的源代碼段后,可以繼續(xù)執(zhí)行該軟件安裝包中的源代碼。

在一個(gè)實(shí)施例中,控制代碼段可以控制虛擬機(jī)在執(zhí)行已被加密的源代碼段時(shí),先獲取該已被加密的源代碼段的標(biāo)識(shí)信息,其中,該標(biāo)識(shí)信息可以唯一標(biāo)識(shí)該被加密的源代碼段,然后,基于獲取的標(biāo)識(shí)信息確定與已被加密的源代碼段對(duì)應(yīng)的第一解密文件,以及基于確定的第一解密文件對(duì)該已被加密的源代碼段進(jìn)行解密。

需要說明的是,該已被加密的源代碼段的標(biāo)識(shí)信息可以包括該已被加密的源代碼段對(duì)應(yīng)的類、方法或函數(shù)的名稱。

本申請(qǐng)?zhí)峁┮环N軟件安裝包的加固保護(hù)方法的實(shí)施例,在本實(shí)施例中,可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。本實(shí)施例還可以在該待加固的軟件安裝包中,生成控制代碼段,其中,該控制代碼段可以用于控制虛擬機(jī)在執(zhí)行被加密的源代碼段時(shí),基于與被加密的源代碼段對(duì)應(yīng)的第一解密文件對(duì)被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。

在本實(shí)施例中,可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段分別進(jìn)行加密、對(duì)所有被加密的源代碼進(jìn)行加殼加密,以及控制虛擬機(jī)在需要執(zhí)行被加密的源代碼時(shí),才對(duì)被加密的源代碼進(jìn)行解密,來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的加密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

實(shí)施例四

以上為本申請(qǐng)實(shí)施例提供的軟件安裝包的加固保護(hù)方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供一種軟件安裝包的加固保護(hù)裝置,如圖4所示:

所述軟件安裝包的加固保護(hù)裝置包括:確定模塊410、第一加密模塊420、第一生成模塊430、第二生成模塊440、第二加密模塊450、存儲(chǔ)模塊460以及第三生成模塊470,其中:

確定模塊410,用于從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段;

第一加密模塊420,用于基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)所述待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段;

第一生成模塊430,用于在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件;

第二生成模塊440,用于基于得到的所有所述被加密的源代碼段生成待加密的文件;

第二加密模塊450,用于基于預(yù)設(shè)的第二加密算法對(duì)所述待加密的文件進(jìn)行加密;

存儲(chǔ)模塊460,用于將被加密的文件存儲(chǔ)至所述待加固的軟件安裝包中;以及

第三生成模塊470,用于在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

本申請(qǐng)實(shí)施例中,所述裝置還可以包括(如圖5所示):

修改模塊480,用于修改所述待加固的軟件安裝包的程序入口,以使所述第二解密文件先于所述被加密的文件被虛擬機(jī)執(zhí)行。

本申請(qǐng)實(shí)施例中,所述裝置還可以包括(如圖6所示):

第四生成模塊490,用于在所述待加固的軟件安裝包中,生成控制代碼段;其中,所述控制代碼段用于控制虛擬機(jī)在執(zhí)行所述被加密的源代碼段時(shí),基于與所述被加密的源代碼段對(duì)應(yīng)的所述第一解密文件對(duì)所述被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。

本申請(qǐng)實(shí)施例中,所述第四生成模塊490可以用于:

在所述待加固的軟件安裝包中,生成控制代碼段;其中,所述控制代碼段用于控制虛擬機(jī)在執(zhí)行所述被加密的源代碼段時(shí),獲取所述被加密的源代碼段的標(biāo)識(shí)信息;其中,所述標(biāo)識(shí)信息唯一標(biāo)識(shí)所述被加密的源代碼段;所述標(biāo)識(shí)信息包括所述被加密的源代碼段對(duì)應(yīng)的類、方法或函數(shù)的名稱;

基于獲取的所述標(biāo)識(shí)信息確定與所述被加密的源代碼段對(duì)應(yīng)的第一解密文件;

基于確定的所述第一解密文件對(duì)所述被加密的源代碼段進(jìn)行解密。

本申請(qǐng)實(shí)施例中,所述第一加密算法與所述第二加密算法相同,或與所述第二加密算法不相同。

本申請(qǐng)?zhí)峁┮环N軟件安裝包的加固保護(hù)裝置的實(shí)施例,在本實(shí)施例中,可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本實(shí)施例中,可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的解密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

實(shí)施例五

基于同樣的思路,本申請(qǐng)實(shí)施例還提供一種軟件安裝包的加固保護(hù)設(shè)備的實(shí)施例,如圖7所示。

該軟件安裝包的加固保護(hù)設(shè)備可以為上述實(shí)施例提供的用于加固軟件安裝包的終端設(shè)備或服務(wù)器等。

軟件安裝包的加固保護(hù)設(shè)備可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上的處理器701和存儲(chǔ)器702,存儲(chǔ)器702中可以存儲(chǔ)有一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序或數(shù)據(jù)。其中,存儲(chǔ)器702可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)器702的應(yīng)用程序可以包括一個(gè)或一個(gè)以上模塊(圖示未示出),每個(gè)模塊可以包括對(duì)軟件安裝包的加固保護(hù)設(shè)備中的一系列計(jì)算機(jī)可執(zhí)行指令。更進(jìn)一步地,處理器701可以設(shè)置為與存儲(chǔ)器702通信,在軟件安裝包的加固保護(hù)設(shè)備上執(zhí)行存儲(chǔ)器702中的一系列計(jì)算機(jī)可執(zhí)行指令。軟件安裝包的加固保護(hù)設(shè)備還可以包括一個(gè)或一個(gè)以上電源703,一個(gè)或一個(gè)以上有線或無(wú)線網(wǎng)絡(luò)接口704,一個(gè)或一個(gè)以上輸入輸出接口705,一個(gè)或一個(gè)以上鍵盤706。

具體在本實(shí)施例中,軟件安裝包的加固保護(hù)設(shè)備包括有存儲(chǔ)器,以及一個(gè)或一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且一個(gè)或者一個(gè)以上程序可以包括一個(gè)或一個(gè)以上模塊,且每個(gè)模塊可以包括對(duì)軟件安裝包的加固保護(hù)設(shè)備中的一系列計(jì)算機(jī)可執(zhí)行指令,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行該一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下計(jì)算機(jī)可執(zhí)行指令:

從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段;

基于預(yù)設(shè)的至少一個(gè)第一加密算法,分別對(duì)多個(gè)所述待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段;

在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件;

基于得到的所有所述被加密的源代碼段生成待加密的文件;

基于預(yù)設(shè)的第二加密算法對(duì)所述待加密的文件進(jìn)行加密;

將被加密的文件存儲(chǔ)至所述待加固的軟件安裝包中;以及

在所述待加固的軟件安裝包中,基于與所述預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

可選地,計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí),還可以使所述處理器:

修改所述待加固的軟件安裝包的程序入口,以使所述第二解密文件先于所述被加密的文件被虛擬機(jī)執(zhí)行。

可選地,計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí),還可以使所述處理器:

在所述待加固的軟件安裝包中,生成控制代碼段;其中,所述控制代碼段用于控制虛擬機(jī)在執(zhí)行所述被加密的源代碼段時(shí),基于與所述被加密的源代碼段對(duì)應(yīng)的所述第一解密文件對(duì)所述被加密的源代碼段進(jìn)行解密,以及執(zhí)行解密后的源代碼段。

可選的,計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí),還可以使所述處理器:

在所述待加固的軟件安裝包中,生成控制代碼段;其中,所述控制代碼段用于控制虛擬機(jī)在執(zhí)行所述被加密的源代碼段時(shí),獲取所述被加密的源代碼段的標(biāo)識(shí)信息;其中,所述標(biāo)識(shí)信息唯一標(biāo)識(shí)所述被加密的源代碼段;所述標(biāo)識(shí)信息包括所述被加密的源代碼段對(duì)應(yīng)的類、方法或函數(shù)的名稱;

基于獲取的所述標(biāo)識(shí)信息確定與所述被加密的源代碼段對(duì)應(yīng)的第一解密文件;

基于確定的所述第一解密文件對(duì)所述被加密的源代碼段進(jìn)行解密。

可選的,所述第一加密算法與所述第二加密算法相同,或與所述第二加密算法不相同。

本申請(qǐng)?zhí)峁┮环N軟件安裝包的加固保護(hù)設(shè)備的實(shí)施例,在本實(shí)施例中,可以先從待加固的軟件安裝包中確定多個(gè)待加密的源代碼段,然后,可以基于預(yù)設(shè)的至少一個(gè)第一加密算法,來分別對(duì)多個(gè)待加密的源代碼段進(jìn)行加密,得到多個(gè)被加密的源代碼段,在得到被加密的源代碼段后,可以在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第一加密算法對(duì)應(yīng)的解密算法生成多個(gè)第一解密文件,以及基于得到的所有被加密的源代碼段生成待加密的文件,并基于預(yù)設(shè)的第二加密算法對(duì)該待加密的文件進(jìn)行加密,在加密完成后,可以將被加密的文件存儲(chǔ)至該待加固的軟件安裝包中,以及在該待加固的軟件安裝包中,基于與預(yù)設(shè)的第二加密算法對(duì)應(yīng)的解密算法生成第二解密文件。

在本實(shí)施例中,可以通過對(duì)待加固的軟件安裝包中的多個(gè)需加密的源代碼段,分別進(jìn)行加密,以及對(duì)所有被加密的源代碼進(jìn)行加殼加密來實(shí)現(xiàn)對(duì)待加固的軟件安裝包的加固保護(hù),從而可以增大惡意攻擊識(shí)別軟件安裝包中的源代碼的難度,提高移動(dòng)應(yīng)用的安全性。同時(shí),本實(shí)施例還可以生成第二解密文件來實(shí)現(xiàn)對(duì)存儲(chǔ)至待加固的軟件安裝包中的被加密的文件的解密,得到解密后的文件,以及生成第一解密文件來實(shí)現(xiàn)對(duì)解密后的文件中被加密的源代碼段的解密,得到解密后的源代碼段,從而使得待加固的軟件安裝包中被加密的文件中被加密的源代碼段可以被正常的虛擬機(jī)讀取以及處理。

在20世紀(jì)90年代,對(duì)于一個(gè)技術(shù)的改進(jìn)可以很明顯地區(qū)分是硬件上的改進(jìn)(例如,對(duì)二極管、晶體管、開關(guān)等電路結(jié)構(gòu)的改進(jìn))還是軟件上的改進(jìn)(對(duì)于方法流程的改進(jìn))。然而,隨著技術(shù)的發(fā)展,當(dāng)今的很多方法流程的改進(jìn)已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進(jìn)。設(shè)計(jì)人員幾乎都通過將改進(jìn)的方法流程編程到硬件電路中來得到相應(yīng)的硬件電路結(jié)構(gòu)。因此,不能說一個(gè)方法流程的改進(jìn)就不能用硬件實(shí)體模塊來實(shí)現(xiàn)。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現(xiàn)場(chǎng)可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對(duì)器件編程來確定。由設(shè)計(jì)人員自行編程來把一個(gè)數(shù)字系統(tǒng)“集成”在一片pld上,而不需要請(qǐng)芯片制造廠商來設(shè)計(jì)和制作專用的集成電路芯片。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來實(shí)現(xiàn),它與程序開發(fā)撰寫時(shí)所用的軟件編譯器相類似,而要編譯之前的原始代碼也得用特定的編程語(yǔ)言來撰寫,此稱之為硬件描述語(yǔ)言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領(lǐng)域技術(shù)人員也應(yīng)該清楚,只需要將方法流程用上述幾種硬件描述語(yǔ)言稍作邏輯編程并編程到集成電路中,就可以很容易得到實(shí)現(xiàn)該邏輯方法流程的硬件電路。

控制器可以按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)。或者甚至,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。

上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)設(shè)備為計(jì)算機(jī)。具體的,計(jì)算機(jī)例如可以為個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、相機(jī)電話、智能電話、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備或者這些設(shè)備中的任何設(shè)備的組合。

為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。

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

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

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

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

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

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

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

還需要說明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。

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

本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。

本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

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

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
察哈| 平果县| 株洲县| 瓮安县| 永靖县| 乡宁县| 延川县| 霍城县| 利川市| 犍为县| 焦作市| 霸州市| 长垣县| 镇安县| 吕梁市| 黄骅市| 永年县| 南投县| 丰原市| 虞城县| 都匀市| 巧家县| 巩义市| 调兵山市| 鄂伦春自治旗| 徐水县| 阳朔县| 获嘉县| 昌宁县| 隆子县| 准格尔旗| 阿尔山市| 张家港市| 新蔡县| 禄丰县| 周宁县| 安西县| 临洮县| 突泉县| 晋城| 永泰县|