李士群,王崑聲,經(jīng)小川,王瀟茵,巴 峰,梁光成
(中國航天系統(tǒng)科學(xué)與工程研究院,北京 100000)
為應(yīng)對軟件逆向、破解等攻擊而造成的安全威脅,各種保護技術(shù)成了研究熱點。然而,如何對軟件保護的有效性進行綜合評價,是研究者和軟件開發(fā)方在設(shè)計和選擇保護方案時十分關(guān)心的。科學(xué)客觀的評價結(jié)果能夠指導(dǎo)設(shè)計更為完善的保護方案,為保護方案的選擇提供決策支持。
現(xiàn)有的評價方法多是從一個角度進行有效性評價,然而,科學(xué)的評價模型應(yīng)該對軟件保護和逆向進行綜合考量。另外,保護方案往往會綜合使用多種保護技術(shù),單純對某一種保護技術(shù)進行評價分析也是當(dāng)前評價方法的局限之處。
文中對多保護技術(shù)綜合使用的保護方案進行評價研究,在對軟件逆向和保護深入研究的基礎(chǔ)上建立了軟件保護有效性評價的綜合評價體系,選用模糊層次分析法建立了綜合評價模型,并結(jié)合實際案例對模型的實際效果進行了驗證。
1.1.1 軟件攻擊現(xiàn)狀
當(dāng)前,軟件攻擊的目的通常是對程序逆向分析,進而破除軟件的權(quán)限限制、竊取軟件思想或者在其中嵌入惡意代碼[1]。逆向分析是指從可執(zhí)行程序出發(fā),推導(dǎo)出軟件產(chǎn)品設(shè)計原理的過程[2]。逆向分析可以分為文件獲取、反匯編、動靜態(tài)分析、軟件篡改五個子行為序列[3]。逆向分析模型如圖1所示。

