• <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ù)雜度研究回顧與評述
    基于控制流隱藏的代碼迷惑
    国内精品一区二区在线观看| 久久久a久久爽久久v久久| 特大巨黑吊av在线直播| 国产伦精品一区二区三区四那| 三级经典国产精品| av在线观看视频网站免费| 七月丁香在线播放| 夜夜爽夜夜爽视频| 夫妻性生交免费视频一级片| 日韩中字成人| 日本av手机在线免费观看| 午夜激情福利司机影院| 少妇的逼水好多| 黄色日韩在线| 只有这里有精品99| 欧美一区二区亚洲| 青春草国产在线视频| 精品国内亚洲2022精品成人| 永久免费av网站大全| 我的女老师完整版在线观看| 国产在视频线精品| 成年av动漫网址| 熟妇人妻久久中文字幕3abv| 97人妻精品一区二区三区麻豆| 成人特级av手机在线观看| 亚洲av一区综合| 午夜老司机福利剧场| 毛片女人毛片| 99久久精品国产国产毛片| 中文乱码字字幕精品一区二区三区 | 国内精品一区二区在线观看| 网址你懂的国产日韩在线| 日本黄大片高清| 精品人妻偷拍中文字幕| 国产成人精品福利久久| 欧美日韩在线观看h| 99热网站在线观看| 国产一区二区亚洲精品在线观看| 黑人高潮一二区| 亚洲av成人av| 少妇裸体淫交视频免费看高清| 午夜福利视频1000在线观看| 国产精品久久久久久精品电影小说 | 中文字幕制服av| 国产色婷婷99| 人妻制服诱惑在线中文字幕| 日韩av在线免费看完整版不卡| 又大又黄又爽视频免费| 色综合站精品国产| av在线播放精品| 国产精品美女特级片免费视频播放器| 国产一级毛片在线| 亚洲国产精品国产精品| 又爽又黄a免费视频| 老女人水多毛片| 午夜免费观看性视频| 一个人看的www免费观看视频| 蜜臀久久99精品久久宅男| 国产精品一及| 国产视频首页在线观看| av一本久久久久| 91久久精品国产一区二区三区| 久久6这里有精品| 97热精品久久久久久| 日韩不卡一区二区三区视频在线| 国产av不卡久久| 淫秽高清视频在线观看| 国产免费视频播放在线视频 | 大陆偷拍与自拍| 国产毛片a区久久久久| 国产熟女欧美一区二区| 男的添女的下面高潮视频| 亚洲精品自拍成人| 精品久久久久久电影网| 国产精品国产三级国产av玫瑰| 乱人视频在线观看| 最后的刺客免费高清国语| 毛片女人毛片| 嘟嘟电影网在线观看| 精品久久久久久久久久久久久| 直男gayav资源| 大香蕉久久网| 22中文网久久字幕| 久久精品夜夜夜夜夜久久蜜豆| 日韩三级伦理在线观看| 久久久久久国产a免费观看| 国产黄片视频在线免费观看| 大片免费播放器 马上看| 国产麻豆成人av免费视频| 欧美 日韩 精品 国产| 欧美 日韩 精品 国产| 亚洲av在线观看美女高潮| 亚洲在线观看片| 国内精品一区二区在线观看| 国产精品综合久久久久久久免费| 爱豆传媒免费全集在线观看| 午夜亚洲福利在线播放| 午夜福利在线观看吧| 91久久精品国产一区二区成人| 97精品久久久久久久久久精品| 狂野欧美白嫩少妇大欣赏| 国产在视频线在精品| 国产伦理片在线播放av一区| 日本熟妇午夜| 国产av码专区亚洲av| 亚洲精品日韩av片在线观看| 九九久久精品国产亚洲av麻豆| 日韩中字成人| 中文欧美无线码| 国产精品久久久久久精品电影| 亚洲怡红院男人天堂| 国产 一区精品| 国产不卡一卡二| 亚洲精品久久午夜乱码| 简卡轻食公司| 久久久久久久久久久丰满| 天天一区二区日本电影三级| 亚洲精品日韩在线中文字幕| 亚洲怡红院男人天堂| 精品一区在线观看国产| 亚洲精品影视一区二区三区av| 三级毛片av免费| 又黄又爽又刺激的免费视频.| 伊人久久精品亚洲午夜| 22中文网久久字幕| 丰满人妻一区二区三区视频av| 国产黄色小视频在线观看| 亚洲精品日本国产第一区| 三级国产精品片| 韩国高清视频一区二区三区| 久久久久久久久久久丰满| 直男gayav资源| 91狼人影院| 欧美最新免费一区二区三区| 亚洲精品亚洲一区二区| 美女国产视频在线观看| 综合色丁香网| 国产成人aa在线观看| 国产色婷婷99| 我的老师免费观看完整版| 亚洲国产精品专区欧美| 久久精品久久精品一区二区三区| 精品欧美国产一区二区三| 久久草成人影院| 国产淫语在线视频| 成年版毛片免费区| 国产永久视频网站| 丰满人妻一区二区三区视频av| 观看美女的网站| 男插女下体视频免费在线播放| 国产视频内射| 国产大屁股一区二区在线视频| 80岁老熟妇乱子伦牲交| 中国美白少妇内射xxxbb| 国产成人精品福利久久| 天堂中文最新版在线下载 | 欧美丝袜亚洲另类| 亚洲图色成人| 97超碰精品成人国产| 亚洲经典国产精华液单| 国产极品天堂在线| 亚洲av免费在线观看| 日本欧美国产在线视频| 免费观看精品视频网站| h日本视频在线播放| 91久久精品电影网| 中文欧美无线码| 国产成人精品婷婷| 亚洲欧美日韩卡通动漫| av国产久精品久网站免费入址| a级毛色黄片| 极品少妇高潮喷水抽搐| 欧美高清成人免费视频www| 欧美人与善性xxx| 国产精品综合久久久久久久免费| 最近最新中文字幕免费大全7| av在线播放精品| 精品久久久久久久末码| 亚洲av不卡在线观看| 国产精品一区二区三区四区免费观看| 汤姆久久久久久久影院中文字幕 | 激情 狠狠 欧美| 国产成人a∨麻豆精品| 在线免费观看不下载黄p国产| 大又大粗又爽又黄少妇毛片口| 日韩国内少妇激情av| 精品一区二区三区人妻视频| freevideosex欧美| 黑人高潮一二区| 午夜福利在线观看吧| 免费黄色在线免费观看| 天堂影院成人在线观看| 精品酒店卫生间| 街头女战士在线观看网站| 亚州av有码| 亚洲国产精品成人综合色| 在线免费观看不下载黄p国产| 夜夜爽夜夜爽视频| 国产高清不卡午夜福利| 只有这里有精品99| 国产一区二区亚洲精品在线观看| av国产久精品久网站免费入址| 欧美成人精品欧美一级黄| 人人妻人人看人人澡| 日本-黄色视频高清免费观看| 日韩制服骚丝袜av| 免费大片18禁| 极品教师在线视频| 欧美激情国产日韩精品一区| 永久免费av网站大全| 亚洲av.av天堂| 深爱激情五月婷婷| 最近的中文字幕免费完整| 成年女人在线观看亚洲视频 | 一级毛片黄色毛片免费观看视频| 亚洲av.av天堂| 色播亚洲综合网| 蜜桃亚洲精品一区二区三区| 久久久精品免费免费高清| 国产av码专区亚洲av| 99久久中文字幕三级久久日本| 欧美日韩国产mv在线观看视频 | 人妻系列 视频| 可以在线观看毛片的网站| 日本黄大片高清| 久久久国产一区二区| 国产淫片久久久久久久久| 可以在线观看毛片的网站| 中文字幕av成人在线电影| 91久久精品国产一区二区三区| 午夜激情福利司机影院| 久久久欧美国产精品| 永久免费av网站大全| 床上黄色一级片| 好男人在线观看高清免费视频| 少妇熟女aⅴ在线视频| 777米奇影视久久| 晚上一个人看的免费电影| 日韩欧美 国产精品| 91久久精品国产一区二区成人| 日韩一区二区视频免费看| 亚洲国产av新网站| 99久国产av精品| av网站免费在线观看视频 | av专区在线播放| 欧美bdsm另类| 免费看av在线观看网站| av在线蜜桃| 免费观看无遮挡的男女| 久久久久久久久久成人| 日韩av免费高清视频| 中文字幕免费在线视频6| 91久久精品电影网| 大香蕉97超碰在线| 人体艺术视频欧美日本| 欧美zozozo另类| 小蜜桃在线观看免费完整版高清| 色综合亚洲欧美另类图片| 人妻系列 视频| 国产一级毛片七仙女欲春2| 一二三四中文在线观看免费高清| 色5月婷婷丁香| 777米奇影视久久| 亚洲久久久久久中文字幕| 亚洲精品日韩在线中文字幕| 午夜爱爱视频在线播放| 天堂中文最新版在线下载 | 99久久精品国产国产毛片| 十八禁网站网址无遮挡 | 国产午夜精品论理片| 美女大奶头视频| 午夜福利视频精品| 国产一区二区三区综合在线观看 | 在线a可以看的网站| 国产精品精品国产色婷婷| 欧美97在线视频| 日韩不卡一区二区三区视频在线| 极品教师在线视频| 国产亚洲5aaaaa淫片| 2021少妇久久久久久久久久久| 岛国毛片在线播放| 免费看美女性在线毛片视频| 日韩在线高清观看一区二区三区| 色综合站精品国产| 亚洲丝袜综合中文字幕| 午夜激情久久久久久久| 欧美一级a爱片免费观看看| 日本wwww免费看| 亚洲成人一二三区av| av网站免费在线观看视频 | 国产成人freesex在线| 一级a做视频免费观看| 又爽又黄a免费视频| av免费观看日本| 亚洲人与动物交配视频| 一区二区三区高清视频在线| 中文乱码字字幕精品一区二区三区 | 最近最新中文字幕免费大全7| 女人被狂操c到高潮| av网站免费在线观看视频 | 免费看光身美女| 久久久久久国产a免费观看| 国产 一区 欧美 日韩| 美女主播在线视频| 嘟嘟电影网在线观看| 国产黄色免费在线视频| 亚洲人与动物交配视频| 久久久亚洲精品成人影院| 久久国内精品自在自线图片| 你懂的网址亚洲精品在线观看| 欧美激情在线99| 国产伦理片在线播放av一区| 乱人视频在线观看| 中文资源天堂在线| 久久久久久久午夜电影| 国产在线男女| 九色成人免费人妻av| 午夜久久久久精精品| 男人舔女人下体高潮全视频| 特大巨黑吊av在线直播| 亚洲精品日韩av片在线观看| 蜜桃亚洲精品一区二区三区| 国产黄频视频在线观看| 国产精品一二三区在线看| 男女啪啪激烈高潮av片| 午夜爱爱视频在线播放| 国产免费福利视频在线观看| 春色校园在线视频观看| 亚洲经典国产精华液单| 一区二区三区免费毛片| 亚洲成色77777| 两个人视频免费观看高清| 日日摸夜夜添夜夜添av毛片| 深爱激情五月婷婷| 久久久久久久久久成人| 日本爱情动作片www.在线观看| 中国美白少妇内射xxxbb| 男女国产视频网站| 亚洲欧美成人精品一区二区| 青春草亚洲视频在线观看| 中文字幕av在线有码专区| 亚洲av成人av| av专区在线播放| 亚洲av成人av| 可以在线观看毛片的网站| 亚洲精品色激情综合| 高清在线视频一区二区三区| 色吧在线观看| av在线老鸭窝| 日韩三级伦理在线观看| 丝袜喷水一区| 爱豆传媒免费全集在线观看| 夜夜爽夜夜爽视频| 一级a做视频免费观看| 亚洲三级黄色毛片| 精品久久久久久久久av| 午夜免费观看性视频| 日韩av免费高清视频| 夜夜爽夜夜爽视频| 国产黄a三级三级三级人| 国产成人精品一,二区| 国产成人免费观看mmmm| 国产亚洲av片在线观看秒播厂 | 成人二区视频| 黄片wwwwww| 中文字幕亚洲精品专区| 亚洲欧美成人综合另类久久久| 精品99又大又爽又粗少妇毛片| 婷婷色综合大香蕉| 99热这里只有精品一区| 久久久久久久久大av| 精品亚洲乱码少妇综合久久| 亚洲一级一片aⅴ在线观看| 在线观看人妻少妇| 亚洲熟妇中文字幕五十中出| 美女被艹到高潮喷水动态| 国产av不卡久久| 亚洲在线观看片| 国产精品人妻久久久影院| 十八禁国产超污无遮挡网站| 亚洲自偷自拍三级| 美女被艹到高潮喷水动态| 色哟哟·www| 免费人成在线观看视频色| 久久人人爽人人爽人人片va| 亚洲人成网站在线观看播放| 激情 狠狠 欧美| 中国美白少妇内射xxxbb| 深爱激情五月婷婷| 韩国av在线不卡| 久久热精品热| 99热全是精品| 自拍偷自拍亚洲精品老妇| 国产乱来视频区| 日日啪夜夜撸| 国产单亲对白刺激| 26uuu在线亚洲综合色| 成人亚洲精品av一区二区| 欧美日韩在线观看h| 免费看日本二区| 少妇被粗大猛烈的视频| 精品久久久久久久久久久久久| 高清日韩中文字幕在线| 99热这里只有是精品50| 日本猛色少妇xxxxx猛交久久| 欧美潮喷喷水| 日韩强制内射视频| 国产成人freesex在线| 丝袜美腿在线中文| 国产熟女欧美一区二区| 亚洲欧美中文字幕日韩二区| 蜜臀久久99精品久久宅男| 干丝袜人妻中文字幕| 美女主播在线视频| 国产在视频线在精品| 97超视频在线观看视频| 一级毛片aaaaaa免费看小| 国产精品国产三级国产av玫瑰| 乱系列少妇在线播放| 91在线精品国自产拍蜜月| 熟妇人妻不卡中文字幕| 免费观看在线日韩| 激情 狠狠 欧美| 真实男女啪啪啪动态图| 免费观看a级毛片全部| 最近的中文字幕免费完整| 插逼视频在线观看| 一区二区三区四区激情视频| 中文字幕av在线有码专区| 中文精品一卡2卡3卡4更新| 亚洲精品乱码久久久v下载方式| 人人妻人人澡欧美一区二区| 成年人午夜在线观看视频 | 自拍偷自拍亚洲精品老妇| 简卡轻食公司| 高清午夜精品一区二区三区| 69人妻影院| 久久亚洲国产成人精品v| 高清av免费在线| 亚洲人成网站高清观看| 激情五月婷婷亚洲| 十八禁网站网址无遮挡 | 日韩欧美 国产精品| 秋霞在线观看毛片| 91av网一区二区| 别揉我奶头 嗯啊视频| 亚洲精品乱久久久久久| 午夜免费观看性视频| 深爱激情五月婷婷| .国产精品久久| 99久国产av精品国产电影| 男女边摸边吃奶| 麻豆av噜噜一区二区三区| 看非洲黑人一级黄片| 精品久久久久久久久久久久久| 欧美精品国产亚洲| 色5月婷婷丁香| 在线观看免费高清a一片| 日本免费在线观看一区| 国产中年淑女户外野战色| 亚洲成人中文字幕在线播放| 中文在线观看免费www的网站| 99热这里只有是精品50| 亚洲欧美成人综合另类久久久| 十八禁国产超污无遮挡网站| 久久久久久久午夜电影| 黄色配什么色好看| 亚洲最大成人手机在线| 最近手机中文字幕大全| 免费人成在线观看视频色| 欧美性猛交╳xxx乱大交人| 波多野结衣巨乳人妻| 国产精品女同一区二区软件| 成人高潮视频无遮挡免费网站| 国模一区二区三区四区视频| 中文天堂在线官网| 女人被狂操c到高潮| 久久99热这里只有精品18| 国产色婷婷99| 视频中文字幕在线观看| .国产精品久久| 成人av在线播放网站| 亚洲欧美精品专区久久| 天堂影院成人在线观看| 男女国产视频网站| 久久久久久久久久久免费av| 在线免费十八禁| 欧美日韩在线观看h| 尤物成人国产欧美一区二区三区| 麻豆国产97在线/欧美| 人妻一区二区av| 大片免费播放器 马上看| 三级国产精品欧美在线观看| 欧美3d第一页| 七月丁香在线播放| 国产成人午夜福利电影在线观看| 丝袜美腿在线中文| 国产高潮美女av| 日本黄色片子视频| 99热网站在线观看| 亚洲人成网站在线观看播放| 午夜福利视频精品| 国产爱豆传媒在线观看| 91精品国产九色| 日韩欧美三级三区| 国产午夜精品论理片| av国产久精品久网站免费入址| 久久久久久九九精品二区国产| 蜜桃亚洲精品一区二区三区| 亚洲精品色激情综合| 久久久久免费精品人妻一区二区| 最后的刺客免费高清国语| 男人舔奶头视频| 午夜精品国产一区二区电影 | 狂野欧美激情性xxxx在线观看| 国产精品.久久久| 亚洲精品日本国产第一区| 亚洲熟女精品中文字幕| 天堂网av新在线| 少妇裸体淫交视频免费看高清| 三级男女做爰猛烈吃奶摸视频| 人妻少妇偷人精品九色| 日本午夜av视频| 国产综合懂色| 免费大片18禁| 九九在线视频观看精品| 99热6这里只有精品| 免费播放大片免费观看视频在线观看| 秋霞伦理黄片| 毛片一级片免费看久久久久| 中文天堂在线官网| 熟妇人妻不卡中文字幕| 色综合站精品国产| .国产精品久久| 午夜激情福利司机影院| 99热网站在线观看| 久久久久免费精品人妻一区二区| 午夜免费激情av| av在线观看视频网站免费| 亚洲国产精品国产精品| 乱人视频在线观看| 夜夜看夜夜爽夜夜摸| 成人鲁丝片一二三区免费| 日韩大片免费观看网站| 欧美激情国产日韩精品一区| 男人和女人高潮做爰伦理| 91aial.com中文字幕在线观看| 精品人妻一区二区三区麻豆| 最近视频中文字幕2019在线8| 精品国产一区二区三区久久久樱花 | freevideosex欧美| 亚洲天堂国产精品一区在线| 最近视频中文字幕2019在线8| 国产熟女欧美一区二区| 国产精品国产三级国产专区5o| 高清日韩中文字幕在线| 麻豆成人av视频| 国产亚洲精品久久久com| 亚洲精品日韩av片在线观看| 精品国内亚洲2022精品成人| 一个人观看的视频www高清免费观看| 边亲边吃奶的免费视频| 亚洲不卡免费看| 综合色av麻豆| 日本免费在线观看一区| 蜜桃亚洲精品一区二区三区| 精品久久久久久久久av| 波野结衣二区三区在线| 天堂俺去俺来也www色官网 | 日本三级黄在线观看| 噜噜噜噜噜久久久久久91| 国产有黄有色有爽视频| 蜜桃亚洲精品一区二区三区| 精品久久国产蜜桃| 成人亚洲精品一区在线观看 | 国产色婷婷99| 一二三四中文在线观看免费高清| 亚洲精品亚洲一区二区| 又爽又黄a免费视频| 超碰av人人做人人爽久久| 成年女人看的毛片在线观看| 特大巨黑吊av在线直播| 国产一区二区亚洲精品在线观看| 亚洲成人av在线免费| 青春草国产在线视频| 五月玫瑰六月丁香| 白带黄色成豆腐渣| 99热全是精品| 五月玫瑰六月丁香| 三级经典国产精品| 日韩一区二区三区影片| 精品午夜福利在线看| 伦理电影大哥的女人| 在线免费观看不下载黄p国产| 免费电影在线观看免费观看| 久久精品国产亚洲av涩爱| 人妻少妇偷人精品九色| 日日撸夜夜添| 国产一区二区三区综合在线观看 | 免费高清在线观看视频在线观看| 日本黄色片子视频| 亚洲欧美精品专区久久| 欧美3d第一页| 精品一区二区免费观看| 一级爰片在线观看| 精品一区在线观看国产| 日韩,欧美,国产一区二区三区| 欧美日韩国产mv在线观看视频 | 午夜久久久久精精品| 一级a做视频免费观看| 亚洲,欧美,日韩| 97热精品久久久久久| 精品人妻偷拍中文字幕| 极品教师在线视频| 3wmmmm亚洲av在线观看|