一種用于檢測(cè)盜版應(yīng)用程序的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種用于檢測(cè)盜版應(yīng)用程序的方法,其中,方法包括:獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件;通過(guò)對(duì)所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件進(jìn)行分析,以確定所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度;根據(jù)所述相似度判斷待檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用程序安裝包。采用本發(fā)明的技術(shù)方案,即使盜版應(yīng)用程序安裝包進(jìn)行了重新打包并更換包名,也可以檢測(cè)出應(yīng)用程序安裝包是否是盜版的應(yīng)用程序安裝包。
【專利說(shuō)明】一種用于檢測(cè)盜版應(yīng)用程序的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種用于檢測(cè)盜版應(yīng)用程序的方法及裝置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,應(yīng)用程序代碼盜版現(xiàn)象越來(lái)越普遍。相對(duì)于自然語(yǔ) 言,程序語(yǔ)言的語(yǔ)法相對(duì)規(guī)則,這一特點(diǎn)使應(yīng)用程序代碼剽竊起來(lái)更容易,一般僅通過(guò)文本 編輯器進(jìn)行簡(jiǎn)單的變量替換,添加冗余代碼,變換程序次序等手段,就可以改變應(yīng)用程序源 代碼的形式,而不影響源程序的正常運(yùn)行。目前比較普遍的應(yīng)用程序代碼剽竊手段包括:完 整拷貝,修改注釋,重新排版,標(biāo)識(shí)符重命名,代碼塊重排序,代碼塊內(nèi)語(yǔ)句重排序,改變表 達(dá)式中的操作符或者操作數(shù)順序,改變數(shù)據(jù)類型,增加冗余的語(yǔ)句或者變量,用等價(jià)的控制 結(jié)構(gòu)替換控制結(jié)構(gòu),常量替換,表達(dá)式拆分等。
[0003] 隨著智能手機(jī)的普及,手機(jī)應(yīng)用程序的盜版現(xiàn)象也越來(lái)越普遍。例如在Android 操作系統(tǒng)中,用戶如果需要安裝一個(gè)新的應(yīng)用程序,可以去諸如安卓市場(chǎng)等應(yīng)用程序市場(chǎng) 選擇需要安裝的應(yīng)用程序,但是應(yīng)用程序市場(chǎng)中的應(yīng)用程序數(shù)量非常多,準(zhǔn)入門檻又低,對(duì) 于從應(yīng)用程序市場(chǎng)獲得的應(yīng)用程序安裝包是否是盜版,不能方便的判斷。
[0004] 應(yīng)用程序安裝包的包名是應(yīng)用程序安裝包的標(biāo)識(shí),操作系統(tǒng)通過(guò)應(yīng)用程序安裝包 的包名,識(shí)別兩個(gè)應(yīng)用程序安裝包是否為不同的應(yīng)用程序安裝包,應(yīng)用程序安裝包的包名 相同,操作系統(tǒng)識(shí)別為同一個(gè)應(yīng)用程序安裝包,不能安裝在同一個(gè)操作手機(jī)中。
[0005] 目前,現(xiàn)有技術(shù)中提供一種通過(guò)簽名校驗(yàn)的方式來(lái)判斷應(yīng)用程序安裝包是否是盜 版的方法,這種方法是將包名相同的應(yīng)用程序安裝包的簽名與該應(yīng)用程序的官方簽名進(jìn)行 比較,與該應(yīng)用程序的官方簽名一致的應(yīng)用程序安裝包為正版的應(yīng)用程序安裝包,與該應(yīng) 用程序的官方簽名不一致的應(yīng)用程序安裝包為盜版的應(yīng)用程序安裝包。但是,如果該盜版 的應(yīng)用程序安裝包被重新打包,并更改了應(yīng)用程序安裝包的包名,現(xiàn)有技術(shù)的這種簽名校 驗(yàn)方法就不能準(zhǔn)確判斷該應(yīng)用程序安裝包是否是盜版的安裝包。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種用于檢測(cè)盜版應(yīng)用程序的方法,以解決現(xiàn) 有技術(shù)在應(yīng)用程序安裝包被重新打包并更改包名的情況下,不能準(zhǔn)確判斷應(yīng)用程序安裝包 是否為盜版的應(yīng)用程序安裝包的問(wèn)題。
[0007] 根據(jù)本發(fā)明的一個(gè)方面,提供一種用于檢測(cè)盜版應(yīng)用程序的方法,包括:
[0008] 獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件;
[0009] 通過(guò)對(duì)所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng)用程序安裝包的 二進(jìn)制特征文件進(jìn)行分析,以確定所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng) 用程序安裝包的二進(jìn)制特征文件的相似度;
[0010] 根據(jù)所述相似度判斷待檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用程序安裝包。
[0011] 根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用于檢測(cè)盜版應(yīng)用程序的裝置,包括:
[0012] 獲取裝置,用于獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件;
[0013] 相似度確定裝置,用于通過(guò)對(duì)所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正 版應(yīng)用程序安裝包的二進(jìn)制特征文件進(jìn)行分析,以確定所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn) 制特征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度;
[0014] 盜版判斷裝置,用于根據(jù)所述相似度判斷待檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用 程序安裝包。
[0015] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):本發(fā)明通過(guò)將待檢測(cè)應(yīng)用程序安裝包的 二進(jìn)制特征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件進(jìn)行分析,以確定待檢測(cè)應(yīng)用程 序安裝包的二進(jìn)制特征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度,并根據(jù)該 相似度判斷該待檢測(cè)應(yīng)用程序安裝包是否是盜版的應(yīng)用程序安裝包。采用本發(fā)明的技術(shù)方 案,即使盜版應(yīng)用程序安裝包進(jìn)行了重新打包并更換包名,也可以檢測(cè)出應(yīng)用程序安裝包 是否是盜版的應(yīng)用程序安裝包。
【專利附圖】
【附圖說(shuō)明】
[0016] 通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它 特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0017] 圖1為根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于檢測(cè)盜版應(yīng)用程序的方法流程圖;
[0018] 圖2為根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于檢測(cè)盜版應(yīng)用程序的裝置示意圖。
[0019] 附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0020] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0021] 在本發(fā)明中,網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲(chǔ)的指令,自動(dòng)進(jìn)行數(shù)值 計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程 門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。所述網(wǎng)絡(luò)設(shè)備其包括但不限于計(jì)算機(jī)、 網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云;在此,云由基于云 計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一 種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)虛擬超級(jí)計(jì)算機(jī)。所述用戶設(shè)備其包括但不限 于任何一種可與用戶通過(guò)鍵盤、觸摸板、或聲控設(shè)備進(jìn)行人機(jī)交互的電子產(chǎn)品,例如移動(dòng)終 端、PDA等。其中,所述移動(dòng)終端指可以在移動(dòng)中使用的計(jì)算機(jī)設(shè)備,包括但不限于手機(jī)、筆 記本、平板電腦、車載電腦等。本領(lǐng)域技術(shù)人員應(yīng)能理解,其他的移動(dòng)終端、網(wǎng)絡(luò)設(shè)備同樣適 用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0022] 在本發(fā)明中,應(yīng)用程序是指為了完成某項(xiàng)或某幾項(xiàng)特定任務(wù)而被開(kāi)發(fā)運(yùn)行于操作 系統(tǒng)之上的計(jì)算機(jī)程序,包括但不限于計(jì)算機(jī)上使用的應(yīng)用程序,移動(dòng)終端上使用的應(yīng)用 程序等。
[0023] 圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于檢測(cè)盜版應(yīng)用程序的方法流程圖。
[0024] 如圖1所示,在步驟SlOl中,網(wǎng)絡(luò)設(shè)備獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征 文件。
[0025] 具體地,網(wǎng)絡(luò)設(shè)備首先通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包進(jìn)行反編譯,以獲得該待檢 測(cè)應(yīng)用程序安裝包的反編譯文件。其中,對(duì)待檢測(cè)應(yīng)用程序安裝包進(jìn)行反編譯,是指通過(guò)使 用應(yīng)用程序安裝包的編譯工具將應(yīng)用程序安裝包文件中的源文件和資源文件反編譯出來(lái), 得到源文件和資源文件。例如,基于Android操作系統(tǒng)的移動(dòng)終端中,對(duì)于APK (Android Package, Android安裝包),應(yīng)用程序安裝包的編譯工具包括apktool,easyapk,apkdb, doapk 等。
[0026] 下面以兩個(gè)不同的編譯工具為例說(shuō)明網(wǎng)絡(luò)設(shè)備使用編譯工具對(duì)APK進(jìn)行反編譯。
[0027] 示例1 :使用apktool對(duì)APK進(jìn)行反編譯
[0028] 在cmd中使用命令行"apktool d apk文件名",來(lái)編譯APK文件,其中,"apktool d"是反編譯命令,d代表decode。需要注意的是,命令行的執(zhí)行目錄與APK文件所在目錄 一致。隨后,在APK文件所在命令可以獲得該APK的反編譯文件。
[0029] 示例2 :使用apkdb對(duì)APK進(jìn)行反編譯
[0030] 安裝apkdb程序,在apkdb程序安裝完成后,選擇待反編譯的APK文件,右擊鼠標(biāo), 在右擊鼠標(biāo)出現(xiàn)的菜單中選擇反編譯選項(xiàng)。隨后,在在APK文件所在命令可以獲得該APK 的反編譯文件。
[0031] 具體地,在獲得待檢測(cè)應(yīng)用程序安裝包的反編譯文件后,網(wǎng)絡(luò)設(shè)備將該待檢測(cè)應(yīng) 用程序安裝包的反編譯文件進(jìn)行聚合處理,以獲得二進(jìn)制特征文件。
[0032] 具體地,可以采用以下方式將該待檢測(cè)應(yīng)用程序安裝包的反編譯文件進(jìn)行聚合處 理以獲得二進(jìn)制特征文件:
[0033] 首先,在步驟SlOll中(圖中未示出),網(wǎng)絡(luò)設(shè)備通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包的反 編譯文件去除冗余信息,來(lái)獲得僅保留操作符的反編譯文件,其中,該冗余信息包括但不限 于:廣告包,操作數(shù),軟件開(kāi)發(fā)工具包等。
[0034] 本領(lǐng)域技術(shù)人員應(yīng)理解,本實(shí)施例中的冗余信息僅為舉例,其他可應(yīng)用于本發(fā)明 的冗余信息,也應(yīng)包含在本專利的保護(hù)范圍之內(nèi),并以引用方式包含于此。
[0035] 其次,在步驟S1012 (圖中未示出),網(wǎng)絡(luò)設(shè)備根據(jù)所述僅保留操作符的反編譯文件 中的所述操作符的順序,對(duì)所述僅保留操作符的反編譯文件進(jìn)行聚合,以獲得二進(jìn)制特征 文件。
[0036] 其中,所述聚合處理是指按照預(yù)定順序,將反編譯文件中的程序片段在去除冗余 信息后獲得的操作符聚集在一起。
[0037] 下面以一示例來(lái)說(shuō)明對(duì)僅保留操作符的反編譯文件進(jìn)行聚合。
[0038] 示例 3
[0039] 待檢測(cè)應(yīng)用程序安裝包的反編譯文件中的兩個(gè)程序片段:
[0040] 片段 1
[0041]
【權(quán)利要求】
1. 一種用于檢測(cè)盜版應(yīng)用程序的方法,其特征在于,包括: -獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件; -通過(guò)對(duì)所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng)用程序安裝包的二進(jìn) 制特征文件進(jìn)行分析,以確定所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng)用程 序安裝包的二進(jìn)制特征文件的相似度; -根據(jù)所述相似度判斷待檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用程序安裝包。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特 征文件的步驟包括: -通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包進(jìn)行反編譯,以獲得該待檢測(cè)應(yīng)用程序安裝包的反編 譯文件; -將所述待檢測(cè)應(yīng)用程序安裝包的反編譯文件進(jìn)行聚合處理,以獲得二進(jìn)制特征文件。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述待檢測(cè)應(yīng)用程序安裝包的反 編譯文件進(jìn)行聚合處理以獲得二進(jìn)制特征文件的步驟包括: -通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包的反編譯文件去除冗余信息,來(lái)獲得僅保留操作符的 反編譯文件,其中,該冗余信息包括廣告包和操作數(shù); -根據(jù)所述僅保留操作符的反編譯文件中的所述操作符的順序,對(duì)所述僅保留操作符 的反編譯文件進(jìn)行聚合,以獲得二進(jìn)制特征文件。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述確定正版應(yīng)用程序安裝包的二進(jìn)制 特征文件和待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度的步驟包括: _分別對(duì)正版應(yīng)用程序安裝包的二進(jìn)制特征文件和待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特 征文件進(jìn)行模糊散列計(jì)算,得到兩個(gè)散列值; -通過(guò)對(duì)所述兩個(gè)散列值進(jìn)行分析,以確定兩個(gè)散列值的相似度,作為所述正版應(yīng)用程 序安裝包的二進(jìn)制特征文件和待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)兩個(gè)散列值進(jìn)行分析以確定兩個(gè) 散列值的相似度的步驟包括: -基于所述兩個(gè)散列值的編輯距離,來(lái)確定兩個(gè)散列值的相似度。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)兩個(gè)散列值進(jìn)行分析以確定兩個(gè) 散列值的相似度的步驟包括: -基于各操作符對(duì)應(yīng)的預(yù)定權(quán)重,來(lái)計(jì)算所述兩個(gè)散列值的基于權(quán)重的編輯距離; -根據(jù)所計(jì)算的基于權(quán)重的編輯距離,來(lái)確定兩個(gè)散列值的相似度。
7. 根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的方法,其特征在于,根據(jù)所述相似度判斷所述該 檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用程序安裝包的步驟包括: -判斷所述相似度是否超過(guò)預(yù)定門限; -如果所述相似度超過(guò)預(yù)定門限,確定所述待檢測(cè)應(yīng)用程序安裝包是盜版應(yīng)用程序安 裝包。
8. -種用于檢測(cè)盜版應(yīng)用程序的裝置,其特征在于,包括: 獲取裝置,用于獲取待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件; 相似度確定裝置,用于通過(guò)對(duì)所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征文件與正版應(yīng) 用程序安裝包的二進(jìn)制特征文件進(jìn)行分析,以確定所述待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特 征文件與正版應(yīng)用程序安裝包的二進(jìn)制特征文件的相似度; 盜版判斷裝置,用于根據(jù)所述相似度判斷待檢測(cè)應(yīng)用程序安裝包是否是盜版應(yīng)用程序 安裝包。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述獲取裝置包括: 反編譯模塊,用于通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包進(jìn)行反編譯,以獲得該待檢測(cè)應(yīng)用程 序安裝包的反編譯文件; 二進(jìn)制特征文件獲取模塊,用于將所述待檢測(cè)應(yīng)用程序安裝包的反編譯文件進(jìn)行聚合 處理,以獲得二進(jìn)制特征文件。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述二進(jìn)制特征文件獲取模塊包括: 冗余去除子模塊,用于通過(guò)對(duì)待檢測(cè)應(yīng)用程序安裝包的反編譯文件去除冗余信息,來(lái) 獲得僅保留操作符的反編譯文件,其中,該冗余信息包括廣告包和操作數(shù); 二進(jìn)制特征文件獲取子模塊,用于根據(jù)所述僅保留操作符的反編譯文件中的所述操作 符的順序,對(duì)所述僅保留操作符的反編譯文件進(jìn)行聚合,以獲得二進(jìn)制特征文件。
11. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述相似度確定裝置包括: 散列計(jì)算模塊,用于分別對(duì)正版應(yīng)用程序安裝包的二進(jìn)制特征文件和待檢測(cè)應(yīng)用程序 安裝包的二進(jìn)制特征文件進(jìn)行模糊散列計(jì)算,得到兩個(gè)散列值; 相似度確定模塊,用于通過(guò)對(duì)所述兩個(gè)散列值進(jìn)行分析,以確定兩個(gè)散列值的相似度, 作為所述正版應(yīng)用程序安裝包的二進(jìn)制特征文件和待檢測(cè)應(yīng)用程序安裝包的二進(jìn)制特征 文件的相似度。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述相似度確定模塊包括: 第一相似度確定子模塊,用于基于所述兩個(gè)散列值的編輯距離,來(lái)確定兩個(gè)散列值的 相似度。
13. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述相似度確定模塊包括: 編輯距離計(jì)算子模塊,用于基于各操作符對(duì)應(yīng)的預(yù)定權(quán)重,來(lái)計(jì)算所述兩個(gè)散列值的 基于權(quán)重的編輯距離; 第二相似度確定子模塊,用于根據(jù)所計(jì)算的基于權(quán)重的編輯距離,來(lái)確定兩個(gè)散列值 的相似度。
14. 根據(jù)權(quán)利要求8至13中任一項(xiàng)所述的裝置,其特征在于,所述盜版判斷裝置包括: 門限判斷模塊,用于判斷所述相似度是否超過(guò)預(yù)定門限; 盜版確定模塊,用于如果所述相似度超過(guò)預(yù)定門限,確定所述待檢測(cè)應(yīng)用程序安裝包 是盜版應(yīng)用程序安裝包。
【文檔編號(hào)】G06F21/12GK104424402SQ201310382289
【公開(kāi)日】2015年3月18日 申請(qǐng)日期:2013年8月28日 優(yōu)先權(quán)日:2013年8月28日
【發(fā)明者】彭躍輝, 羅輯, 黃東旭, 丁吉昌 申請(qǐng)人:卓易暢想(北京)科技有限公司