日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

基于程序依賴圖的Android平臺(tái)仿冒應(yīng)用檢測(cè)方法

文檔序號(hào):9217500閱讀:303來源:國(guó)知局
基于程序依賴圖的Android平臺(tái)仿冒應(yīng)用檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及移動(dòng)終端應(yīng)用安全技術(shù)領(lǐng)域,更具體地涉及一種用于Android平臺(tái)上 仿冒應(yīng)用的檢測(cè)方法。
【背景技術(shù)】
[0002] 目前,隨著移動(dòng)終端和移動(dòng)操作系統(tǒng)的日益普及,移動(dòng)終端應(yīng)用數(shù)量呈爆發(fā)式增 長(zhǎng),然而移動(dòng)應(yīng)用的安全問題也隨之愈發(fā)嚴(yán)重,Android應(yīng)用程序的仿冒和剽竊尤為突出。 由于Android應(yīng)用程序容易逆向,導(dǎo)致攻擊者可以通過反編譯合法的應(yīng)用程序,植入自己 的惡意代碼或廣告信息,之后重新打包在相同或其他Android市場(chǎng)中進(jìn)行發(fā)布,從而獲取 利益。
[0003] 這些仿冒軟件擾亂了 Android市場(chǎng)的秩序,給用戶和開發(fā)者帶來很大的威脅。對(duì) 于用戶來說,攻擊者植入大量的廣告影響了用戶的正常使用,有些仿冒軟件甚至植入了一 些隱藏的惡意代碼,對(duì)用戶的隱私和安全造成了威脅。對(duì)于開發(fā)者來說,仿冒軟件剽竊了原 創(chuàng)作者的勞動(dòng)成果,侵犯了合法應(yīng)用作者的知識(shí)產(chǎn)權(quán),使作者損失了合法的廣告收益和用 戶口碑。
[0004] 由于當(dāng)前Android市場(chǎng)的多樣化,以及應(yīng)用程序的爆發(fā)式增長(zhǎng),現(xiàn)有的基于字符 串匹配或者哈希的方法等很難滿足對(duì)多市場(chǎng)化多樣本的數(shù)據(jù)進(jìn)行檢測(cè),另外其準(zhǔn)確性和可 擴(kuò)展性上也隨著數(shù)據(jù)量的增加而大打折扣。因此需要一種跨市場(chǎng)的、精準(zhǔn)的檢測(cè)技術(shù)來檢 測(cè)和對(duì)抗仿冒軟件。

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