圖1 軟件逆向過程
(1)文件獲取:為實現(xiàn)攻擊目的,攻擊者首先需要獲得攻擊的目標(biāo)程序。通常獲取的是二進制可執(zhí)行文件。
(2)反匯編:獲取的二進制可執(zhí)行文件難以分析,需要反匯編成相對容易理解的匯編程序,以便于后續(xù)分析。
(3)靜態(tài)分析:靜態(tài)分析是在程序不執(zhí)行的狀態(tài)下進行逆向分析的分析技術(shù)。通過控制流分析、數(shù)據(jù)流分析等技術(shù)對軟件進行分析,對程序代碼進行結(jié)構(gòu)框架上的分析認(rèn)識。
(4)動態(tài)分析:動態(tài)分析是指通過動態(tài)調(diào)試對目標(biāo)程序進行分析的技術(shù)。與靜態(tài)分析不同,動態(tài)分析是對目標(biāo)程序的執(zhí)行流程、執(zhí)行結(jié)果實時跟蹤,可以收集到更為詳盡和真實的信息。
(5)軟件篡改:在對目標(biāo)程序分析完成之后,攻擊者會將程序中的關(guān)鍵算法進行篡改,實現(xiàn)權(quán)限破解或為己所用等目的。
1.1.2 軟件保護現(xiàn)狀
為應(yīng)對逆向分析造成的安全威脅,一系列的保護技術(shù)先后被提出并得到發(fā)展。目前,主流的保護技術(shù)有軟件加密、軟件混淆、反調(diào)試和防篡改等。
(1)軟件加密是指將目標(biāo)程序加密,在運行之前再解密還原的技術(shù)。軟件加密能夠使得目標(biāo)程序不能直接反匯編,提高攻擊者反匯編的難度。
(2)軟件混淆即通過對目標(biāo)程序進行重新組織,使得處理后的程序與原來相比在功能上變化不大,但在語義上更難理解,對應(yīng)對動靜態(tài)分析都有很好的效果。
(3)反調(diào)試是應(yīng)對逆向分析進行動態(tài)調(diào)試的技術(shù),現(xiàn)普遍基于“檢測—響應(yīng)”機制。即檢測程序是否處于被調(diào)試狀態(tài),然后做出相應(yīng)的響應(yīng)[4]。
(4)防篡改是防止攻擊者在破解程序關(guān)鍵思想之后對程序進行惡意篡改的技術(shù)。防篡改也是基于“檢測—響應(yīng)”的機制[5]。
另外,綜合分析文獻[6-8]可以看出,在設(shè)計保護方案時,往往會將上述技術(shù)綜合使用以實現(xiàn)各項技術(shù)優(yōu)勢互補,進一步提高保護效果。
軟件保護有效性評價即度量目標(biāo)軟件在施加保護措施后其所能應(yīng)對逆向分析的能力。現(xiàn)有的評價方法主要分為兩類:一是基于程序?qū)傩远攘康脑u價;二是基于逆向分析角度的評價。
1.2.1 基于程序?qū)傩远攘康脑u價
基于程序?qū)傩远攘康脑u價是指提取目標(biāo)程序的關(guān)鍵屬性為指標(biāo),通過分析保護前后指標(biāo)的變化來度量保護方案的有效性。
Collberg等提出了強度、彈性、開銷和隱蔽性4項針對軟件混淆有效性的評價指標(biāo)[9]。Collberg的成果為代碼混淆有效性評價研究奠定了基礎(chǔ),但沒有給出這些指標(biāo)具體的度量方法。
M.Dalla將語義變化和保護有效性聯(lián)系起來,提出比較混淆前后程序分析結(jié)果的不等性來描述軟件混淆的有效性[10]。但M.Dalla沒能指明語義的哪種變化對程序的理解難度有提高效果,因此這種評價方法尚不成熟。
趙玉潔等將逆向分析分為反匯編、控制流分析和數(shù)據(jù)流分析三個關(guān)鍵環(huán)節(jié);提取表征程序?qū)傩缘闹笜?biāo):指令執(zhí)行率、控制流循環(huán)復(fù)雜度、扇入/扇出復(fù)雜度,通過保護前后指標(biāo)的變化評價軟件混淆的有效性[11]。該方法為軟件混淆有效性評價提供了進步性思路,但局限于單一技術(shù)是該方法的不足之處。
1.2.2 基于逆向角度的評價
基于逆向角度的評價是指從逆向分析出發(fā),根據(jù)逆向的成本或難度來度量保護方案的有效性。
M.Ceccato等通過對混淆后的程序進行手動逆向?qū)嶒灒瑥膶嶋H逆向體驗上驗證混淆技術(shù)的有效性[12]。該研究分析了影響逆向分析的關(guān)鍵因素,對評價思路轉(zhuǎn)移到逆向角度具有很好的啟發(fā)意義。
Collberg等提出從攻擊建模角度對軟件保護方案進行有效性評價的思路[13]。通過對逆向攻擊建立攻擊模型,提取逆向過程中的指標(biāo)來評價軟件保護的有效性,給有效性評價研究指引了新的方向。
王妮在Collberg的基礎(chǔ)上,建立了攻擊模型,并提出了攻擊成本的評價指標(biāo)[14]。建立的關(guān)鍵算法的逆向攻擊模型能夠描述整個逆向的先后過程、逆向狀態(tài)信息及狀態(tài)間轉(zhuǎn)換的條件要素。在評價指標(biāo)方面,將各逆向技術(shù)的攻擊成本進行分級,并給每一等級賦予單位開銷值;通過逆向所需使用的技術(shù)來量化攻擊成本,繼而反映出保護有效性。該方法思路新穎,但逆向過程具有很高的靈活性,且逆向技術(shù)成本包括攻擊者的體智耗費、機器損耗等難以量化的因素,因此,該方法的說服力還有待提高。
綜合上述評價研究,當(dāng)前軟件保護有效性評價思路主要存在以下兩方面的問題:
(1)現(xiàn)有評價方法多是針對軟件混淆技術(shù)的有效性進行研究,其他如軟件加密、反調(diào)試、防篡改等主流保護技術(shù)的有效性評價研究很少。
(2)針對單一保護技術(shù)有效性進行評價研究難以適用于當(dāng)前綜合多技術(shù)的保護方案,因此,現(xiàn)有評價研究的實用意義存在很大局限。
軟件保護技術(shù)致力于提高逆向分析的難度。其中,軟件加密提高反匯編的難度;軟件混淆提高動靜態(tài)分析的難度;反調(diào)試提高動態(tài)調(diào)試的難度;防篡改提高在理解程序思想后進行篡改的難度。因此,面向綜合多技術(shù)保護方案的有效性評價可以從保護方案的防反匯編能力、語義混淆能力、反調(diào)試能力和防篡改能力4個方面進行研究。基于此,提取如下指標(biāo)來度量多技術(shù)保護方案的保護有效性:
1.防反匯編能力。
(1)加密算法強度:是指加密后,密文數(shù)據(jù)本身的信息特征十分微弱,單純從密文出發(fā)解密出明文難以實現(xiàn)。
(2)加密算法多樣性:是指采用的加密算法種類是否多樣。多樣的加密算法能夠提高攻擊者逆向分析的知識需求量和工作量,從而增強保護的效果。
(3)密鑰隱蔽性:密鑰存放的越隱蔽越能提高攻擊者解密的難度,可從密鑰的存儲方式來評價密鑰的隱蔽性。
(4)密鑰強度:是指密鑰難以被破譯的程度,攻擊者可能使用窮舉法對密鑰進行爆破,因此可以采用密鑰的長度來評價密鑰的強度。
(5)解密程序隱蔽性:目標(biāo)程序運行之前需要解密,攻擊者往往會跟蹤分析解密程序來獲取目標(biāo)程序的明文,因此解密程序需要具有一定的隱蔽性。
(6)目標(biāo)程序隱蔽性:是指目標(biāo)程序加密之后是否能夠與其他數(shù)據(jù)混合并以分布的形式存儲,使得目標(biāo)程序具有一定的隱蔽性。
2.語義混淆能力。
(1)控制流循環(huán)復(fù)雜度:用控制流圖描述程序的控制流程,然后采用圖論的知識和計算方法來評估程序的執(zhí)行復(fù)雜度[15]。控制流圖中節(jié)點代表程序中的基本塊,邊代表程序中基本塊之間的跳轉(zhuǎn)。控制流循環(huán)復(fù)雜度記為V(G),其計算公式如下:
V(G)=e-n+2
(1)
其中,e表示邊的數(shù)量;n表示節(jié)點的數(shù)量。
(2)數(shù)據(jù)流復(fù)雜度:數(shù)據(jù)流程越復(fù)雜,攻擊者逆向分析的難度越大,也即保護效果越好。Henry提出數(shù)據(jù)流復(fù)雜度度量方法,數(shù)據(jù)流復(fù)雜度記為DC,計算公式如下:
DC=(fan-in×fan-out)2
(2)
其中,fan-in為一個模塊輸入的數(shù)據(jù)流之和;fan-out為一個模塊輸出的數(shù)據(jù)流之和。
(3)數(shù)據(jù)結(jié)構(gòu)復(fù)雜度:程序中有大量的數(shù)據(jù)結(jié)構(gòu)用來保存重要的數(shù)據(jù)信息,是逆向分析過程中理解程序中關(guān)鍵數(shù)據(jù)的重點。數(shù)據(jù)結(jié)構(gòu)復(fù)雜度記為SC,計算公式如下:
SC=IN×D
(3)
其中,IN為數(shù)據(jù)結(jié)構(gòu)中的條目數(shù);D為數(shù)據(jù)結(jié)構(gòu)深度。
(4)指令執(zhí)行率:程序中的假指令會對靜態(tài)分析造成干擾,從而提高靜態(tài)分析的難度。指令執(zhí)行率記為IE,計算公式如下:
IE=Id/Is
(4)
其中,Is為反匯編生成的指令條數(shù);Id為實際執(zhí)行的指令條數(shù)。
3.反調(diào)試能力。
(1)技術(shù)豐富度:是指目標(biāo)程序中嵌入的檢測和響應(yīng)模塊所采用技術(shù)的多樣性。技術(shù)豐富度越高,就需要攻擊者有更多的反調(diào)試知識和經(jīng)驗。
(2)模塊數(shù)量:是指檢測和響應(yīng)模塊的數(shù)量。數(shù)量越多,攻擊者去除反調(diào)試機制的工作量就會越大,逆向分析的成本也就越高。
(3)響應(yīng)強度:是指當(dāng)檢測到程序被調(diào)試之后響應(yīng)方式的強度,即程序強制退出、程序自毀和執(zhí)行假分支等方式所能起到的保護效果。
(4)模塊隱蔽性:是指檢測和響應(yīng)模塊與程序中其他模塊具有相似性,難以被攻擊者定位和識別。
(5)彈性:是指檢測模塊之間和響應(yīng)模塊之間的關(guān)聯(lián)度,即其中的部分模塊被發(fā)現(xiàn)并破壞后,整個反調(diào)試機制正常運行所受影響的程度。
4.防篡改能力。
(1)技術(shù)豐富度:是指檢測和響應(yīng)模塊所采用技術(shù)的多樣性。技術(shù)豐富度越高,就需要攻擊者有更多的反防篡改技術(shù)的知識和經(jīng)驗。
(2)模塊數(shù)量:是指檢測和響應(yīng)模塊的數(shù)量。數(shù)量越多,攻擊者去除防篡改機制的工作量就越大,逆向分析的成本也就越高。
(3)響應(yīng)機制強度:是指當(dāng)檢測到程序被篡改之后響應(yīng)方式的強度,即程序自修復(fù)、程序自毀等方式所能起到的保護效果。
(4)模塊隱蔽性:是指檢測和響應(yīng)模塊與程序中其他模塊具有相似性,難以被攻擊者定位和識別。
(5)彈性:是指檢測模塊之間和響應(yīng)模塊之間的關(guān)聯(lián)度,即其中的部分模塊被發(fā)現(xiàn)并破壞后,整個防篡改機制正常運行所受影響的程度。
由于同是基于“檢測—響應(yīng)”機制,反調(diào)試和防篡改能力的評價指標(biāo)在名稱上相同,但評價內(nèi)容不同,因此不會造成評價指標(biāo)的冗余。
軟件保護有效性評價的指標(biāo)體系呈現(xiàn)出多層次、定性定量指標(biāo)共存,并且指標(biāo)具有模糊性的特點;文中采用模糊層次分析法對保護有效性進行評價研究。采用層次分析法建立指標(biāo)體系的層次結(jié)構(gòu),判斷矩陣法確定指標(biāo)的權(quán)重;采用模糊綜合評價法建立評語集,確定隸屬度、構(gòu)造評價矩陣和模糊綜合評價。軟件保護有效性綜合評價模型如圖2所示。

