• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模式切換的ARM匯編代碼混淆算法

    2021-09-26 10:43:28樂德廣龔聲蓉
    計算機工程與應(yīng)用 2021年18期
    關(guān)鍵詞:控制流寄存器復(fù)雜度

    樂德廣,趙 杰,龔聲蓉

    1.常熟理工學(xué)院 計算機科學(xué)與工程學(xué)院,江蘇 常熟215500

    2.蘇州同程網(wǎng)絡(luò)科技股份有限公司,江蘇 蘇州215123

    ARM架構(gòu)的處理器以其高速度、低功耗等許多優(yōu)異的特性而在智能手機中得到非常廣泛的應(yīng)用。目前大部分的安卓智能手機都采用ARM處理器。與此同時,ARM應(yīng)用程序的數(shù)量每年呈現(xiàn)指數(shù)式的增長。2019年,全球手機APP下載量高達2040億次[1],在休閑、娛樂、社交、辦公、投資、購物、生活和醫(yī)療等方面都有手機APP的身影,它們不僅影響著人們的日常生活,而且推動著經(jīng)濟發(fā)展。

    在各類ARM應(yīng)用呈井噴式增長,為用戶帶來便利和促進經(jīng)濟增長的同時,針對ARM架構(gòu)的程序攻擊日益突出,如ARM指令形式化變換逆向工程、靜態(tài)分析和動態(tài)調(diào)試等[2],帶來了巨大的隱私信息泄露的隱患,也造成各種惡意軟件和盜版應(yīng)用泛濫。因此,如何保護基于ARM處理器的應(yīng)用程序,成為軟件安全研究的重點。

    代碼混淆是一種保留語義的程序變換技術(shù),其目的是使程序邏輯變得難以理解,增加逆向工程的難度,從而有效保護軟件[3]。文獻[4]在分析安卓軟件遭受惡意攻擊的基礎(chǔ)上,提出一種基于Java的安卓應(yīng)用代碼混淆技術(shù),旨在提高安卓應(yīng)用代碼的隱蔽性,進而使安卓應(yīng)用得到更有效的保護。但是該技術(shù)工作在Java層,很容易被逆向反編譯。文獻[5]通過研究市場上流行的軟件混淆技術(shù),開發(fā)了一種主要針對Smali代碼的混淆算法,研究其控制流混淆,變量混淆和虛假代碼的注入,通過分析反編譯工具的弱點,其混淆之后的代碼可以免受反編譯工具的靜態(tài)分析。文獻[6]通過對原DEX文件進行重構(gòu)和加密,將其關(guān)鍵Java函數(shù)屬性改為Native(C/C++屬性),并通過Hook技術(shù)和反射機制隱式恢復(fù)并執(zhí)行原Java函數(shù),可以有效抵御靜態(tài)分析攻擊,獲取高強度的保護效果。

    以上ARM程序混淆方法都是從高級語言(如Java或C/C++)層面,或者中間語言(如Smali)層面對程序進行混淆,沒有從底層匯編指令層面進行考慮,并充分利用ARM指令集的工作模式及寄存器間接尋址等特性對程序進行混淆。而目前針對底層匯編ARM指令的混淆,尚未有適當(dāng)理論方法來指導(dǎo)生成多模式切換的指令混淆以準(zhǔn)確測試ARM應(yīng)用安全充分性、達到更全面的代碼指令安全。

    為此,本文研究如何從混淆底層ARM匯編指令方式的角度,提高ARM程序安全性,并提出一種基于模式切換的ARM匯編代碼混淆算法。該算法通過ARM處理器的多指令集工作模式建立新的模式切換模型,描述ARM指令切換行為的全貌和邏輯規(guī)律,提高指令混淆中考慮模式切換的全面性,建立指令混淆的新型指令模式切換混淆方式,并提出對應(yīng)的指令切換混淆算法。此外,在對ARM指令集中數(shù)據(jù)處理和切換指令進行分析的同時,結(jié)合ARM體系結(jié)構(gòu)寄存器尋址特征,提出基于寄存器間接尋址跳轉(zhuǎn)的ARM寄存器混淆和虛假指令混淆的優(yōu)化方法,使得ARM應(yīng)用中關(guān)鍵代碼的安全性在ARM平臺上進一步的提升。

    1 ARM匯編指令安全性分析

    ARM是一種低功耗、高性能的RISC處理器架構(gòu)。ARM體系結(jié)構(gòu)采用定長指令,指令格式和尋址方式也相對簡單,大大降低了體系結(jié)構(gòu)的復(fù)雜性。為兼容數(shù)據(jù)總線寬度為16位的應(yīng)用系統(tǒng),ARM體系結(jié)構(gòu)除了支持執(zhí)行效率很高的32位ARM指令集以外,同時支持16位的Thumb指令集[7]。與ARM指令集相比較,Thumb指令集中的數(shù)據(jù)處理指令的操作數(shù)和指令地址仍然是32位,但Thumb指令集為實現(xiàn)16位的指令長度,并舍棄了ARM指令集的一些特性,如ARM指令大多數(shù)都是有條件執(zhí)行的,而Thumb指令則是無條件執(zhí)行。此外,大多數(shù)的Thumb數(shù)據(jù)處理指令的目的寄存器與其中一個源寄存器相同。因此,與等價的32位指令相比,Thumb指令集在保留32指令優(yōu)勢的同時,大大地節(jié)省了系統(tǒng)的存儲空間。

    在ARM應(yīng)用程序的編寫過程中,只要遵循一定調(diào)用的規(guī)則,Thumb子程序和ARM子程序可以互相調(diào)用[8]。當(dāng)處理器在執(zhí)行ARM程序段時,稱ARM處理器處于ARM工作模式,當(dāng)處理器在執(zhí)行Thumb程序段時,稱ARM處理器處于Thumb工作模式。和X86程序一樣,ARM程序面臨逆向攻擊。在程序逆向分析中,一般以反匯編技術(shù)為基礎(chǔ)通過分析二進制文件,利用線性掃描或遞歸遍歷算法反匯編整個可執(zhí)行程序,將機器碼翻譯成匯編代碼[9],并通過分析和處理匯編指令發(fā)現(xiàn)其內(nèi)部的行為和特征。文獻[10]提出一種結(jié)合具體路徑執(zhí)行和遞歸遍歷算法的反匯編技術(shù),用于更好地針對自修改和重疊指令的逆向工程分析。文獻[11]根據(jù)所有可能的基本塊可以通過推測恢復(fù)的原理,提出一種二進制代碼的推測性反匯編技術(shù)。該技術(shù)結(jié)合重疊沖突分析和控制流圖沖突分析提煉基本塊來確定匯編指令。文獻[12]利用演繹驗證和有界模型檢測,提出一種基于反向有界動態(tài)符號執(zhí)行的反匯編方法實現(xiàn)對混淆代碼的動態(tài)精確反匯編分析。文獻[13]通過增加成功的反匯編樣本,并基于SVM進行對它們進行訓(xùn)練和分類,然后結(jié)合線性掃描算法建立一種輕量反匯編方法,有效反匯編出代碼混淆后的指令操作碼。文獻[14]通過對程序運行時的能耗側(cè)信道泄露監(jiān)測和結(jié)合機器學(xué)習(xí)算法確定其匯編指令,并提出一種側(cè)信道反匯編器用于固件逆向工程。文獻[15]通過模擬二進制程序分析中的不確定性提出一種概率反匯編技術(shù)。該技術(shù)基于融合一組能到達地址的不確定特征計算代碼空間中每個地址的概率,用于指示該地址表示真正指令的可能性,并進行相應(yīng)的反匯編,從而實現(xiàn)對反匯編代碼的求精,即在避免漏報的同時,具有很低的誤報率。

    因此,通過反匯編對ARM程序進行逆向分析與利用,引起ARM程序的破解和盜版、隱私數(shù)據(jù)泄露和知識產(chǎn)權(quán)竊取等安全問題。

    2 ARM匯編代碼混淆算法

    在ARM反匯編中,因為ARM和Thumb指令集切換的不明晰而導(dǎo)致切換信息丟失并且造成反匯編出現(xiàn)錯誤。因此,在下面提出的ARM匯編代碼混淆算法中,結(jié)合Thumb模式與ARM模式,首先通過指令等價變換將Thumb模式中的指令序列變換成ARM模式下的指令序列。其次,利用切換指令在Thumb模式和ARM模式之間進行切換混淆,使程序的控制流復(fù)雜化,并利用寄存器間接尋址混淆進一步隱藏切換信息,導(dǎo)致在反匯編中漏解析本來可達的分支流程或者錯解析本來不可達的分支流程。此外,通過虛假指令對反匯編工具的混淆作用,在程序中構(gòu)造虛假分支,來迷惑反匯編器,達到代碼保護的目的。算法總體架構(gòu)如圖1所示。

    圖1 算法總體架構(gòu)Fig.1 Architecture of algorithm

    在圖1中,首先預(yù)處理待保護的Thumb指令,定位關(guān)鍵指令序列ST,然后對關(guān)鍵指令序列進行等價變形SA指令序列。接著,在原始Thumb模式中添加新ARM模式,并將變形處理后新生成的SA指令序列保存在新的ARM模式中。然后,利用切換指令對程序指令進行模式切換,當(dāng)程序執(zhí)行到關(guān)鍵指令序列時,會切換至ARM模式中執(zhí)行變形處理后的指令序列,并利用MT寄存器混淆保護模式切換地址。同時,在模式切換過程中加入QT虛假指令序列填充ST指令序列空間。根據(jù)圖1算法架構(gòu),基于模式切換的ARM匯編代碼混淆算法描述如下:

    步驟1在Thumb指令序列中選定一個分割位置P,設(shè)定分割位置后的待移動指令序列為ST,ST的結(jié)束位置為E。

    步驟2在分割位置P處,隨機選定可用的寄存器作為間接跳轉(zhuǎn)尋址的寄存器。

    步驟3將Thumb指令序列ST轉(zhuǎn)換為等價的ARM指令序列SA:AR M(SA)=Thumb(ST)。

    步驟4在ARM指令序列中選取一個新位置P1,將SA放在位置P1處。

    步驟5在Thumb指令集中構(gòu)造寄存器混淆指令序列MT,使得步驟2中選定的寄存器的計算結(jié)果為新的跳轉(zhuǎn)位置P1。

    步驟6在Thumb指令集中構(gòu)造切換指令,使MT之后的控制流跳轉(zhuǎn)到P1處,并將指令集切換至ARM模式。

    步驟7如果len(ST)-len(MT+1)>0,那么在切換指令之后構(gòu)造虛假指令序列QT,且len(QT)=len(ST)-len(MT+1)。

    步驟8在SA的最后構(gòu)造指令并使用切換指令跳轉(zhuǎn)至位置E,并將指令集切換至Thumb模式。

    算法中的模式切換使用ARM匯編指令集中的模式切換指令來進行構(gòu)造。其中,根據(jù)變形模板函數(shù)ARM()和變形參數(shù)等對指令序列ST進行變形,生成變形指令序列SA。而SA處的地址是寄存器間接選址,且寄存器值是通過間接計算指令序列MT混淆產(chǎn)生。在進行反匯編時,反匯編器無法直接判定寄存器值,所以不能確定模式切換路徑SA的執(zhí)行入口信息,造成遞歸掃描反匯編結(jié)果出錯。另外,通過在切換指令后插入不可執(zhí)行虛假指令序列QT構(gòu)建另一條分支路徑。因為添加的切換指令是合法的,且不可執(zhí)行虛假指令序列QT處的地址也是合法的目的地址,所以QT處的虛假指令序列一定會被反匯編器反匯編,從而將虛假指令QT與其后的原指令結(jié)合在一起,引起線性掃描反匯編出錯。

    根據(jù)上述算法描述,ARM匯編代碼混淆部分主要包含三方面研究內(nèi)容:(1)模式切換混淆,主要通過模式切換指令和設(shè)計指令變形的模板函數(shù)ARM(),利用模板函數(shù)對原始指令進行等價變形和模式切換。(2)寄存器混淆,通過寄存器隨機分配及間接選址計算,隱藏模式切換指令的真實地址。(3)虛假指令混淆,提供了在算法中利用虛假指令序列來實現(xiàn)對于線性掃描反匯編的重同步的延遲。下面重點介紹這些關(guān)鍵技術(shù)。

    2.1 模式切換混淆

    在ARM程序中有兩種方法可以實現(xiàn)程序控制流程的跳轉(zhuǎn),一種是直接向PC寄存器賦值實現(xiàn)跳轉(zhuǎn),另一種是使用跳轉(zhuǎn)指令直接跳轉(zhuǎn)。其中,BX(Branch eXchange)是帶模式切換的跳轉(zhuǎn)指令,跳轉(zhuǎn)到指定的目標(biāo)地址執(zhí)行程序。ARM架構(gòu)支持在一個上下文中運行ARM和Thumb兩種指令集,它們可通過BX指令進行切換。BX指令格式如下所示:

    其中,BX需要一個目標(biāo)地址寄存器作為第一操作數(shù):BX寄存器(Rx)。如果目標(biāo)地址寄存器的[0]位為1,則跳轉(zhuǎn)時將當(dāng)前程序狀態(tài)寄存器(Current Program Status Register,CPSR)中的標(biāo)志T置位,即把目標(biāo)地址的代碼解釋為Thumb指令。如果目標(biāo)地址寄存器的[0]位為0,則跳轉(zhuǎn)時將CPSR中的標(biāo)志T復(fù)位,即把目標(biāo)地址的代碼解釋為ARM指令。因此,切換依據(jù)如下所示:

    在以上代碼中,如果需要跳轉(zhuǎn)的地址模2余1則表示跳轉(zhuǎn)到Thumb模式,否則就是ARM模式。如果原始程序是Thumb模式,那么就可以利用這個特性來混淆ARM匯編指令。例如,混淆前關(guān)鍵代碼如下所示:

    在以上混淆代碼中,同時存在Thumb和ARM兩種模式的指令序列時,反匯編工具在進行反匯編時需要準(zhǔn)確地識別出不同位置對應(yīng)的指令序列。但是在多模式指令混淆中,通過2次BX實現(xiàn)了跨指令集的來回切換,再配合其他等價變形指令[0x233C~0x2360],所以反匯編工具在執(zhí)行自動分析時往往容易出錯,包括無法識別和識別成錯誤模式。

    2.2 寄存器混淆

    為了進一步加強復(fù)雜度,需要對Rx寄存器混淆,從靜態(tài)和動態(tài)兩方面增加逆向分析的難度。寄存器混淆的核心思想是將寄存器隨機分配和間接化計算,同時保持程序指令及其行為相同,即把立即數(shù)賦值變換成間接賦值,并把一個指令的輸出值重新定位到一個任意的內(nèi)部寄存器,導(dǎo)致代碼中每次出現(xiàn)的指令版本都是不相同,大大增加動靜態(tài)分析難度。例如:

    在代碼片段[0x2236~0x2242]中,通過“ADD R6,R6,R5”計算最終的跳轉(zhuǎn)地址,它的結(jié)果依賴寄存器R5的值,而R5又是從內(nèi)存地址R4中讀取的,即需要再進一步向前分析向該內(nèi)存地址存儲寫數(shù)據(jù)的位置。這樣就實現(xiàn)了R5的一個間接賦值,從而使得其更難看出0x2242處BX R6實際的跳轉(zhuǎn)位置。

    2.3 虛假指令混淆

    由于虛假指令對反匯編工具的混淆作用,在本算法中利用虛假指令序列來實現(xiàn)對線性掃描反匯編的重同步的延遲。虛假指令本身對程序執(zhí)行并沒有影響,因此虛假指令序列的主體部分還需要無效指令和隨機數(shù)據(jù)的填充。為有效利用這部分填充的隨機數(shù)據(jù),在生成虛假指令序列時,就需要對這部分數(shù)據(jù)進行有目的的構(gòu)造,在隨機的數(shù)據(jù)中引用原程序中的元變量和對象(如寄存器和內(nèi)存地址等),通過寫內(nèi)存和加減法計算,然后根據(jù)指令長度選取指定數(shù)量指令形成虛假指令序列,進一步提升虛假分支的迷惑性,提高混淆強度。此外,為了使元數(shù)據(jù)更有效與虛假指令配合,元數(shù)據(jù)會經(jīng)過變形,誤導(dǎo)反匯編器的判斷,使得即使發(fā)現(xiàn)此處的指令,也無法確定指令的執(zhí)行邏輯。例如:

    其中,地址空間0x2242到0x2244是在添加了模式切換BX R6指令后,反匯編引擎對二進制數(shù)據(jù)進行的重新解讀所得出的反匯編虛假指令序列。這里,利用了寄存器R1和內(nèi)存地址[SP,#0x1C+var_10]作為元數(shù)據(jù)構(gòu)造虛假指令。盡管動態(tài)執(zhí)行無法執(zhí)行其原本的功能,但是仍然會進行靜態(tài)線性掃描反匯編,因為原本的二進制數(shù)據(jù)并未發(fā)生改變,因此更難看出[0x2242~0x2244]處的指令是虛假指令,使得逆向分析者無法進行正確的靜態(tài)分析。

    3 測試與分析

    本文實驗平臺選取Google Pixel XL硬件和Android 7.1.1操作系統(tǒng)。選用的測試程序來自arm mbedtls密碼庫,分別是MD5和SHA1哈希算法,及DES和AES加密算法程序[16],并參考Collberg提出的對代碼混淆的評價指標(biāo)[17],分別從強度、彈性和開銷三方面進行測試與分析。

    3.1 強度測試

    經(jīng)過本文算法混淆后匯編代碼塊的指令數(shù)量和跳轉(zhuǎn)指令的數(shù)量顯著增加,同時程序的控制流變得更加復(fù)雜。因此,本文以控制流循環(huán)復(fù)雜度作為強度測試指標(biāo),分析混淆前后控制流循環(huán)復(fù)雜度的變化??刂屏餮h(huán)復(fù)雜度記為V(G)[18],計算公式如公式(1)所示:

    其中,e表示控制流圖中邊的數(shù)量,n表示控制流圖中節(jié)點的數(shù)量。

    由于混淆前,程序的控制流僅涉及Thumb模式邏輯,而混淆后的程序控制流包含Thumb模式的原始邏輯和ARM模式的新增混淆兩種執(zhí)行邏輯。為降低分析的復(fù)雜度,首先把混淆前的ST執(zhí)行邏輯看作一個整體,其控制流循環(huán)復(fù)雜度表示為x?;煜?,SA的執(zhí)行邏輯部分的控制流循環(huán)復(fù)雜度為執(zhí)行ARM模式等價指令變換混淆部分的控制流循環(huán)復(fù)雜度,如3.1節(jié)所示,仍然把它看作一個整體,表示為y1。其次,SA的模式切換入口混淆指令變換部分的執(zhí)行代碼邏輯主要由MT和QT構(gòu)成,如3.2節(jié)和3.3節(jié)所示,其控制流循環(huán)復(fù)雜度分別表示為y2和y3。其中,y2為寄存器混淆的控制流循環(huán)復(fù)雜度,y3為虛假指令混淆的控制流循環(huán)復(fù)雜度。最后,通過模式切換指令在整個混淆后的匯編代碼的控制流中新增2條邊,即e=2。綜上,混淆前后程序的控制流循環(huán)復(fù)雜度比為VT/V=(y1+y2+y3+2)/x。根據(jù)ARM原始程序Thumb模式邏輯,在4個測試用例中分別選取MD5的mbedtls_md5_update_ret、SHA1的mbedtls_sha1_update_ret、AES的mbedtls_internal_aes_encrypt、DES的mbedtls_des_crypt_ecb作為測試函數(shù),計算其混淆前后的x和y1,y2,y3值,其測試結(jié)果如表1所示。

    表1 程序混淆前后控制流循環(huán)復(fù)雜度比較Table1 Comparison of cyclomatic complexity between two programs before and after obfuscation

    由表1可知,混淆后ARM應(yīng)用程序控制流循環(huán)復(fù)雜度遠大于混淆前,復(fù)雜度的增加主要是由于本文算法的寄存器混淆和虛假花指令混淆所產(chǎn)生,這部分復(fù)雜度遠大于原始ST的復(fù)雜度,所以會引起較大的增長率,說明本文混淆方法對ARM應(yīng)用程序的混淆強度大大提高。此外,本混淆算法的核心在于對原始ST控制流的破壞,且混淆后的yi,i=1,2,3是一個不確定量,使得像IDA Pro等常見的控制流分析工具難以準(zhǔn)確地分析其控制流循環(huán)復(fù)雜度。所以從這個角度看,它同樣提高了混淆的強度。

    3.2 彈性測試

    彈性的度量用于衡量本文算法能夠抵抗ARM反匯編逆向分析的能力。本文利用IDA Pro自動化分析逆向工具對指令模式切換混淆前后的程序進行比較,分析指令模式切換混淆抗逆向分析的效果。其中,在對MD5哈希算法中的mbedtls_md5_update_ret反匯編后,其混淆前后的局部控制流分別如圖2和圖3所示。

    圖2 mbedtls_md5_update_ret混淆前局部控制流圖Fig.2 Partial control flow graph of mbedtls_md5_update_ret before obfuscation

    圖3 mbedtls_md5_update_ret混淆后局部控制流圖Fig.3 Partial control flow graph of mbedtls_md5_update_ret after obfuscation

    在圖2中,混淆前的mbedtls_md5_update_ret局部控制流圖的基本塊“l(fā)oc_12C8C”原本在結(jié)束位置會通過跳轉(zhuǎn)指令跳轉(zhuǎn)至基本塊“l(fā)oc_12CA2”,該局部控制流圖被正確分析。從圖3混淆后的mbedtls_md5_update_ret局部控制流發(fā)現(xiàn),原本正確的控制流被截斷,基本塊“l(fā)oc_12C8C”被分析成以“BX R4”結(jié)尾,因此在ARM反匯編分析時,不能直觀地從控制流圖中得出其跳轉(zhuǎn)的信息,從而影響了其進一步準(zhǔn)確地分析完整的控制流。

    采用IDA Pro,Objdump和Radare等ARM逆向工具進一步對MD5、SHA1、DES和AES測試用例中的mbedtls_md5_update_ret、mbedtls_sha1_update_ret、mbedtls_internal_aes_encrypt和mbedtls_des_crypt_ecb關(guān)鍵函數(shù)進行逆向工程測試。表2顯示了所有測試用例的測試結(jié)果。

    表2 逆向工程測試結(jié)果Table 2 Test results of reverse engineering

    從表2的測試結(jié)果可以看出,ARM靜態(tài)逆向工程無法分析出被本文模式切換混淆過的關(guān)鍵函數(shù)。這是由于mbedtls_md5_update_ret、mbedtls_sha1_update_ret、mbedtls_internal_aes_encrypt和mbedtls_des_crypt_ecb函數(shù)的ST指令在Thumb模式中被切換混淆,而這些逆向編譯工具都是基于Thumb模式中對這部分指令進行分析的,所以這些工具都不能正確地逆向編譯出被模式切換混淆過的ARM匯編代碼。

    3.3 開銷測試

    下面對混淆前后,程序的開銷進行測試,測試指標(biāo)包含體積開銷和時間開銷。首先,對MD5、SHA1、DES和AES四個測試用例程序進行體積開銷測試,并與OLLVM混淆進行橫向比較。這里定義GRS為程序文件體積的增長率(%),S0為混淆前程序的文件大小,S1為混淆后程序的文件大小。這樣得到計算GRS的公式如公式(2)所示:

    ARM匯編指令為定長指令,為準(zhǔn)確衡量混淆前后程序大小的增加幅度,以匯編指令條數(shù)I量化體積大小,則對測試程序的體積性能開銷的測試數(shù)據(jù)對比,在靜態(tài)和動態(tài)情況下的結(jié)果分別如表3和表4所示。

    表3 靜態(tài)指令程序混淆前后體積開銷比較Table 3 Comparison of size cost between two static instruction programs before and after obfuscation

    從表3可以看出,本文方法混淆的程序靜態(tài)指令增長的絕對值波動較小,集中在40條左右,這主要與選擇的基本塊指令數(shù)量有關(guān),增長率則呈現(xiàn)出原始總質(zhì)量越多,增長率越低的情況。而OLLVM混淆后的程序靜態(tài)指令增長的絕對值波動較大,且其平均增長率為111.76%,是本文方法的14倍。動態(tài)指令是指在正確輸入的情況下,混淆前后在執(zhí)行時被執(zhí)行到的指令,從表4可以看出,本文方法混淆后的程序動態(tài)指令增長的規(guī)律與靜態(tài)指令一致,且比OLLVM混淆后的程序動態(tài)指令增長的絕對值和增長率都更低,因此本文方法的程序體積開銷更小。

    表4 動態(tài)指令程序混淆前后體積開銷比較Table 4 Comparison of size cost between two dynamic instruction programs before and after obfuscation

    時間開銷是衡量軟件保護技術(shù)的另一重要指標(biāo),定義程序運行時間增長率GRT:

    其中,T1表示本文混淆算法處理后程序的運行時間,T0表示程序原始運行時間。分別對16、32、64和128 Byte的隨機數(shù)進行MD5和SHA1哈希運算,以及DES和AES加密運算,其中DES和AES分別采用mbedtls中的測試密鑰。表5顯示了本文方法和OLLVM混淆前后的運算時間(ms)及其增長率(%)比較。

    從表5可以看出,本文方法混淆前后程序運行時間增長率在[1%,21%]之間波動,呈現(xiàn)出與體積增長一致的特征,且原始運行時間越長,增長率就越低,對原始程序的影響就越小。此外,OLLVM混淆前后程序運行時間的增長率在[7%,44%]區(qū)間,不論是增長的大小還是波動范圍都比本文方法大。因此,本文方法的時間開銷對于程序本身運行影響不大。

    表5 程序混淆前后時間開銷比較Table 5 Comparison of time cost between two programs before and after obfuscation

    4 結(jié)束語

    針對ARM反匯編和逆向分析引起的ARM二進制程序破解和盜版、隱私數(shù)據(jù)泄露和知識產(chǎn)權(quán)竊取等安全問題,提出了一種基于模式切換的ARM匯編代碼混淆算法,該算法對底層的匯編指令進行代碼混淆,使反匯編時得到的錯誤匯編指令在之后的逐級逆向分析中,會由于逐步積累而很難獲取有價值的結(jié)果。此外,由于模式切換和變形指令在變換混淆后,不論是在靜態(tài)執(zhí)行文件中,還是在內(nèi)存里動態(tài)調(diào)試中,都呈現(xiàn)不同的控制流,因此給傳統(tǒng)的靜態(tài)和動態(tài)反匯編分析方法帶來了極大挑戰(zhàn)。同時,還對本文提出的代碼混淆算法的強度、彈性和開銷進行了測試評價。實驗測試結(jié)果表明,該方法能有效地提升ARM程序的混淆強度和彈性,并且對于性能開銷的消耗比較少。在下一步工作中,將結(jié)合ARM指令集和Thumb指令集的切換特性,繼續(xù)擴展模式切換指令,進一步提高保護效果。在寄存器混淆中插入不透明謂詞。針對虛假指令混淆,研究隱藏有效數(shù)據(jù)和進行二次分支跳轉(zhuǎn)的條件,使虛假指令被更有效的利用。

    猜你喜歡
    控制流寄存器復(fù)雜度
    抵御控制流分析的Python 程序混淆算法
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    抵御控制流分析的程序混淆算法
    Lite寄存器模型的設(shè)計與實現(xiàn)
    一種低復(fù)雜度的慣性/GNSS矢量深組合方法
    分簇結(jié)構(gòu)向量寄存器分配策略研究*
    求圖上廣探樹的時間復(fù)雜度
    某雷達導(dǎo)51 頭中心控制軟件圈復(fù)雜度分析與改進
    出口技術(shù)復(fù)雜度研究回顧與評述
    基于控制流隱藏的代碼迷惑
    9热在线视频观看99| 国产精品成人在线| 国产成人av激情在线播放| 国产成人精品婷婷| 亚洲一区二区三区欧美精品| 亚洲欧美成人综合另类久久久| 精品国产乱码久久久久久小说| 香蕉国产在线看| 精品午夜福利在线看| 国产精品一区二区在线不卡| av女优亚洲男人天堂| 999久久久国产精品视频| 亚洲欧美色中文字幕在线| 老汉色av国产亚洲站长工具| 日本av免费视频播放| 高清av免费在线| 毛片一级片免费看久久久久| 999久久久国产精品视频| kizo精华| 麻豆av在线久日| xxx大片免费视频| 国产1区2区3区精品| 少妇 在线观看| 巨乳人妻的诱惑在线观看| 国产精品一区二区在线观看99| 美女高潮到喷水免费观看| 国产精品国产三级专区第一集| 成人手机av| 亚洲欧洲日产国产| 男人爽女人下面视频在线观看| 精品国产超薄肉色丝袜足j| 亚洲精品久久成人aⅴ小说| 中文字幕人妻丝袜制服| 18禁裸乳无遮挡动漫免费视频| 黑人猛操日本美女一级片| 亚洲av免费高清在线观看| 十八禁高潮呻吟视频| 亚洲,欧美,日韩| 亚洲一区二区三区欧美精品| 在线观看国产h片| 曰老女人黄片| 人妻 亚洲 视频| 亚洲欧美精品自产自拍| av网站在线播放免费| 我要看黄色一级片免费的| 丝瓜视频免费看黄片| 国产探花极品一区二区| 国产精品一国产av| 免费观看性生交大片5| 一区二区三区激情视频| 亚洲,欧美,日韩| 超色免费av| 男女边吃奶边做爰视频| 最近2019中文字幕mv第一页| 18禁国产床啪视频网站| 亚洲美女黄色视频免费看| av天堂久久9| 亚洲欧美精品综合一区二区三区 | 亚洲内射少妇av| 制服人妻中文乱码| 777久久人妻少妇嫩草av网站| 日日啪夜夜爽| 在线天堂最新版资源| 精品一区二区三区四区五区乱码 | 亚洲一区二区三区欧美精品| 欧美中文综合在线视频| 国产 精品1| 在线观看一区二区三区激情| videosex国产| 成人国产av品久久久| 亚洲精品av麻豆狂野| 婷婷色av中文字幕| 久久久久精品人妻al黑| 一区二区av电影网| 国产精品久久久久久av不卡| 丝瓜视频免费看黄片| 久久精品人人爽人人爽视色| 最近最新中文字幕免费大全7| 久久 成人 亚洲| 18禁动态无遮挡网站| 亚洲,欧美精品.| freevideosex欧美| 成人漫画全彩无遮挡| 久久人人爽人人片av| 久久毛片免费看一区二区三区| 精品国产露脸久久av麻豆| 国产麻豆69| 五月伊人婷婷丁香| 欧美精品av麻豆av| 精品国产超薄肉色丝袜足j| 高清视频免费观看一区二区| 亚洲天堂av无毛| 国产一区二区 视频在线| av国产久精品久网站免费入址| 精品国产国语对白av| 丝袜脚勾引网站| 日韩制服丝袜自拍偷拍| 欧美日韩一区二区视频在线观看视频在线| 中国三级夫妇交换| 国产 精品1| 另类亚洲欧美激情| 国产精品一国产av| 国语对白做爰xxxⅹ性视频网站| 精品国产超薄肉色丝袜足j| 中文字幕人妻丝袜一区二区 | 十分钟在线观看高清视频www| 丰满迷人的少妇在线观看| 国产黄色视频一区二区在线观看| 宅男免费午夜| 亚洲天堂av无毛| 亚洲精品国产色婷婷电影| 天堂俺去俺来也www色官网| 伦精品一区二区三区| 国产成人精品无人区| 亚洲熟女精品中文字幕| 国产精品秋霞免费鲁丝片| xxx大片免费视频| xxx大片免费视频| 久久韩国三级中文字幕| 欧美日韩av久久| 一区二区三区激情视频| 性色av一级| 亚洲国产精品国产精品| 国产白丝娇喘喷水9色精品| 亚洲精品aⅴ在线观看| 少妇人妻久久综合中文| 我的亚洲天堂| 97精品久久久久久久久久精品| 老司机影院成人| 91精品伊人久久大香线蕉| 少妇 在线观看| 亚洲欧美色中文字幕在线| 日韩一区二区视频免费看| 欧美+日韩+精品| 交换朋友夫妻互换小说| 亚洲av欧美aⅴ国产| 香蕉国产在线看| 啦啦啦在线观看免费高清www| 国产精品三级大全| 精品少妇内射三级| 麻豆乱淫一区二区| 久热久热在线精品观看| 日日啪夜夜爽| 国产不卡av网站在线观看| 美女高潮到喷水免费观看| 男女下面插进去视频免费观看| 国产高清不卡午夜福利| 国产白丝娇喘喷水9色精品| 中文天堂在线官网| 日韩精品有码人妻一区| 久久影院123| 日日摸夜夜添夜夜爱| 亚洲国产色片| 另类精品久久| 国产精品麻豆人妻色哟哟久久| 久久精品aⅴ一区二区三区四区 | 飞空精品影院首页| 麻豆精品久久久久久蜜桃| 国产av一区二区精品久久| 国产有黄有色有爽视频| 69精品国产乱码久久久| 国产成人精品婷婷| 亚洲欧美精品综合一区二区三区 | 婷婷成人精品国产| 色婷婷久久久亚洲欧美| 一级黄片播放器| 久久久国产欧美日韩av| 成年女人在线观看亚洲视频| 成年人免费黄色播放视频| 色94色欧美一区二区| 亚洲精华国产精华液的使用体验| 久久久a久久爽久久v久久| 亚洲精品美女久久久久99蜜臀 | 欧美日韩精品网址| 国产在线一区二区三区精| 欧美日韩视频高清一区二区三区二| 热re99久久国产66热| 欧美日韩亚洲高清精品| 亚洲久久久国产精品| 永久免费av网站大全| 99久久中文字幕三级久久日本| 丰满迷人的少妇在线观看| 国产 精品1| 精品一区二区三卡| 夫妻性生交免费视频一级片| 大香蕉久久成人网| 国产精品三级大全| 午夜91福利影院| 丝袜在线中文字幕| 免费看不卡的av| 亚洲av日韩在线播放| 国产成人免费观看mmmm| 国产精品久久久久久av不卡| 中文字幕亚洲精品专区| 91精品三级在线观看| 亚洲精品自拍成人| 国产亚洲欧美精品永久| 中文字幕精品免费在线观看视频| 国产黄色视频一区二区在线观看| 99久久人妻综合| 老汉色av国产亚洲站长工具| 99香蕉大伊视频| 丝袜美足系列| 欧美 日韩 精品 国产| 五月开心婷婷网| 制服诱惑二区| 日本猛色少妇xxxxx猛交久久| 久久 成人 亚洲| 少妇熟女欧美另类| 久久精品熟女亚洲av麻豆精品| 国产成人精品福利久久| 亚洲av欧美aⅴ国产| 国产激情久久老熟女| 亚洲一区中文字幕在线| 日韩电影二区| 久久久国产精品麻豆| av福利片在线| 午夜免费鲁丝| 777久久人妻少妇嫩草av网站| 国产精品麻豆人妻色哟哟久久| 久久精品人人爽人人爽视色| 看非洲黑人一级黄片| 日日撸夜夜添| videossex国产| 亚洲国产成人一精品久久久| 久久av网站| 天天躁夜夜躁狠狠久久av| 欧美国产精品一级二级三级| 国产老妇伦熟女老妇高清| 男人添女人高潮全过程视频| 制服丝袜香蕉在线| 看非洲黑人一级黄片| 成人国语在线视频| 亚洲精品av麻豆狂野| 成年人午夜在线观看视频| 韩国精品一区二区三区| 久久亚洲国产成人精品v| 寂寞人妻少妇视频99o| 色吧在线观看| 丰满迷人的少妇在线观看| 亚洲欧美精品综合一区二区三区 | a级片在线免费高清观看视频| 在线看a的网站| 2018国产大陆天天弄谢| 久久久久网色| 狠狠精品人妻久久久久久综合| 人人妻人人爽人人添夜夜欢视频| 国产精品 国内视频| 激情五月婷婷亚洲| 欧美成人午夜精品| 国产又色又爽无遮挡免| 汤姆久久久久久久影院中文字幕| 自拍欧美九色日韩亚洲蝌蚪91| 色播在线永久视频| 国产深夜福利视频在线观看| 久久女婷五月综合色啪小说| 视频区图区小说| 久久综合国产亚洲精品| 最近的中文字幕免费完整| 18禁国产床啪视频网站| 久久99精品国语久久久| 国产亚洲最大av| 9热在线视频观看99| 男女无遮挡免费网站观看| 肉色欧美久久久久久久蜜桃| 少妇人妻久久综合中文| 精品久久久精品久久久| 一级爰片在线观看| 国产av码专区亚洲av| 亚洲美女视频黄频| 高清不卡的av网站| 男人舔女人的私密视频| 久久精品国产亚洲av涩爱| 国产黄色免费在线视频| 国产精品亚洲av一区麻豆 | 激情五月婷婷亚洲| 亚洲五月色婷婷综合| 亚洲精品久久成人aⅴ小说| 亚洲欧美一区二区三区黑人 | 亚洲国产精品成人久久小说| 天天影视国产精品| 99精国产麻豆久久婷婷| 成人黄色视频免费在线看| 搡老乐熟女国产| 曰老女人黄片| 午夜福利乱码中文字幕| 母亲3免费完整高清在线观看 | 午夜免费鲁丝| 香蕉精品网在线| 深夜精品福利| 91国产中文字幕| 久久人人爽av亚洲精品天堂| 婷婷色av中文字幕| 国产探花极品一区二区| 久久精品国产自在天天线| 人人妻人人添人人爽欧美一区卜| 欧美日韩av久久| 欧美人与善性xxx| 亚洲第一区二区三区不卡| 18禁裸乳无遮挡动漫免费视频| av国产精品久久久久影院| 久久久久久免费高清国产稀缺| 久久精品aⅴ一区二区三区四区 | 亚洲成国产人片在线观看| av电影中文网址| 在线亚洲精品国产二区图片欧美| 十八禁网站网址无遮挡| 日韩中字成人| 99九九在线精品视频| 成年动漫av网址| 免费人妻精品一区二区三区视频| 精品一区在线观看国产| 久久精品久久久久久久性| 宅男免费午夜| 成人黄色视频免费在线看| 毛片一级片免费看久久久久| 久久狼人影院| 久久精品亚洲av国产电影网| 最近中文字幕高清免费大全6| 晚上一个人看的免费电影| 久久婷婷青草| 成人毛片60女人毛片免费| 亚洲情色 制服丝袜| 亚洲国产欧美日韩在线播放| 亚洲成人av在线免费| 18禁裸乳无遮挡动漫免费视频| 一区二区三区乱码不卡18| 亚洲精品久久成人aⅴ小说| 日韩伦理黄色片| 免费在线观看视频国产中文字幕亚洲 | 色婷婷av一区二区三区视频| 九色亚洲精品在线播放| 免费在线观看完整版高清| 性少妇av在线| 午夜福利影视在线免费观看| 久久久精品免费免费高清| 成人国产麻豆网| 黄色视频在线播放观看不卡| 在线精品无人区一区二区三| 性少妇av在线| 性色av一级| 人体艺术视频欧美日本| 人人妻人人添人人爽欧美一区卜| 国产精品国产三级国产专区5o| 亚洲精华国产精华液的使用体验| 久久精品亚洲av国产电影网| 一区二区三区乱码不卡18| 美女午夜性视频免费| 午夜av观看不卡| av国产久精品久网站免费入址| 国产免费又黄又爽又色| 久久精品亚洲av国产电影网| 大片免费播放器 马上看| 国产又爽黄色视频| 熟女电影av网| 久久久久国产一级毛片高清牌| 亚洲精品日本国产第一区| 少妇的逼水好多| 亚洲欧洲国产日韩| 国产片特级美女逼逼视频| 美女高潮到喷水免费观看| 在线观看三级黄色| 国产精品国产三级国产专区5o| 黄色一级大片看看| 精品午夜福利在线看| 欧美日韩亚洲高清精品| 国产成人精品无人区| 久久97久久精品| 在线观看免费视频网站a站| 欧美bdsm另类| 少妇人妻精品综合一区二区| 色94色欧美一区二区| 搡老乐熟女国产| 九九爱精品视频在线观看| 中文字幕人妻丝袜制服| 免费av中文字幕在线| 飞空精品影院首页| 高清黄色对白视频在线免费看| 久久久久视频综合| 天堂俺去俺来也www色官网| 人人妻人人澡人人爽人人夜夜| 国产一区二区在线观看av| 99热全是精品| 成人免费观看视频高清| 菩萨蛮人人尽说江南好唐韦庄| 国产 精品1| 国产精品.久久久| 高清av免费在线| 欧美日韩亚洲高清精品| 精品福利永久在线观看| 精品少妇内射三级| 高清视频免费观看一区二区| 亚洲av福利一区| 亚洲国产精品国产精品| 国产精品国产三级专区第一集| 在线观看美女被高潮喷水网站| 高清在线视频一区二区三区| 欧美日韩成人在线一区二区| 亚洲四区av| 国产精品.久久久| 成人影院久久| 美女中出高潮动态图| 青草久久国产| 国产黄色视频一区二区在线观看| 午夜福利,免费看| 777米奇影视久久| 欧美亚洲日本最大视频资源| 久久99一区二区三区| 国产在视频线精品| 国产高清不卡午夜福利| 啦啦啦视频在线资源免费观看| 久久婷婷青草| 啦啦啦在线观看免费高清www| 国产深夜福利视频在线观看| 中文欧美无线码| 成年人午夜在线观看视频| 黄色配什么色好看| 丰满迷人的少妇在线观看| 久久久久久久亚洲中文字幕| 久久久久久久久久久久大奶| 免费观看无遮挡的男女| 18禁国产床啪视频网站| 亚洲精品乱久久久久久| 久久精品夜色国产| 免费观看在线日韩| 在线观看美女被高潮喷水网站| 午夜精品国产一区二区电影| 国产精品偷伦视频观看了| 久久久久精品性色| 亚洲在久久综合| 欧美日韩亚洲国产一区二区在线观看 | 亚洲av成人精品一二三区| 在线观看www视频免费| 男女啪啪激烈高潮av片| 婷婷色综合www| 人人妻人人澡人人爽人人夜夜| 亚洲av电影在线观看一区二区三区| 国产欧美日韩一区二区三区在线| 久久人妻熟女aⅴ| 久久 成人 亚洲| 久久午夜福利片| av视频免费观看在线观看| 少妇的丰满在线观看| 黄色 视频免费看| 婷婷色麻豆天堂久久| av女优亚洲男人天堂| 黑丝袜美女国产一区| 精品第一国产精品| 如何舔出高潮| 高清黄色对白视频在线免费看| 搡老乐熟女国产| 女人被躁到高潮嗷嗷叫费观| 电影成人av| 2021少妇久久久久久久久久久| 亚洲成av片中文字幕在线观看 | 不卡av一区二区三区| 欧美日韩综合久久久久久| 人人妻人人添人人爽欧美一区卜| 亚洲伊人色综图| av免费观看日本| 国产精品免费视频内射| 国产精品一国产av| 高清在线视频一区二区三区| 国产亚洲午夜精品一区二区久久| av视频免费观看在线观看| 黄色怎么调成土黄色| 伦理电影大哥的女人| 精品久久久精品久久久| 母亲3免费完整高清在线观看 | 看十八女毛片水多多多| 人妻人人澡人人爽人人| 亚洲精品自拍成人| 男人操女人黄网站| 少妇 在线观看| 最黄视频免费看| 中文字幕亚洲精品专区| 午夜av观看不卡| 妹子高潮喷水视频| 视频在线观看一区二区三区| 国产精品熟女久久久久浪| 精品国产一区二区三区久久久樱花| 日本av手机在线免费观看| 久久精品国产亚洲av涩爱| 在线观看免费高清a一片| 中文字幕人妻丝袜制服| 亚洲精品成人av观看孕妇| 91aial.com中文字幕在线观看| 丝袜脚勾引网站| 国产成人精品久久二区二区91 | 精品国产乱码久久久久久小说| 免费日韩欧美在线观看| 国产男女超爽视频在线观看| 两个人看的免费小视频| 午夜免费观看性视频| 99热网站在线观看| 亚洲图色成人| 一区在线观看完整版| 久久人人爽人人片av| 纵有疾风起免费观看全集完整版| 王馨瑶露胸无遮挡在线观看| 日本黄色日本黄色录像| 9色porny在线观看| 日韩在线高清观看一区二区三区| 精品一区二区三区四区五区乱码 | 天堂中文最新版在线下载| 精品卡一卡二卡四卡免费| 夫妻性生交免费视频一级片| 国精品久久久久久国模美| 人人妻人人爽人人添夜夜欢视频| 日韩三级伦理在线观看| 久久精品国产鲁丝片午夜精品| 99香蕉大伊视频| 亚洲第一av免费看| 搡老乐熟女国产| 久久精品人人爽人人爽视色| av女优亚洲男人天堂| 在线观看免费日韩欧美大片| 国产日韩欧美亚洲二区| 一级毛片电影观看| 久久久久久久久久久免费av| 一本大道久久a久久精品| 亚洲人成77777在线视频| 欧美日韩国产mv在线观看视频| 国产毛片在线视频| 爱豆传媒免费全集在线观看| 精品亚洲成a人片在线观看| 亚洲国产av新网站| videos熟女内射| 十分钟在线观看高清视频www| 一区二区三区激情视频| 超色免费av| 国产乱人偷精品视频| 夫妻午夜视频| 看免费成人av毛片| 欧美日韩av久久| 亚洲天堂av无毛| 国产精品久久久av美女十八| 校园人妻丝袜中文字幕| 国产又色又爽无遮挡免| 黑人欧美特级aaaaaa片| 日日摸夜夜添夜夜爱| 国产精品久久久av美女十八| 日本午夜av视频| 久久人人97超碰香蕉20202| 欧美bdsm另类| 欧美日韩亚洲高清精品| 香蕉国产在线看| 亚洲精品第二区| 日韩av不卡免费在线播放| 曰老女人黄片| 久久精品国产亚洲av高清一级| 国产成人精品婷婷| 亚洲国产看品久久| 亚洲欧洲日产国产| 亚洲视频免费观看视频| 丰满乱子伦码专区| 国产又色又爽无遮挡免| 搡老乐熟女国产| 高清视频免费观看一区二区| 欧美日韩视频高清一区二区三区二| 久久这里有精品视频免费| 有码 亚洲区| 少妇的逼水好多| 国产视频首页在线观看| 国产午夜精品一二区理论片| 两个人看的免费小视频| 国产毛片在线视频| 综合色丁香网| 欧美+日韩+精品| 少妇猛男粗大的猛烈进出视频| 亚洲中文av在线| 中文乱码字字幕精品一区二区三区| 美女大奶头黄色视频| 欧美成人精品欧美一级黄| 爱豆传媒免费全集在线观看| 国产欧美亚洲国产| 久久久久精品性色| 一区二区av电影网| 亚洲,欧美精品.| 久久国内精品自在自线图片| 亚洲天堂av无毛| 国产精品麻豆人妻色哟哟久久| 久久久精品94久久精品| 看十八女毛片水多多多| 亚洲三区欧美一区| av免费在线看不卡| 高清视频免费观看一区二区| 在现免费观看毛片| 免费在线观看黄色视频的| 成人午夜精彩视频在线观看| 久久国产亚洲av麻豆专区| 国产极品天堂在线| 女人高潮潮喷娇喘18禁视频| 日本av手机在线免费观看| 久久精品国产亚洲av高清一级| 婷婷色av中文字幕| 国产精品人妻久久久影院| 九草在线视频观看| 一二三四在线观看免费中文在| 欧美日韩精品成人综合77777| 久久久a久久爽久久v久久| 9色porny在线观看| 人成视频在线观看免费观看| 熟妇人妻不卡中文字幕| 国产精品一区二区在线不卡| 亚洲第一区二区三区不卡| 纯流量卡能插随身wifi吗| 国产精品欧美亚洲77777| 美女脱内裤让男人舔精品视频| 9热在线视频观看99| 99热国产这里只有精品6| 尾随美女入室| av有码第一页| 日韩中文字幕欧美一区二区 | 亚洲在久久综合|