李玉,羅森林,郝靖?jìng)?,潘麗?/p>
(北京理工大學(xué) 信息與電子學(xué)院,北京 100081)
惡意軟件是指在未經(jīng)用戶許可的情況下收集敏感信息、控制用戶設(shè)備、嚴(yán)重侵犯用戶個(gè)人權(quán)益的軟件[1]。目前,惡意軟件檢測(cè)方法根據(jù)檢測(cè)時(shí)是否執(zhí)行目標(biāo)代碼,分為靜態(tài)分析[2-3]和動(dòng)態(tài)分析[4-5]。隨著深度學(xué)習(xí)在圖像識(shí)別領(lǐng)域展現(xiàn)出強(qiáng)大的特征提取能力,并且歸屬于同一家族的惡意軟件變體,其特征圖像的紋理特征也十分相似,因此可視化技術(shù)開始應(yīng)用在惡意軟件任務(wù)中。根據(jù)可視化的目標(biāo),惡意軟件可視化檢測(cè)方法分為二進(jìn)制文件可視化和動(dòng)態(tài)行為可視化。二進(jìn)制文件可視化將文件按字節(jié)排序,生成特征圖像并識(shí)別所屬家族[6-8],并未提取深層行為特征,仍依賴于待檢測(cè)軟件的二進(jìn)制代碼,易受到代碼混淆的影響。
為了將惡意行為信息融入特征圖像中,匯編指令逐漸成為可視化研究的重心。鑒于二進(jìn)制文件存在加殼現(xiàn)象,難以自主生成反匯編文件,因此對(duì)于加殼文件需通過(guò)動(dòng)態(tài)調(diào)試進(jìn)行脫殼,再進(jìn)行反匯編。獲得匯編代碼后,Zhang等[9]提出了基于圖像識(shí)別惡意的軟件檢測(cè)方法(IRMD),從反匯編文件中提取操作碼序列,構(gòu)建2-gram操作碼特征組,采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行識(shí)別和分類,證明了操作碼序列具有較強(qiáng)的行為特征表達(dá)能力,且同一家族的惡意軟件變體在匯編指令層面具有相似的行為模式。受IRMD啟發(fā),Ni等[10]開發(fā)了基于局部敏感哈希的惡意軟件分類方法(MSCS)。MSCS將每個(gè)操作碼視為一個(gè)序列,以關(guān)注軟件的整體行為特征,并引入局部敏感哈希算法生成特征圖像,利用CNN進(jìn)行軟件的惡意性檢測(cè)。與MSCS類似,Sun和Qian[11]通過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)捕獲指令序列內(nèi)的時(shí)序特征,并對(duì)指令序列進(jìn)行預(yù)測(cè),一定程度上減小了變體技術(shù)對(duì)指令序列的影響。
上述可視化檢測(cè)方法將軟件行為融入特征圖像中,但僅從操作碼層面提取行為特征,并未結(jié)合操作數(shù),導(dǎo)致指令語(yǔ)義缺失。同時(shí),惡意軟件變體通常在軟件中插入無(wú)關(guān)的正常指令以隱藏惡意指令和惡意行為,且正常指令與惡意指令僅通過(guò)操作碼難以區(qū)分,導(dǎo)致基于操作碼序列的檢測(cè)方法難以區(qū)分出無(wú)關(guān)指令,受代碼混淆和花指令干擾較大,影響變體分類結(jié)果。
經(jīng)分析,無(wú)關(guān)指令和惡意指令的區(qū)別僅在操作數(shù)上有所體現(xiàn),但操作數(shù)的語(yǔ)義與運(yùn)行環(huán)境密切相關(guān),即同一個(gè)操作數(shù)在不同運(yùn)行環(huán)境下的含義不同,因此難以提取。
針對(duì)基于匯編指令的惡意軟件可視化家族分類方法中,操作數(shù)語(yǔ)義與運(yùn)行環(huán)境密切相關(guān)而難以提取,導(dǎo)致指令語(yǔ)義缺失,難以正確分類惡意軟件變體的問(wèn)題,本文提出了一種融合抽象匯編指令和家族共性指令序列的惡意軟件家族分類方法(malware family classification method based on abstract assembly instructions,MCAI),利用操作數(shù)抽象類型提取進(jìn)行指令重構(gòu),使操作數(shù)語(yǔ)義脫離運(yùn)行環(huán)境的約束而易于提取,并結(jié)合詞注意力機(jī)制和雙向門循環(huán)單元(Bi-GRU)構(gòu)建雙向結(jié)構(gòu)指令嵌入網(wǎng)絡(luò),學(xué)習(xí)指令的行為語(yǔ)義,并利用深度層次網(wǎng)絡(luò)捕獲惡意軟件家族共性指令序列,以減小惡意軟件變體技術(shù)對(duì)指令序列的干擾,融合原始指令和家族共性指令序列構(gòu)建特征圖像,并通過(guò)CNN實(shí)現(xiàn)惡意軟件家族分類。
MCAI原理如圖1所示,包含指令重構(gòu)模塊、指令嵌入模塊、家族共性指令序列提取模塊、特征圖像生成模塊和特征圖像分類模塊。指令重構(gòu)模塊通過(guò)操作數(shù)抽象類型提取重構(gòu)指令,使操作數(shù)語(yǔ)義脫離運(yùn)行環(huán)境的約束,豐富指令的行為語(yǔ)義,并對(duì)重構(gòu)后的指令進(jìn)行詞法分析,識(shí)別指令內(nèi)部的各個(gè)元素,以便后續(xù)特征提??;指令嵌入模塊利用詞注意力機(jī)制和Bi-GRU構(gòu)建指令嵌入網(wǎng)絡(luò),學(xué)習(xí)指令的行為語(yǔ)義,獲得指令的向量表示,并通過(guò)深度層次網(wǎng)絡(luò)學(xué)習(xí)家族共性行為模式,對(duì)指令進(jìn)行預(yù)測(cè);特征圖像生成模塊將預(yù)測(cè)結(jié)果和嵌入結(jié)果組合成雙通道惡意軟件特征圖像;特征圖像分類模塊利用CNN捕獲圖像的局部特征,并給出家族分類結(jié)果。
圖1 MCAI原理框圖Fig.1 Functional block diagram of MCAI
匯編指令是程序在操作系統(tǒng)層面的基本執(zhí)行單元,因此能夠反映程序的操作和意圖。通過(guò)反匯編器,可以獲得樣本的反匯編代碼p。其中,p由多條指令I(lǐng)i組成,i∈[1,k]。若惡意軟件已被加殼,需先經(jīng)過(guò)脫殼處理,再進(jìn)行上述反匯編過(guò)程。
x86指令語(yǔ)法規(guī)定,匯編指令I(lǐng)i由一個(gè)操作碼和多個(gè)操作數(shù)組成。操作碼表示指令的行為類型,操作數(shù)體現(xiàn)了指令的操作目標(biāo)。因此,匯編指令中的每一個(gè)組成元素都是指令行為的一部分,僅通過(guò)操作碼或操作數(shù)無(wú)法完整描述指令行為。然而,操作數(shù)的語(yǔ)義存在不確定性,同一個(gè)地址在不同的軟件中可能表示不同的函數(shù),因此在過(guò)去的檢測(cè)和分類方法中,如基于RNN的惡意軟件可視化分類方法(RMVC)、MCSC等,僅保留了操作碼序列作為特征,導(dǎo)致無(wú)法區(qū)分出惡意軟件變體內(nèi)的正常指令,影響分類效果。為了充分利用操作數(shù)信息,使操作數(shù)的語(yǔ)義脫離運(yùn)行環(huán)境的限制,方法對(duì)操作數(shù)類型進(jìn)行抽象,定義了內(nèi)存地址(MEM)、寄存器(REG)、立即數(shù)(IMM)、標(biāo)號(hào)(MARK,包括函數(shù)名、跳轉(zhuǎn)地址等)和無(wú)操作數(shù)占位符(NULL)5類操作數(shù)類型,用操作數(shù)類型代替操作數(shù)完成指令重構(gòu)。
由于每條匯編指令內(nèi)操作碼數(shù)量不一致,對(duì)操作數(shù)數(shù)量進(jìn)行規(guī)范化處理,即通過(guò)NULL實(shí)現(xiàn)指令對(duì)齊,使每條指令的操作數(shù)數(shù)量均為2個(gè),補(bǔ)齊后的指令集如圖2所示。
圖2 操作數(shù)類型抽象Fig.2 Operand type abstracting
對(duì)規(guī)范化的指令I(lǐng)′i進(jìn)行詞法分析,識(shí)別指令內(nèi)部的各個(gè)元素,并構(gòu)造指令行為描述序列si。其中,si由3部分組成,分別為操作碼和2個(gè)抽象操作數(shù)類型。
指令嵌入網(wǎng)絡(luò)將每個(gè)指令行為描述序列嵌入至其向量表示中,并學(xué)習(xí)指令的行為語(yǔ)義,以便特征提取網(wǎng)絡(luò)可以提取行為特征。指令嵌入網(wǎng)絡(luò)由word2vec[12]、Bi-GRU[13]和詞注意力模塊[14]構(gòu)建,如圖3所示。
圖3 指令嵌入網(wǎng)絡(luò)Fig.3 Instruction embedding network
利用word2vec構(gòu)建詞嵌入網(wǎng)絡(luò),訓(xùn)練si中每一個(gè)單詞xi,j的向量表示。
在詞向量基礎(chǔ)上,利用Bi-GRU構(gòu)建句子嵌入網(wǎng)絡(luò)以訓(xùn)練每條指令的向量表示。鑒于指令內(nèi)部的序列信息為雙向關(guān)聯(lián),因此采用Bi-GRU分別從前向和后向捕獲指令內(nèi)部的序列信息,并通過(guò)詞注意力機(jī)制為指令內(nèi)的各個(gè)元素自動(dòng)化分配權(quán)重,以進(jìn)一步突出指令的關(guān)鍵信息,增強(qiáng)指令的行為語(yǔ)義。
指令嵌入網(wǎng)絡(luò)從3個(gè)方面學(xué)習(xí)指令的行為語(yǔ)義信息。word2vec提取每個(gè)單詞的基本上下文信息,Bi-GRU分別從前向和后向?qū)W習(xí)了輸入指令內(nèi)部各元素的順序信息,詞注意力模塊從指令內(nèi)元素的上下文中學(xué)習(xí)元素的權(quán)重,并加權(quán)得到指令最終的嵌入結(jié)果。
屬于同一家族的惡意軟件具有相同的行為特征,在匯編代碼中體現(xiàn)為具有相似的指令序列,并且指令序列中具有較強(qiáng)的時(shí)序性。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-RNN)[15]具有較強(qiáng)的時(shí)序特征提取能力,通過(guò)Bi-RNN可以學(xué)習(xí)惡意軟件家族的通用行為特征。
為了更好地說(shuō)明Bi-RNN的學(xué)習(xí)過(guò)程,圖4中用標(biāo)號(hào)代替指令,每一個(gè)標(biāo)號(hào)對(duì)應(yīng)一條指令。
圖4 家族共性指令序列學(xué)習(xí)Fig.4 Family common instruction sequence learning
Bi-RNN采用滑動(dòng)窗口的方式學(xué)習(xí)指令的時(shí)序特征。在t時(shí)刻,Bi-RNN學(xué)習(xí)虛線框內(nèi)的指令序列并預(yù)測(cè)圓圈內(nèi)的指令內(nèi)容,得到pt。在t+1時(shí)刻,滑窗右移一個(gè)指令,再次學(xué)習(xí)窗口內(nèi)的指令序列并預(yù)測(cè)圓圈的指令內(nèi)容,得到pt+1。隨著滑窗的移動(dòng),指令的預(yù)測(cè)值組成一個(gè)新的指令序列,即為原指令序列的預(yù)測(cè)結(jié)果,損失函數(shù)即為指令的預(yù)測(cè)值和指令的真實(shí)值之間的差異。在反向傳播階段,為了快速降低損失函數(shù)值,滑動(dòng)窗口的預(yù)測(cè)結(jié)果將會(huì)是窗口中最常見(jiàn)的指令,從而使Bi-RNN學(xué)習(xí)到該家族通用的指令序列。因此,即使惡意軟件通過(guò)變體技術(shù)調(diào)整的部分指令,Bi-RNN也可以根據(jù)指令序列的上下文信息還原指令序列,有效減小了惡意軟件變體技術(shù)對(duì)指令序列的影響,如圖5所示。
圖5 家族共性指令序列預(yù)測(cè)Fig.5 Family common instruction sequence prediction
預(yù)測(cè)指令通過(guò)查詢嵌入表可得到嵌入結(jié)果vpi。
為充分利用CNN的特征提取能力,將Bi-RNN的預(yù)測(cè)結(jié)果分別轉(zhuǎn)換為單通道圖像,并組成雙通道的惡意軟件特征圖像。特征圖像生成過(guò)程如下:
1)將嵌入結(jié)果和預(yù)測(cè)結(jié)果的數(shù)值歸一化至0~255,對(duì)應(yīng)灰度圖像像素值。
2)順序排列,分別生成單通道圖像M∈R1×k×w。其中,k為樣本內(nèi)指令個(gè)數(shù),w為指令嵌入的輸出維度,實(shí)驗(yàn)中的嵌入維度為256。
3)鑒于樣本內(nèi)的指令數(shù)量不同,因此生成的圖像長(zhǎng)度不一致,需要對(duì)2個(gè)單通道圖像各自放縮。通過(guò)雙線性差值法,將2個(gè)單通道圖像均放縮大小為3 000×256。其中,256為指令嵌入的輸出維度,3 000為數(shù)據(jù)集內(nèi)指令數(shù)量的中位數(shù)。
4)2個(gè)放縮后的單通道圖像組成雙通道惡意軟件特征圖像M∈R2×3000×256。
通過(guò)CNN可以捕獲圖像內(nèi)的局部特征。鑒于圖像中的每一行對(duì)應(yīng)一個(gè)指令,為確保一條指令的信息可以被完整的處理,在第一個(gè)卷積層中,使用寬卷積核f∈R2×h×256,其中h為卷積核高度,代表一次處理指令的個(gè)數(shù),實(shí)驗(yàn)中取h=2,即經(jīng)過(guò)第一個(gè)卷積層后,每個(gè)通道的卷積結(jié)果為列向量。隨后,該卷積結(jié)果依次經(jīng)過(guò)其他卷積層和池化層,完成圖像的局部特征提取,并由全連接層和softmax層進(jìn)行分類。
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于2015 Kaggle微軟惡意軟件分類挑戰(zhàn)賽[16],數(shù)據(jù)集中包含來(lái)自9個(gè)家族的10 868個(gè)有標(biāo)記樣本,包含樣本的二進(jìn)制文件和反匯編文件,是目前惡意軟件研究領(lǐng)域廣泛使用的數(shù)據(jù)集。數(shù)據(jù)集家族標(biāo)簽及樣本數(shù)量如表1所示。鑒于本文方法是基于匯編代碼實(shí)現(xiàn)的,因此僅使用反匯編文件。訓(xùn)練集占40%,驗(yàn)證集占10%,測(cè)試集占50%。
表1 數(shù)據(jù)集家族標(biāo)簽及樣本數(shù)量Table 1 Family label and number of the sample in the dataset
實(shí)驗(yàn)硬件環(huán)境為:Intel(R)Core(TM)i7-6700 CPU@3.40 GHz,RAM 8 GB,Windows10系統(tǒng)。主要軟件和開發(fā)工具包為:Python 3.7、TensorFlow v1.14.0、scikit-learn0.22。
實(shí)驗(yàn)采用機(jī)器學(xué)習(xí)領(lǐng)域的規(guī)范統(tǒng)計(jì)指標(biāo):準(zhǔn)確率、召回率、精確率及F1,來(lái)準(zhǔn)確評(píng)估分類模型的性能,從而更加全面地體現(xiàn)方法的有效性和可靠性。
2.4.1 消融實(shí)驗(yàn)?zāi)康?/p>
本節(jié)實(shí)驗(yàn)通過(guò)拆分實(shí)驗(yàn)過(guò)程,以確認(rèn)方法中每一個(gè)環(huán)節(jié)的有效性和意義,具體包含如下3點(diǎn):
1)驗(yàn)證操作數(shù)類型抽象和指令重構(gòu)意義。
2)驗(yàn)證指令嵌入網(wǎng)絡(luò)對(duì)指令行為語(yǔ)義捕獲的貢獻(xiàn)。
3)驗(yàn)證家族共性指令序列對(duì)惡意軟件變體分類能力的提升。
2.4.2 消融實(shí)驗(yàn)過(guò)程
為驗(yàn)證指令重構(gòu)、指令嵌入和學(xué)習(xí)通用指令行為序列的效果,對(duì)比了5種惡意軟件家族分類方法:
1)以操作碼序列作為樣本特征,采用256位哈希編碼實(shí)現(xiàn)操作碼向量化并排列成16×16惡意軟件特征圖像,通過(guò)CNN識(shí)別惡意軟件家族。
2)以操作碼和操作數(shù)組成的原始指令作為樣本特征,采用256位哈希編碼實(shí)現(xiàn)指令向量化并排列成16×16圖像,通過(guò)CNN識(shí)別惡意軟件家族。
3)以操作碼和抽象操作數(shù)類型組成的重構(gòu)指令作為樣本特征,采用256位哈希編碼實(shí)現(xiàn)指令向量化并排列成16×16圖像,通過(guò)CNN識(shí)別惡意軟件家族。
4)以操作碼和抽象操作數(shù)類型組成的重構(gòu)指令作為樣本特征,采用指令嵌入網(wǎng)絡(luò)實(shí)現(xiàn)指令向量化并排列成圖像,圖像大小為3 000×256,通過(guò)CNN識(shí)別惡意軟件家族。
5)以操作碼和抽象操作數(shù)類型組成的重構(gòu)指令作為樣本特征,采用指令嵌入網(wǎng)絡(luò)實(shí)現(xiàn)指令向量化,通過(guò)Bi-RNN學(xué)習(xí)家族共性指令序列并做出指令預(yù)測(cè),將重構(gòu)指令與預(yù)測(cè)指令合并為雙通道特征圖像,圖像大小為2×3 000×256,通過(guò)CNN識(shí)別惡意軟件家族,即MCAI。
其中,方法1~方法3網(wǎng)絡(luò)結(jié)構(gòu)相關(guān)參數(shù)見(jiàn)2.5.2節(jié),方法4、方法5中CNN卷積層采用2×2卷積核,池化層采用2×2池化窗口,其余結(jié)構(gòu)見(jiàn)2.5.2節(jié)。
2.4.3 消融實(shí)驗(yàn)結(jié)果
消融5種惡意軟件家族分類方法1~方法5實(shí)驗(yàn)結(jié)果如表2所示。
表2 消融實(shí)驗(yàn)結(jié)果Table 2 Results of ablation experiments %
實(shí)驗(yàn)結(jié)果表明,消融方法1~方法5在準(zhǔn)確率方面分別達(dá)到了91.49%、80.99%、92.49%、96.04%和98.51%。方法1僅使用操作碼序列作為樣本特征,準(zhǔn)確率達(dá)到91.49%,表明操作碼序列可以在很大程度上反映惡意軟件行為。但是在方法2中,結(jié)合了原始操作數(shù)后,實(shí)驗(yàn)效果顯著下降,表明操作數(shù)的含義是每個(gè)惡意軟件樣本的特有信息,結(jié)合過(guò)多的特有信息將導(dǎo)致過(guò)擬合。方法3以操作數(shù)類型替換原始操作數(shù)實(shí)現(xiàn)指令重構(gòu),準(zhǔn)確率有了較為明顯的提升,表明操作數(shù)類型有助于指令行為的描述和提取。方法4采用指令嵌入網(wǎng)絡(luò)實(shí)現(xiàn)指令向量化,相比于方法3中的哈希編碼有較大的提升。經(jīng)分析,哈希編碼僅關(guān)注指令的整體信息,無(wú)法提取指令內(nèi)部各元素之間的關(guān)系,而指令嵌入網(wǎng)絡(luò)分別從詞、句2個(gè)層面提取指令內(nèi)、外的上下文信息,因此可以更好地學(xué)習(xí)指令特征,保留指令的行為語(yǔ)義。方法5通過(guò)Bi-RNN學(xué)習(xí)指令通用行為模式,對(duì)每條指令進(jìn)行預(yù)測(cè),并將預(yù)測(cè)結(jié)果和原始指令合并為雙通道特征圖像,實(shí)現(xiàn)效果優(yōu)于方法1~方法4,表明Bi-RNN能夠有效學(xué)習(xí)到指令的序列信息,捕獲指令通用的序列模式。通過(guò)合并預(yù)測(cè)結(jié)果和原始指令,加強(qiáng)了屬于同一家族的變體的相似性,可以在一定程度上減小變體技術(shù)的影響。
2.5.1 對(duì)比實(shí)驗(yàn)?zāi)康?/p>
為了驗(yàn)證MCAI在惡意軟件家族分類任務(wù)上的有效性,將MCAI與可視化檢測(cè)領(lǐng)域內(nèi)的優(yōu)秀算法RMVC[11]、MCSC[10]進(jìn)行比較。
2.5.2 對(duì)比實(shí)驗(yàn)過(guò)程
實(shí)驗(yàn)過(guò)程如圖6所示。實(shí)驗(yàn)中,設(shè)置batch size為128,學(xué)習(xí)率為0.000 8,設(shè)置迭代次數(shù)為10 000,L2正則化系數(shù)為0.01,詞嵌入維度為256。CNN中,卷積層1采用32個(gè)3×256大小卷積核,卷積層2、3均采用64個(gè)3×1大小卷積核,所有池化層均采用4×1大小池化窗口,全連接層神經(jīng)元個(gè)數(shù)分別為512、256、9。
圖6 對(duì)比實(shí)驗(yàn)流程Fig.6 Flowchart of comparative experiments
2.5.3 對(duì)比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果如表3所示。圖7~圖9顯示了3種方法的精確率、召回率和F1值??梢钥吹?,本文方法在各項(xiàng)指標(biāo)上均有所提升。此外,數(shù)據(jù)集中的Simda家族有42個(gè)樣本,占樣本總數(shù)的0.39%,處于嚴(yán)重不平衡狀態(tài)。從實(shí)驗(yàn)結(jié)果中看出,RMVC在不平衡數(shù)據(jù)上的效果較差,受數(shù)據(jù)分布的影響較大;MCSC則表現(xiàn)較好,能一定程度應(yīng)對(duì)數(shù)據(jù)不平衡問(wèn)題;而本文方法在Simda家族上的分類結(jié)果達(dá)到了96%,對(duì)數(shù)據(jù)不平衡問(wèn)題有較強(qiáng)的魯棒性。
表3 對(duì)比實(shí)驗(yàn)結(jié)果Table 3 Comparative experimental results %
圖7 對(duì)比實(shí)驗(yàn)精確率Fig.7 Precision of comparison experiment
圖8 對(duì)比實(shí)驗(yàn)F1 值Fig.8 F1-score of comparison experiment
圖9 對(duì)比實(shí)驗(yàn)召回率Fig.9 Recall of comparison experiment
針對(duì)基于匯編指令的惡意軟件家族分類方法操作數(shù)語(yǔ)義與運(yùn)行環(huán)境密切相關(guān)而難以提取,導(dǎo)致指令語(yǔ)義缺失,難以正確分類惡意軟件變體的問(wèn)題,本文提出了一種融合抽象匯編指令和家族共性指令序列的惡意軟件家族分類方法。
1)通過(guò)操作數(shù)類型抽象重構(gòu)匯編指令,使操作數(shù)語(yǔ)義脫離運(yùn)行環(huán)境的約束,解決了操作數(shù)語(yǔ)義依賴于運(yùn)行環(huán)境而難以提取的問(wèn)題,進(jìn)一步增強(qiáng)了指令行為描述的充分性和完整性。
2)通過(guò)word2vec、Bi-GRU和詞注意力機(jī)制構(gòu)建指令嵌入網(wǎng)絡(luò),實(shí)現(xiàn)指令向量化,并分別從指令內(nèi)和指令間學(xué)習(xí)上下文信息,使指令的向量表示中包含更豐富的行為語(yǔ)義。
3)通過(guò)Bi-RNN學(xué)習(xí)指令的序列信息,捕獲家族共性指令序列,并對(duì)每條指令給出預(yù)測(cè)指令,能夠一定程度上發(fā)現(xiàn)并還原變體技術(shù)對(duì)指令的干擾和微調(diào),減小代碼混淆等變體技術(shù)對(duì)指令序列的影響。同時(shí),結(jié)合預(yù)測(cè)指令和原始指令構(gòu)建雙通道惡意軟件特征圖,加強(qiáng)了屬于同一家族的變體的相似性,進(jìn)一步提升了家族分類效果。