圖2 綜合評價模型
相對于有效性評價目標(biāo),需要給各指標(biāo)分配不同的權(quán)重。確定指標(biāo)體系權(quán)重的步驟如下:
(1)建立指標(biāo)體系的層次結(jié)構(gòu)。
軟件保護有效性綜合評價指標(biāo)體系分為目標(biāo)層、準(zhǔn)則層和指標(biāo)層,層次結(jié)構(gòu)如圖3所示。
(2)構(gòu)建比較判斷矩陣。
通過調(diào)查問卷的方式,由專家對同一目標(biāo)或準(zhǔn)則下的評價指標(biāo)進行兩兩重要性比較評判,并采用1~9分制標(biāo)示重要度,從而構(gòu)建判斷矩陣。
對目標(biāo)A下準(zhǔn)則層的元素B1,B2,B3,B4,專家進行兩兩重要性比較評判,構(gòu)造出判斷矩陣B:
(5)
同理,即可構(gòu)造出準(zhǔn)則B1,B2,B3,B4下指標(biāo)層的判斷矩陣C1,C2,C3,C4。

圖3 指標(biāo)體系層次結(jié)構(gòu)
(3)求解單層指標(biāo)權(quán)重。
在目標(biāo)層A下,計算判斷矩陣B的最大特征根λmax和對應(yīng)的特征向量ω,特征向量ω的元素即為指標(biāo)B1,B2,B3,B4的權(quán)重。計算公式如下:
Bω=λmaxω
(6)
同理可得準(zhǔn)則B1,B2,B3,B4下各指標(biāo)的權(quán)重。
(4)一致性檢驗。
判斷矩陣來源于專家的主觀評判,判斷結(jié)果難免有所差異。因此,需要對判斷矩陣進行一致性檢驗。一致性檢驗方法如下:
一致性指標(biāo):
(7)
其中,CI為一致性指標(biāo);λmax為判斷矩陣的最大特征根;n為判斷矩陣階數(shù)。
一致性比率:
(8)
其中,CR為一致性比率,CR<0.10時,判斷矩陣具有滿意的一致性;RI為平均隨機一致性指標(biāo)。
3.2.1 確定因素集和評語集
(1)因素集。
U={U1,U2,U3,U4}={防反匯編能力,語義混淆能力,反調(diào)試能力,防篡改能力};
U1={U11,U12,…,U16}={加密算法強度,密鑰隱蔽性,密鑰強度,加密算法多樣性,解密程序隱蔽性,目標(biāo)程序隱蔽性};
U2={U21,U22,U23,U24} ={控制流循環(huán)復(fù)雜度,數(shù)據(jù)流復(fù)雜度,數(shù)據(jù)結(jié)構(gòu)復(fù)雜度,指令執(zhí)行率};
U3={U31,U32,…,U35}={技術(shù)豐富度,模塊數(shù)量,響應(yīng)機制強度,模塊隱蔽性,彈性};
U4={U41,U42,…,U45}={技術(shù)豐富度,模塊數(shù)量,響應(yīng)機制強度,模塊隱蔽性,彈性}。
(2)評語集。
采用五級評價等級,評語集V={V1,V2,V3,V4,V5}={高,較高,一般,較低,低},各等級對應(yīng)分值區(qū)間為[80,100),[60,80),[40,60),[20,40), [0,20)。
3.2.2 確定隸屬度和評價矩陣
采用調(diào)查問卷的方式,由專家對指標(biāo)體系中的各指標(biāo)進行等級評判。然后,對各指標(biāo)隸屬于各評價等級的頻次進行統(tǒng)計,隸屬度為:

