黃高攀 何金陵 莊嶺 張利
摘要:隨著移動(dòng)應(yīng)用數(shù)量劇增,移動(dòng)應(yīng)用安全檢測(cè)的需求日益增大,面向海量移動(dòng)應(yīng)用檢測(cè)平臺(tái)的效率顯得愈發(fā)重要。然而現(xiàn)有的負(fù)載均衡算法在負(fù)載因子的度量上存在局限性和效率問(wèn)題。分析了已有調(diào)度算法中負(fù)載因子度量的不足,結(jié)合現(xiàn)有的移動(dòng)應(yīng)用檢測(cè)方法的特性,引入了移動(dòng)應(yīng)用軟件規(guī)模作為負(fù)載因子。根據(jù)該算法,設(shè)計(jì)了一個(gè)移動(dòng)應(yīng)用檢測(cè)平臺(tái),通過(guò)實(shí)驗(yàn)驗(yàn)證,該算法有效避免了海量任務(wù)下檢測(cè)節(jié)點(diǎn)負(fù)載不均衡的問(wèn)題,加快了移動(dòng)應(yīng)用的檢測(cè)效率,提高了海量移動(dòng)應(yīng)用檢測(cè)平臺(tái)的吞吐量,取得良好效果。
關(guān)鍵詞:載均衡;海量移動(dòng)應(yīng)用;軟件規(guī)模;靜態(tài)檢測(cè);文件特征
中圖分類號(hào):TP311.5
文獻(xiàn)標(biāo)識(shí)碼:A
隨著移動(dòng)智能終端的快速普及和功能的日趨強(qiáng)大,移動(dòng)應(yīng)用數(shù)量正以前所未有的速度呈爆炸性增長(zhǎng)。目前國(guó)內(nèi)Android第三方應(yīng)用商店有幾百家,市場(chǎng)上可供下載的應(yīng)用數(shù)量不計(jì)其數(shù)。這些移動(dòng)應(yīng)用在給用戶的生活帶來(lái)便利的同時(shí),也引發(fā)了一些安全問(wèn)題。360互聯(lián)網(wǎng)安全中心發(fā)布的《2017年中國(guó)手機(jī)安全狀況報(bào)告》指出[1],2016全年,360互聯(lián)網(wǎng)安全中心累計(jì)截獲Android平臺(tái)惡意程序樣本1403.3萬(wàn)個(gè),Android用戶感染惡意程序2.53億,平均每天新增3.8萬(wàn)惡意程序樣本。因此,面向海量移動(dòng)應(yīng)用檢測(cè)平臺(tái)的效率顯得愈發(fā)重要。 對(duì)分布式調(diào)度任務(wù)而言,如海量日志分析,可對(duì)文件進(jìn)行簡(jiǎn)單的切分,再進(jìn)行均衡調(diào)度分析[2]。但是對(duì)于Android應(yīng)用而言,內(nèi)部文件間相互關(guān)聯(lián),無(wú)法將應(yīng)用切分為更小文件孤立分析,從而導(dǎo)致單個(gè)應(yīng)用檢測(cè)時(shí)間跨度很大[3]。因此,為了檢測(cè)任務(wù)調(diào)度的均衡性,現(xiàn)有海量移動(dòng)應(yīng)用檢測(cè)平臺(tái)添加了移動(dòng)應(yīng)用檢測(cè)任務(wù)量作為負(fù)載均衡因素,然而在對(duì)檢測(cè)任務(wù)量的評(píng)估過(guò)程中,仍存在考慮不全面且效率較低的問(wèn)題[4-6]。針對(duì)目前負(fù)載均衡算法中對(duì)負(fù)載因子度量存在的不足,提出一種基于應(yīng)用內(nèi)部文件特征的海量移動(dòng)應(yīng)用檢測(cè)調(diào)度算法。
1 移動(dòng)應(yīng)用軟件規(guī)模
Android應(yīng)用檢測(cè)的關(guān)注點(diǎn)是應(yīng)用中代碼的邏輯和數(shù)據(jù)的信息[7],因此應(yīng)用的軟件規(guī)模直接影響到檢測(cè)任務(wù)量。軟件工程中是通過(guò)代碼的行數(shù)對(duì)軟件規(guī)模進(jìn)行度量。
對(duì)Android應(yīng)用而言,其主要包括Java和C兩類程序設(shè)計(jì)語(yǔ)言[8]。在本文的研究場(chǎng)景中,分析的對(duì)象是打包后的Android應(yīng)用程序,因此和常規(guī)的Java或C工程不同,難以基于源碼行數(shù)[9]進(jìn)行軟件規(guī)模衡量。獲取應(yīng)用程序源碼信息需要進(jìn)行反匯編反編譯等操作[10],耗時(shí)長(zhǎng)且準(zhǔn)確度較低,并且dalvik虛擬機(jī)和CPUAndroid運(yùn)行時(shí)是直接讀取并執(zhí)行底層指令,因此底層指令的規(guī)模更能體現(xiàn)移動(dòng)應(yīng)用軟件規(guī)模。
具體來(lái)說(shuō),Android應(yīng)用中Java代碼會(huì)被編譯成dex文件[11],運(yùn)行在dalvik虛擬機(jī)上。當(dāng)Android程序運(yùn)行時(shí),dalvik虛擬機(jī)會(huì)從dex文件中取出方法的dalvik指令,逐條運(yùn)行。因此Android中Java的規(guī)模,是通過(guò)dalvik指令的規(guī)模決定的。
Android應(yīng)用引用的C代碼通常被編譯成so動(dòng)態(tài)鏈接庫(kù),動(dòng)態(tài)鏈接庫(kù)不是交由dalvik虛擬機(jī)解釋執(zhí)行,而是直接由手機(jī)的處理器CPU解析匯編指令執(zhí)行。因此Android中C語(yǔ)言的規(guī)模,是由動(dòng)態(tài)鏈接庫(kù)arm指令的規(guī)模決定的。
綜上本文會(huì)結(jié)合不同文件的特性,去衡量軟件規(guī)模,從而進(jìn)一步度量檢測(cè)的任務(wù)量。
1.1 移動(dòng)應(yīng)用軟件規(guī)模度量方法
Android應(yīng)用后綴名為apk。通過(guò)解壓縮觀察到其包括AndroidManifest.xml、META -INF、Dex、So、resources.arsc等。AndroidManifest.xml、Dex、So是敏感信息出現(xiàn)的多發(fā)區(qū)[12],也是我們安全分析的重點(diǎn)。
結(jié)合apk內(nèi)不同文件的特性和檢測(cè)流程,我們快速地提取文件的特征參數(shù)計(jì)算移動(dòng)應(yīng)用軟件規(guī)模。對(duì)于AndroidManifest.xml文件,我們提取其文件大小作為其特征參數(shù);對(duì)于class.dex文件,我們提取文件頭中的變量個(gè)數(shù)、方法個(gè)數(shù)、類個(gè)數(shù)作為其特征參數(shù);對(duì)于s0鏈接庫(kù),我們提取SHT中的代碼段大小、數(shù)據(jù)段大小作為其特征參數(shù)[13]。不同文件有不同的規(guī)模計(jì)算公式。整個(gè)應(yīng)用的軟件規(guī)模為有效文件規(guī)模的加權(quán)和。
1.1.1 AndroidManifest
AndroidManifest解析只涉及信息提取,步驟比較簡(jiǎn)單。由于XML通用的標(biāo)記結(jié)構(gòu),AndroidMani-fest的檢測(cè)時(shí)間隨文件大小呈正相關(guān)。用ComplexityAndrocdManifest來(lái)衡量AndroidManifest的文件規(guī)模,ComplexityAdrocdManifes等于APK中AndroidManifest實(shí)際大小,公式如下:
ComplexityAndrocdManifest=SizeAndrocdManifest
(1)
1.1.2 Dex
目前針對(duì)Android應(yīng)用程序dex的靜態(tài)分析技術(shù),主要是通過(guò)反編譯dex文件,獲取smali文件,然后解析smali文件內(nèi)部的每條指令,建立程序控制流圖,后續(xù)再針對(duì)控制流圖展開(kāi)進(jìn)一步的分析。因此,smali指令的數(shù)量會(huì)影響dex靜態(tài)分析的工作量[14]。本文通過(guò)dex文件結(jié)構(gòu)的特性,快速統(tǒng)計(jì)所有方法中的指令數(shù)量,作為dex文件規(guī)模的衡量因子。
Dex文件結(jié)構(gòu)如圖1所示,structDexCode中的表示指令集的個(gè)數(shù)。
通過(guò)遍歷dex中的所有class信息,針對(duì)每個(gè)class遍歷所有的method信息,獲取method中的指令個(gè)數(shù)。具體提取過(guò)程如下:
輸入:Android Dex文件——Dex
輸出:Android Dex文件規(guī)模-insnsSize
BEGIN
insnsSize←0
for DexClassDef in Dex.DexClassDefs
DexClassData←-DexClassDef.classDataOff
directMethods←DexClassData.directMethod
for directMethod in directMethods
DexCode←-directMethod. codeOff
insnsSize←insnsSize+ DexCode.insnsSize
end for
virtualMethod←DexClassData.virtualMethod
for virtualMethod in virtualMethod
DexCode←virtualMethod. codeOff
insnsSize←insnsSize+ virtualMethod.codeOff
end for
用Complexity&x來(lái)衡量dex的文件規(guī)模,公式如下:
1.1.3 So鏈接厙
針對(duì)so文件的靜態(tài)分析,首先會(huì)進(jìn)行反匯編操作,將so中的二進(jìn)制信息轉(zhuǎn)化成匯編代碼[15],再結(jié)合代碼區(qū)和數(shù)據(jù)區(qū)進(jìn)行控制流和數(shù)據(jù)流的分析。因此,本文通過(guò)so文件中的代碼區(qū)和數(shù)據(jù)區(qū)的大小來(lái)衡量s0文件檢測(cè)的文件規(guī)模。
Android中的s0文件是elf格式。根據(jù)elf文件的結(jié)構(gòu)定義,其包含:ELF頭、區(qū)信息表、段信息表、以及各區(qū)詳細(xì)信息等。
Section Header Table(SHT)記錄了每個(gè)section的名稱、類型、大小以及在整個(gè)ELF文件中的字節(jié)偏移位置等信息。常見(jiàn)的Section有.text、.data、.bss、.got。其中,代碼段.text,數(shù)據(jù)段.data和.bss包含重要的信息,也是檢測(cè)引擎的分析對(duì)象,其大小和檢測(cè)時(shí)間呈正相關(guān)。
因此本文通過(guò)解析Section Header Table獲取了.text的大小textSize,.data的大小dataSize和.bss的大小bssSize。
用變量Complexitys。來(lái)衡量s0的文件規(guī)模,公式如下:
Complexitys.=textSize+ dataSize+bssSize (3)
1.1.4 移動(dòng)應(yīng)用軟件規(guī)模
應(yīng)用的軟件規(guī)模為所有文件規(guī)模的加權(quán)和。Complexity AndrocdManifest為應(yīng)用AndroidManifest文件的規(guī)模,Complexity Dex為應(yīng)用Dex文件的規(guī)模,Com-plexitys。為應(yīng)用So文件的規(guī)模。WAndroidManifest、WDex、W So分別為AndroidManifest文件、Dex文件、So文件的權(quán)值。本文選取了500個(gè)移動(dòng)應(yīng)用,在正常檢測(cè)的過(guò)程中分別統(tǒng)計(jì)AndroidManifest、Dex、So的檢測(cè)時(shí)長(zhǎng),并計(jì)算三類文件的單位規(guī)模檢測(cè)時(shí)長(zhǎng),最后計(jì)算得出三者之間的比例為Androidmanifest:Dex:So=1:10:13,故本文按上述比例設(shè)置相應(yīng)權(quán)值。
1.2 移動(dòng)應(yīng)用軟件規(guī)模對(duì)檢測(cè)的影響
選取了檢測(cè)時(shí)間Ss到40分鐘內(nèi)的500個(gè)移動(dòng)應(yīng)用,對(duì)其進(jìn)行應(yīng)用軟件規(guī)模和檢測(cè)時(shí)間的統(tǒng)計(jì)比對(duì)。移動(dòng)應(yīng)用軟件規(guī)模的度量采用公式(4),發(fā)現(xiàn)應(yīng)用軟件規(guī)模和靜態(tài)檢測(cè)時(shí)間呈正相關(guān),隨著應(yīng)用軟件規(guī)模的增加,移動(dòng)應(yīng)用檢測(cè)時(shí)間增長(zhǎng)。實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)如圖3所示。
從圖3中可以看出,移動(dòng)應(yīng)用檢測(cè)時(shí)間與應(yīng)用軟件規(guī)?;貧w方程方差大于9,明顯正相關(guān)。隨著移動(dòng)應(yīng)用軟件規(guī)模的增加,移動(dòng)應(yīng)用的靜態(tài)檢測(cè)時(shí)間也逐漸增長(zhǎng)。因此,可以將移動(dòng)應(yīng)用的軟件規(guī)模作為負(fù)載均衡算法的一個(gè)參數(shù),讓每個(gè)檢測(cè)節(jié)點(diǎn)的任務(wù)隊(duì)列上所等待任務(wù)的軟件規(guī)模之和趨于平衡,則在批量執(zhí)行移動(dòng)應(yīng)用的檢測(cè)任務(wù)時(shí),檢測(cè)性能將大大提高。
2 基于移動(dòng)應(yīng)用軟件規(guī)模的任務(wù)調(diào)度
2.1 平臺(tái)設(shè)計(jì)
移動(dòng)應(yīng)用檢測(cè)平臺(tái)由客戶端、中心管理節(jié)點(diǎn)、檢測(cè)子節(jié)點(diǎn)組成。其中,中心管理節(jié)點(diǎn)接受檢測(cè)任務(wù)根據(jù)檢測(cè)子節(jié)點(diǎn)的負(fù)載情況,選擇最優(yōu)節(jié)點(diǎn)下發(fā)檢測(cè)任務(wù);接受檢測(cè)子節(jié)點(diǎn)心跳,重新計(jì)算檢測(cè)機(jī)節(jié)點(diǎn)負(fù)載分?jǐn)?shù),更新記錄的負(fù)載信息。中心管理節(jié)點(diǎn)的負(fù)載均衡模塊框架如圖4所示。
負(fù)載均衡模塊分為心跳接受引擎、負(fù)載值計(jì)算引擎、檢測(cè)子節(jié)點(diǎn)資源隊(duì)列三部分。心跳接受引擎接收到檢測(cè)子節(jié)點(diǎn)發(fā)來(lái)的心跳信息后,將其中的負(fù)載信息取出傳遞給負(fù)載值計(jì)算引擎;負(fù)載值計(jì)算引擎根據(jù)節(jié)點(diǎn)負(fù)載信息計(jì)算出節(jié)點(diǎn)的實(shí)時(shí)負(fù)載值后,根據(jù)負(fù)載值的大小重排檢測(cè)子節(jié)點(diǎn)資源隊(duì)列。這樣,中心節(jié)點(diǎn)收到移動(dòng)應(yīng)用檢測(cè)任務(wù)后,可以直接取出檢測(cè)子節(jié)點(diǎn)資源隊(duì)列中的隊(duì)頭元素,即負(fù)載分?jǐn)?shù)最大、負(fù)載最低節(jié)點(diǎn)。
2.2 調(diào)度算法
在分布式調(diào)度系統(tǒng)的中心管理節(jié)點(diǎn)上有一個(gè)負(fù)載均衡調(diào)度器,其作用是監(jiān)視和收集各個(gè)服務(wù)器的負(fù)載信息。負(fù)載調(diào)度器根據(jù)多個(gè)負(fù)載信息算出一個(gè)綜合能力值。
在傳統(tǒng)負(fù)載均衡算法中,一般使用CPU使用率、內(nèi)存占用率、硬盤使用情況、網(wǎng)絡(luò)吞吐量作為服務(wù)器負(fù)載的衡量標(biāo)準(zhǔn)。但在本文所述應(yīng)用場(chǎng)景下,由于移動(dòng)應(yīng)用小文件的特點(diǎn),在檢測(cè)過(guò)程中,服務(wù)器硬盤的使用情況變化不大,硬盤使用量對(duì)移動(dòng)應(yīng)用的檢測(cè)影響較小;由于移動(dòng)應(yīng)用的存儲(chǔ)和檢測(cè)都在局域網(wǎng)下完成,局域網(wǎng)內(nèi)網(wǎng)絡(luò)情況優(yōu)異,網(wǎng)絡(luò)吞吐量對(duì)移動(dòng)應(yīng)用的檢測(cè)效率也無(wú)明顯影響。
綜上,在實(shí)驗(yàn)過(guò)程中,根據(jù)移動(dòng)應(yīng)用檢測(cè)任務(wù)的特點(diǎn)以及服務(wù)器負(fù)載的特點(diǎn),將影響負(fù)載均衡的因素分為以下幾類:
(1)檢測(cè)節(jié)點(diǎn)CPU負(fù)載,包括CPU核數(shù)、CPU頻率、CPU使用百分比。
(2)檢測(cè)節(jié)點(diǎn)內(nèi)存負(fù)載,包括最大內(nèi)存、內(nèi)存使用百分比。
(3)檢測(cè)節(jié)點(diǎn)任務(wù)隊(duì)列負(fù)載,包括任務(wù)長(zhǎng)度和任務(wù)隊(duì)列最大長(zhǎng)度。
(4)檢測(cè)節(jié)點(diǎn)應(yīng)用軟件規(guī)模。
2.3 特征提取時(shí)間效率
本實(shí)驗(yàn)對(duì)比基于控制流復(fù)雜度的動(dòng)態(tài)反饋算法和基于軟件規(guī)模大小的動(dòng)態(tài)反饋算法。統(tǒng)計(jì)在批量下發(fā)400個(gè)不同大小及任務(wù)量的移動(dòng)應(yīng)用任務(wù)時(shí),提取各自調(diào)度策略所需特征需要的時(shí)間。
從圖5中可以看出,基于控制流復(fù)雜度的動(dòng)態(tài)反饋算法提取負(fù)載信息需要數(shù)秒,且和控制流復(fù)雜度呈正比,對(duì)于控制流復(fù)雜度較高的應(yīng)用,提取負(fù)載信息需要幾十秒,這會(huì)是一筆很大的時(shí)間開(kāi)銷。而使用基于文件特征的動(dòng)態(tài)反饋算法提取負(fù)載信息,提取時(shí)間為毫秒級(jí)別且近似于常數(shù)??梢?jiàn)基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法提取特征的效率優(yōu)于基于控制流復(fù)雜度的動(dòng)態(tài)反饋算法,有效減少了負(fù)載均衡模塊在負(fù)載信息提取方面的開(kāi)銷,提高了負(fù)載均衡算法的效率。
2.4 改進(jìn)的應(yīng)用檢測(cè)任務(wù)動(dòng)態(tài)反饋算法效率分析
2.4.1 負(fù)載均衡算法功能評(píng)估
本實(shí)驗(yàn)對(duì)比基于應(yīng)用控制流復(fù)雜度的動(dòng)態(tài)反饋算法和基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法。統(tǒng)計(jì)在批量下發(fā)900個(gè)不同大小及任務(wù)量的移動(dòng)應(yīng)用檢測(cè)任務(wù)時(shí),6個(gè)檢測(cè)節(jié)點(diǎn)的負(fù)載情況,實(shí)驗(yàn)結(jié)果如圖6所示。
從圖6中可以看出,基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法對(duì)任務(wù)量的平衡能力優(yōu)于基于控制流的動(dòng)態(tài)反饋算法,有效避免了高性能任務(wù)節(jié)點(diǎn)的任務(wù)堆積和低性能的任務(wù)節(jié)點(diǎn)長(zhǎng)時(shí)間空閑。
2.4.2 負(fù)載均衡算法性能評(píng)估
負(fù)載均衡算法的目的是為了提高任務(wù)執(zhí)行效率,提高系統(tǒng)吞吐量,利用分布式結(jié)構(gòu)提高系統(tǒng)執(zhí)行性能。
對(duì)基于控制流復(fù)雜度的動(dòng)態(tài)反饋算法、基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法,分別統(tǒng)計(jì)在批量下發(fā)500個(gè)不同大小及任務(wù)量的應(yīng)用在應(yīng)用檢測(cè)任務(wù)時(shí),2、4、6、8、10個(gè)檢測(cè)節(jié)點(diǎn)的任務(wù)執(zhí)行情況,實(shí)驗(yàn)結(jié)果如圖7所示。
從圖7中可以看出,使用基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法進(jìn)行任務(wù)調(diào)度后,各檢測(cè)節(jié)點(diǎn)的執(zhí)行效率高于基于控制流復(fù)雜度的動(dòng)態(tài)反饋算法,效率提高38.6%。使用基于應(yīng)用軟件規(guī)模的動(dòng)態(tài)反饋算法,有利于分布式系統(tǒng)的負(fù)載均衡并提高系統(tǒng)的執(zhí)行效率。
3 結(jié)論
介紹了一種適用于海量移動(dòng)應(yīng)用檢測(cè)任務(wù)調(diào)度的負(fù)載均衡算法,該算法結(jié)合移動(dòng)應(yīng)用檢測(cè)節(jié)點(diǎn)的CPU、內(nèi)存、等待應(yīng)用的軟件規(guī)模,計(jì)算移動(dòng)應(yīng)用檢測(cè)節(jié)點(diǎn)的負(fù)載值,通過(guò)負(fù)載值進(jìn)行移動(dòng)應(yīng)用檢測(cè)任務(wù)的調(diào)度下發(fā)。實(shí)驗(yàn)表明,該算法有效避免了高性能任務(wù)節(jié)點(diǎn)堆積和低性能的任務(wù)節(jié)點(diǎn)長(zhǎng)時(shí)間空閑,并提升在應(yīng)對(duì)海量移動(dòng)應(yīng)用安全檢測(cè)任務(wù)時(shí)的系統(tǒng)效率。通過(guò)該算法,移動(dòng)應(yīng)用檢測(cè)系統(tǒng)對(duì)檢測(cè)節(jié)點(diǎn)的任務(wù)平衡能力加強(qiáng),吞吐量加大,系統(tǒng)的檢測(cè)效率提高。本文介紹的這種海量移動(dòng)應(yīng)用檢測(cè)任務(wù)負(fù)載均衡算法,可以滿足海量移動(dòng)應(yīng)用檢測(cè)需求,有利于提供檢測(cè)系統(tǒng)執(zhí)行效率。
參考文獻(xiàn)
[1]王雪芬,郭黎黎.“互聯(lián)網(wǎng)+”時(shí)代智能手機(jī)網(wǎng)絡(luò)安全問(wèn)題探析[J].電子技術(shù)與軟件工程,2018(01):222-223.
[2]郝春亮,沈捷,張珩,等,大數(shù)據(jù)背景下集群調(diào)度結(jié)構(gòu)與研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2018,55(01):53-70.
[3]劉新宇,翁健,張悅,等.基于APK簽名信息反饋的Android惡意應(yīng)用檢測(cè)[J].通信學(xué)報(bào),2017,38(05):190-198.
[4]楊忠明,粱本來(lái),秦勇,等.多檢測(cè)引擎監(jiān)測(cè)的動(dòng)態(tài)負(fù)載均衡算法[J].計(jì)算機(jī)應(yīng)用,2017,37(03):717-721.
[5]陳斌,劉曉潔,艾磊,等,一種動(dòng)態(tài)的入侵檢測(cè)系統(tǒng)負(fù)載均衡方法[J]網(wǎng)絡(luò)新媒體技術(shù),2015,4(05):39-44.
[6]李敬華,李倩茹,賈蓓,數(shù)據(jù)中心服務(wù)器負(fù)載均衡問(wèn)題研究[J].電信快報(bào),2014(04):25-28.
[7]吳敬征,武延軍,武志飛,等,基于有向信息流的Android隱私泄露類惡意應(yīng)用檢測(cè)方法[J]中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2015,32(06):807-815.
[8]趙光澤,李暉,孟楊.Android平臺(tái)WebView組件安全及應(yīng)用加固研究[J].信息網(wǎng)絡(luò)安全,2015(10):61-65.
[9]呂照進(jìn),沈立煒,趙文耘,面向場(chǎng)景的安卓應(yīng)用代碼定位方法[J].計(jì)算機(jī)科學(xué),2017,44(02):216-221+256.
[10]巫志文,李煒,基于Android平臺(tái)的軟件加固方案的設(shè)計(jì)與實(shí)現(xiàn)[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2015,28(01):33-37.
[11]朱洪軍,陳耀光,華保健,等.一種Android應(yīng)用加固方案[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(11):297-300+320.
[12]郭偉.基于安卓系統(tǒng)的移動(dòng)應(yīng)用程序安全加固系統(tǒng)的設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2016(06):201.
[13]趙北庚,王劍鋒.關(guān)于Android短信惡意木馬Smali匯編碼逆向分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(10):88.
[14]劉方圓,孟憲佳,湯戰(zhàn)勇,等.基于smali代碼混淆的Android應(yīng)用保護(hù)方法[J].山東大學(xué)學(xué)報(bào):理學(xué)版,2017,52(03):44-50.
[15]崔弘,喻波,方瑩,惡意代碼分類的一種高維特征融合分析方法[J].計(jì)算機(jī)應(yīng)用研究,2017,34(04):1120-1123+1150.