[0005] 針對(duì)上述問題,本發(fā)明提供一種基于程序依賴圖的Android平臺(tái)仿冒應(yīng)用檢測(cè)方 法,能夠?qū)崿F(xiàn)Android平臺(tái)上仿冒應(yīng)用檢測(cè)的高精準(zhǔn)性和可擴(kuò)展性。
[0006] 根據(jù)以上目的,實(shí)現(xiàn)本發(fā)明的技術(shù)方案是:
[0007] 一種基于程序依賴圖的Android平臺(tái)仿冒應(yīng)用檢測(cè)方法,其步驟包括:
[0008] 1)搜集Android應(yīng)用軟件并提取其安裝包中的方法,對(duì)于每一個(gè)方法得到其程序 依賴圖,對(duì)于程序依賴圖進(jìn)行特征抽取,得到特征向量;
[0009] 2)計(jì)算各應(yīng)用程序的所有方法的特征向量之間的差異度,將差異度低于一定閾值 的特征向量進(jìn)行分組,進(jìn)而得到方法相似的不同分組;
[0010] 3)計(jì)算方法相似的分組中各應(yīng)用程序的相似度,當(dāng)不同應(yīng)用程序的相似度達(dá)到一 定閾值時(shí),將其歸為一個(gè)仿冒分組,進(jìn)而從仿冒分組中區(qū)分出仿冒應(yīng)用程序。
[0011] 進(jìn)一步地,步驟1)進(jìn)行所述特征抽取時(shí),對(duì)程序依賴圖的數(shù)據(jù)流和控制流賦予不 同的權(quán)重,將其投射到三維空間,得到其變形圖。所述程序依賴圖中的每一個(gè)節(jié)點(diǎn)用一個(gè)矢 量〈X,y, z>來表示,x是程序依賴圖中節(jié)點(diǎn)的序號(hào),保證每一個(gè)節(jié)點(diǎn)只計(jì)算一次,y是節(jié)點(diǎn)的 帶權(quán)重的出度,z是節(jié)點(diǎn)所在循環(huán)的深度。
[0012] 進(jìn)一步地,用特征向量5 = (C、.,描述程序依賴圖的變形圖的特征,其 中:
[0013] cx的計(jì)算方式為:將圖中所有的點(diǎn)兩兩組合,其x坐標(biāo)經(jīng)過權(quán)重運(yùn)算后的值兩兩 求和,最后求其平均值;
[0014] cy的計(jì)算方式為:將圖中所有的點(diǎn)y坐標(biāo)兩兩組合,結(jié)合其數(shù)據(jù)流的出度和控制 流的出度以及對(duì)應(yīng)的權(quán)重進(jìn)行求和,最后求其平均值;
[0015] cz的計(jì)算方式為:將圖中所有的點(diǎn)z坐標(biāo)兩兩組合,結(jié)合其所在數(shù)據(jù)流和控制流 循環(huán)深度以及對(duì)應(yīng)的權(quán)重進(jìn)行求和,最后求其平均值;
[0016] w為程序依賴圖中所有語句塊的總和。
[0017] 進(jìn)一步地,步驟2)計(jì)算特征向量的歐氏距離作為所述差異度。
[0018] 進(jìn)一步地,步驟3)得到所述仿冒分組后,排除應(yīng)用相似的特殊情況,進(jìn)而從仿冒 分組中區(qū)分出仿冒應(yīng)用程序;所述應(yīng)用相似的特殊情況包括:
[0019] (a)純粹的應(yīng)用軟件仿冒;
[0020] (b)完全相同的兩個(gè)應(yīng)用程序,但是來自不同的Android市場(chǎng);
[0021] (c)同一個(gè)應(yīng)用軟件有多個(gè)不同的版本;
[0022] (d)應(yīng)用軟件的開發(fā)使用了相同的框架或使用了通用的第三方庫。
[0023] 本發(fā)明提出了一種自底向上的檢測(cè)技術(shù),通過結(jié)合Android應(yīng)用程序的控制流程 圖和數(shù)據(jù)流程圖的特點(diǎn),并創(chuàng)造性的結(jié)合了其幾何特征,設(shè)計(jì)了一套檢測(cè)體系來判斷兩個(gè) 應(yīng)用的相似性,從而實(shí)現(xiàn)Android平臺(tái)上仿冒應(yīng)用檢測(cè)的高精準(zhǔn)性和可擴(kuò)展性。
【附圖說明】
[0024] 圖1為Android軟件仿冒檢測(cè)的整體流程圖;
[0025] 圖2為一個(gè)程序依賴圖實(shí)例。
【具體實(shí)施方式】
[0026] 下面通過具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
[0027] 圖1為本發(fā)明的Android軟件仿冒檢測(cè)的整體流程圖,具體包括如下步驟:
[0028] 一、首先是搜集市場(chǎng)上的應(yīng)用程序以及提取安裝包中的所有方法,生成對(duì)應(yīng)的程 序依賴圖,對(duì)于每一個(gè)圖形,采用本發(fā)明提出的方法計(jì)算其特征向量。
[0029] 對(duì)于Android市場(chǎng)上應(yīng)用的搜集以及方法的提取和程序依賴圖的生成,均可使用 現(xiàn)有的工具和技術(shù)完成,這里不再贅述,本發(fā)明主要提出一種將程序依賴圖的幾何特性抽 象為一種可表示的向量的方法。
[0030] 程序依賴圖(Program Dependence Graph,H3G)表現(xiàn)了程序中各語句之間的不同 依賴關(guān)系,這種依賴關(guān)系主要體現(xiàn)在數(shù)據(jù)依賴性和控制依賴性上,因此本發(fā)明主要從數(shù)據(jù) 依賴和控制依賴兩方面來抽取程序依賴圖的特征。
[0031] 程序的數(shù)據(jù)依賴性可用數(shù)據(jù)流程圖的形式表示出來,構(gòu)造數(shù)據(jù)流程圖時(shí),程序的 每一個(gè)語句塊在流程圖中都有唯一的一個(gè)結(jié)點(diǎn)對(duì)應(yīng),假設(shè)nl和n2是數(shù)據(jù)流程圖中的兩個(gè) 節(jié)點(diǎn),如果存在nl到n2的數(shù)據(jù)流,則稱結(jié)點(diǎn)n2數(shù)據(jù)依賴于nl,即存在nl到n2的有向弧。 如圖2所示,圖2中A~F表示各個(gè)節(jié)點(diǎn),虛線部分表示了一個(gè)程序的數(shù)據(jù)流部分。
[0032] 程序的控制依賴關(guān)系可用控制流程圖來表示,控制流程圖中每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)程序 中的一個(gè)語句塊,當(dāng)節(jié)點(diǎn)nl到n2有一條執(zhí)行路徑時(shí),即存在一條從結(jié)點(diǎn)nl到n2的有向弧。 如圖2所示,圖2中實(shí)線部分表示了一個(gè)程序的控制依賴關(guān)系。
[0033] 程序依賴圖綜合了程序的數(shù)據(jù)依賴關(guān)系和控制依賴關(guān)系,把程序的數(shù)據(jù)流程和控 制流程結(jié)合起來便可得到其程序依賴圖,如圖2所示。為形象和全面的描述一個(gè)程序依賴 圖,本發(fā)明采用一種維度變換的方法來抽取程序依賴圖的特征,對(duì)程序依賴圖的數(shù)據(jù)流和 控制流賦予不同的權(quán)重,將其投射到三維空間,得到其變形圖:
[0034] 對(duì)于程序依賴圖(以下簡(jiǎn)稱H3G)中的每一個(gè)節(jié)點(diǎn),本發(fā)明定義一個(gè)矢量〈X,y, z> 來表示。其中x是TOG中的節(jié)點(diǎn)的序號(hào),序號(hào)可以保證每一個(gè)節(jié)點(diǎn)只計(jì)算一次,y是節(jié)點(diǎn)的 帶權(quán)重的出度(出邊的個(gè)數(shù)),z是節(jié)點(diǎn)所在循環(huán)的深度。其中:
[0035] l)x的編碼按照如下規(guī)則:第一個(gè)節(jié)點(diǎn)的起始值為1。為保證節(jié)點(diǎn)編號(hào)的唯一性, 如果一個(gè)節(jié)點(diǎn)有多個(gè)分支,優(yōu)先給子節(jié)點(diǎn)更多的分支節(jié)點(diǎn)編號(hào);如果兩個(gè)分支有相同數(shù)量 的子節(jié)點(diǎn),優(yōu)先給含有更多語句的分支節(jié)點(diǎn)編號(hào);依次標(biāo)注序號(hào)后直到tog的最后一個(gè)節(jié) 點(diǎn)。最后,我們手動(dòng)添加一個(gè)終止節(jié)點(diǎn)到tog的末尾。
[0036] 2)y的編碼規(guī)則如下:考慮到節(jié)點(diǎn)的出度(出邊個(gè)數(shù))包括數(shù)據(jù)流和控制流,因 此給數(shù)據(jù)流和控制流設(shè)置不同的權(quán)重。假設(shè)某一節(jié)點(diǎn)數(shù)據(jù)流出度為Out-d,控制流出度為 Out-c,則定義該節(jié)點(diǎn)坐標(biāo)y = 0ut-d*Wd+0ut-c*W。,W。和Wd分別為控制流和數(shù)據(jù)流賦予的 權(quán)重。
[0037] 3) z的編碼規(guī)則如下:假設(shè)某一節(jié)點(diǎn)所處在的數(shù)據(jù)流循環(huán)深度為L(zhǎng)d,所處在的控制 流循環(huán)深度為L(zhǎng)。,則z = LfWd+LjW。,W。和Wd為控制流和數(shù)據(jù)流賦予的權(quán)重,與上述計(jì)算y 時(shí)的數(shù)值相同。
[0038] 通過以上的定義方法,可以把一個(gè)roG中所有節(jié)點(diǎn)一對(duì)一的映射到其變形圖中, 即程序依賴圖的變形圖。
[0039] 下面以圖2為例對(duì)該方法進(jìn)行說明。這里假設(shè)控制流權(quán)重W。和數(shù)據(jù)流權(quán)重Wjg 同且都為1,則將圖中所有節(jié)點(diǎn)經(jīng)過編碼后的節(jié)點(diǎn)坐標(biāo)為:
[0040] 節(jié)點(diǎn)A :〈1,2,0> (起始節(jié)點(diǎn),1個(gè)數(shù)據(jù)流和1個(gè)控制流,無循環(huán))
[0041] 節(jié)點(diǎn)B:〈2,4, 3>(出度為4,處在2層控制流循環(huán)和1層數(shù)據(jù)流循環(huán)中)
[0042] 節(jié)點(diǎn) C :〈3, 3, 3>,節(jié)點(diǎn) D :〈4, 2, 2>,節(jié)點(diǎn) E :〈5,1,0> (略)
[0043] 節(jié)點(diǎn)F :〈6,0,0> (終止節(jié)點(diǎn),無出度,無循環(huán))
[0044] PDG的變形圖中的每個(gè)點(diǎn)都是PDG中每個(gè)節(jié)點(diǎn)的一對(duì)一映射,且由上述定義可知 其映射方法唯一,故變形圖能反映出H)G的特征,即不同的PDG對(duì)應(yīng)不同的變形圖。由于變 形圖的表示形式比較復(fù)雜,故本發(fā)明又提出了一種用向量來表示PDG變形圖特征的方法:
[0045] 本發(fā)明用一個(gè)向量5 = ,&,來描述程序依賴圖變形圖的特征,其中:
[0046] l)cx的計(jì)算方式為:將圖中所有的點(diǎn)兩兩組合,其x坐標(biāo)經(jīng)過權(quán)重運(yùn)算后的值兩 兩求和,最后求其平均值,計(jì)算公式如下:
[0048] 其中《為程序依賴圖中語句塊數(shù)量的總和(下同),p和q為圖中任意兩個(gè)節(jié)點(diǎn), xp和x q分別為對(duì)應(yīng)節(jié)點(diǎn)的x值,weight p和weight q為對(duì)應(yīng)節(jié)點(diǎn)設(shè)置的權(quán)重,e (p, q)為p到 q的邊,sD-CFG表示該程序依賴圖。
[0049] 用偽代碼形式表示如下:
[0051] 2)cy的計(jì)算方式為:將圖中所有的點(diǎn)y坐標(biāo)兩兩組合,結(jié)合其數(shù)據(jù)流的出度和控 制流的出度以及對(duì)應(yīng)的權(quán)重進(jìn)行求和,最后求其平均值,計(jì)算公式如下:
[0053] 其中node_y=node.Out_d*node.w_d+node.Out_c*node. w_c,node表不圖中的任 意節(jié)點(diǎn),〇ut_d和w_d為節(jié)點(diǎn)的數(shù)據(jù)流的出度和對(duì)應(yīng)賦予的權(quán)重,Out_c和w_c為對(duì)應(yīng)控制 流的出度和權(quán)重。
[0054] 用偽代碼形式表示如下:
[0056] 3)cz的計(jì)算方式為:將圖中所有的點(diǎn)z坐標(biāo)兩兩組合,結(jié)合其所在數(shù)據(jù)流和控制 流循環(huán)深度以及對(duì)應(yīng)的權(quán)重進(jìn)行求和,最后求其平均值,計(jì)算公式如下:
[0058] 其中 node-z = node. Loop-d*node. w-d+node. Loop-c*node. w-c,Loop-d 和 w-d 為 節(jié)點(diǎn)的數(shù)據(jù)留循環(huán)深度和對(duì)應(yīng)賦予的權(quán)重,L〇〇p_c和w_c為對(duì)應(yīng)控制流循環(huán)深度的出度和 權(quán)重。
[0059] 用偽代碼形式表示如下:
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1