(9)
其中,n為評定指標(biāo)為Vi的頻次;m為專家總數(shù)。
根據(jù)各指標(biāo)的隸屬度構(gòu)造指標(biāo)層的評價矩陣:
(10)
3.2.3 模糊綜合評價
(1)一級模糊運算。
通過各指標(biāo)層的模糊評價矩陣右乘權(quán)重向量對其進行模糊綜合計算,一級模糊綜合評價集為:

(bi1bi2…bi5)
(11)
其中,i為準(zhǔn)則層指標(biāo)的序號;n為準(zhǔn)則Bi下指標(biāo)的個數(shù);Bi為綜合模糊運算結(jié)果。
由此,可得到指標(biāo)層的綜合評價矩陣:
(12)
(2)二級模糊運算。
由一級模糊運算結(jié)果構(gòu)成的模糊評價矩陣右乘權(quán)重向量來對準(zhǔn)則層各因素進行模糊綜合計算。二級模糊綜合評價集為:
(a1a2…a5)
(13)
(3)綜合評價結(jié)果的量化分析。
模糊運算得到的結(jié)果是評價目標(biāo)在評語集上的隸屬分布,與各等級分值相乘即可得到評價分值。
(14)
其中,A為評價結(jié)果在評語集上的隸屬分布;V為各評語集對應(yīng)的量化分值;G為最終評價分值。
為驗證評價模型的有效性,選取針對人臉識別算法設(shè)計的保護方案為評價對象,實施了有效性評價的案例研究。其中,保護方案綜合使用了軟件加密、混淆、反調(diào)試和防篡改技術(shù)。其保護和執(zhí)行流程如圖4所示。

圖4 保護方案模型
將保護方案的關(guān)鍵設(shè)計和保護前后軟件關(guān)鍵屬性的變化提供給專家參考,由專家對各指標(biāo)評價打分。該案例中關(guān)鍵評價指標(biāo)的參考如表1所示。

表1 保護方案關(guān)鍵評價指標(biāo)參考說明
4.2.1 確定指標(biāo)權(quán)重
相對于軟件保護有效性,準(zhǔn)則層判斷矩陣如下:

WB=(0.202 6,0.444 3,0.174 8,0.174 7),并且CR=0.000 2<0.1,通過一致性檢驗。
相對于防反匯編能力,指標(biāo)層判斷矩陣如下:
C1=

WC1=(0.081 7,0.129 3,0.089 5,0.319 7,0.173 0,0.209 8),且CR=0.038 9<0.1,通過一致性檢驗。
相對于語義混淆能力,指標(biāo)層判斷矩陣如下:
WC2=(0.285 8,0.237 2,0.233 6,0.243 3),并且CR=0.027 8<0.1,通過一致性檢驗。
相對于反調(diào)試能力,指標(biāo)層判斷矩陣如下:
C3=

WC3=(0.271 6,0.210 8,0.188 5,0.166 0,0.163 1),且CR=0.024 7<0.1,通過一致性檢驗。
相對于防篡改能力,指標(biāo)層判斷矩陣如下:
C4=

WC4=(0.269 6,0.224 3,0.179 5,0.163 8,0.164 0),且CR=0.026 3<0.1,通過一致性檢驗。
4.2.2 確定隸屬度和評價矩陣
防反匯編能力下的指標(biāo)評價矩陣:
語義混淆能力下的指標(biāo)評價矩陣:
反調(diào)試能力下的指標(biāo)評價矩陣:
防篡改能力下的指標(biāo)評價矩陣:
4.2.3 軟件保護有效性模糊綜合評價
(1)一級模糊綜合評價。
指標(biāo)層防反匯編能力U1模糊綜合評價如下:

(0.145 2 0.419 9 0.242 8 0.142 2 0.046 2)

指標(biāo)層語義混淆能力U2模糊綜合評價如下:

(0.065 0.251 3 0.221 0 0.397 7 0.066 0)

指標(biāo)層反調(diào)試能力U3模糊綜合評價如下:

(0.247 0 0.401 9 0.253 6 0.125 0 0.031 8)

指標(biāo)層防篡改能力U4模糊綜合評價如下:

(0.139 7 0.425 2 0.240 0 0.182 1 0.092 4)

(2)二級模糊綜合評價。
準(zhǔn)則層軟件保護有效性U模糊綜合評價如下:

(0.326 2 0.328 0 0.135 5 0.158 6 0.060 0)

該案例中軟件保護有效性的評價結(jié)果為64.351,處于較高等級,仍有一定提升空間。防反匯編能力、語義混淆能力、反調(diào)試能力和防篡改能力的評價結(jié)果分別為59.329,47.082,67.111,60.734,防反匯編能力處于一般水平,但也十分接近較高水平;語義混淆能力處于一般水平;反調(diào)試能力處于較高水平;防篡改能力剛剛達到較高水平。
整體看來,該案例中保護方案對人臉識別算法有著較高的保護效果,如有更高需求的話,可以從四個方面繼續(xù)提高保護強度。其中語義混淆能力對軟件保護方案的有效性有著較高的權(quán)重,但并沒有取得較高的保護效果。因此,在對保護方案進行改進的工作中可以著重提升語義混淆的能力。
面向多保護技術(shù)綜合使用的保護方案,在對軟件攻防深入研究的基礎(chǔ)上,建立了保護有效性綜合評價指標(biāo)體系;基于模糊層次分析法建立了有效性綜合評價模型。該模型不僅能夠得出綜合保護有效性的量化評價結(jié)果,而且能夠評價保護方案各項能力的有效性,在給保護方案的選擇提供決策支持的同時,還能夠給保護方案的改進提供指導(dǎo)建議。
由于有效性評價研究處于探索階段,文中建立的指標(biāo)體系難免有不足之處,接下來還需要在指標(biāo)體系方面進一步研究;另外在施加保護措施之后,將對目標(biāo)程序的實時性、可靠性等的影響納入評價模型也是下一步研究的重要內(nèi)容。
參考文獻:
[1] 薛芳芳,房鼎益,王懷軍,等.基于攻擊目的的軟件攻擊分類方法研究[J].計算機應(yīng)用與軟件,2015,32(2):283-287.
[2] 嚴(yán) 秀,李龍澍.軟件逆向工程技術(shù)研究[J].計算機技術(shù)與發(fā)展,2009,19(4):20-24.
[3] 趙玉潔,湯戰(zhàn)勇,王 妮,等.代碼混淆算法有效性評估[J].軟件學(xué)報,2012,23(3):700-711.
[4] 劉 昕.基于Windows內(nèi)核反調(diào)試的軟件保護系統(tǒng)[D].北京:北京郵電大學(xué),2009.
[5] 湯戰(zhàn)勇,郝朝輝,房鼎益,等.基于進程級虛擬機的軟件防篡改方法[J].華中科技大學(xué)學(xué)報:自然科學(xué)版,2016,44(3):65-70.
[6] 徐江陵.基于反跟蹤和自修改代碼技術(shù)的軟件保護系統(tǒng)設(shè)計[D].成都:電子科技大學(xué),2012.
[7] 魯曉成.嵌入式軟件保護關(guān)鍵技術(shù)研究與應(yīng)用[D].武漢:武漢理工大學(xué),2011.
[8] 趙路華.軟件保護技術(shù)研究[J].科技信息,2013(22):264.
[9] COLLBERG C,THOMBORSON C,LOW D.Manufacturing cheap,esilient and stealthy opaque constructs[C]//Proceedings 25th annual SIGPLAN SIGACT symposium on principles programming languages.New York,NY,USA:ACM,1998:184-196.
[10] DALLA M,GIACOBAZZI R.Control code obfuscation by abstract interpretation[C]//Proceedingof the 32nd international colloquium on automata,languages and programming.[s.l.]:[s.n.],2005:1325-1336.
[11] 趙玉潔.面向逆向工程的代碼混淆有效性研究與實踐[D].西安:西北大學(xué),2011.
[12] CECCATO M,PENTA M D,NAGRA J,et al.The effectiveness of source code obfuscation:an experimental assessment[C]//17th international conference on program comprehension.Vancouver,BC,Canada,IEEE,2009:178-187.
[13] COLLBERG C,DAVIDSON J,GIACOBAZZI R,et al.Toward digital asset protection[J].IEEE Intelligent Systems,2011,26(6):8-13.
[14] 王 妮.基于攻擊建模的軟件保護有效性評估方法研究[D].西安:西北大學(xué),2012.
[15] MACABE T J.A complexity measure[J].IEEE Transactions on Software Engineering,1976,2(4):308-320.