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

    基于符號(hào)執(zhí)行和N-scope復(fù)雜度的代碼混淆度量方法

    2022-02-04 06:23:18肖玉強(qiáng)郭云飛王亞文
    關(guān)鍵詞:程序方法

    肖玉強(qiáng),郭云飛,王亞文

    基于符號(hào)執(zhí)行和-scope復(fù)雜度的代碼混淆度量方法

    肖玉強(qiáng),郭云飛,王亞文

    (信息工程大學(xué),河南 鄭州 450001)

    代碼混淆可有效對(duì)抗逆向工程等各類MATE攻擊威脅,作為攻擊緩和性質(zhì)的內(nèi)生安全技術(shù)發(fā)展較為成熟,對(duì)代碼混淆效果的合理度量具有重要價(jià)值。代碼混淆度量研究相對(duì)較少,針對(duì)代碼混淆彈性的度量方法與泛化性、實(shí)用性度量方法相對(duì)缺乏。符號(hào)執(zhí)行技術(shù)廣泛應(yīng)用于反混淆攻擊,其生成遍歷程序完整路徑輸入測(cè)試集的難度可為混淆彈性度量提供參考,然而基于程序嵌套結(jié)構(gòu)的對(duì)抗技術(shù)可顯著降低符號(hào)執(zhí)行效率,增加其混淆彈性參考誤差。針對(duì)上述問題,提出結(jié)合符號(hào)執(zhí)行技術(shù)和-scope復(fù)雜度的代碼混淆度量方法,該方法首先基于程序符號(hào)執(zhí)行時(shí)間定義程序混淆彈性;其次提出適配符號(hào)執(zhí)行的-scope復(fù)雜度,定義程序混淆強(qiáng)度同時(shí)增強(qiáng)符號(hào)執(zhí)行對(duì)多層嵌套結(jié)構(gòu)程序的混淆彈性度量魯棒性;進(jìn)而提出結(jié)合動(dòng)態(tài)分析與靜態(tài)分析的混淆效果關(guān)聯(lián)性分析,通過對(duì)程序進(jìn)行符號(hào)執(zhí)行與控制流圖提取量化混淆效果。面向C程序構(gòu)建了該度量方法的一種實(shí)現(xiàn)框架并驗(yàn)證,實(shí)驗(yàn)對(duì)3個(gè)公開程序集及其混淆后程序集約4000個(gè)程序進(jìn)行混淆效果度量,度量結(jié)果表明,提出的度量方法在較好地刻畫混淆效果的同時(shí)擁有一定的泛化能力與實(shí)用價(jià)值;模擬真實(shí)混淆應(yīng)用場(chǎng)景給出了該度量方法的使用樣例,為混淆技術(shù)使用人員提供有效的混淆技術(shù)度量與技術(shù)配置參考。

    代碼混淆;混淆度量;符號(hào)執(zhí)行;-scope

    0 引言

    代碼混淆是以對(duì)抗軟件面臨的逆向工程和篡改攻擊等威脅為目的,對(duì)程序進(jìn)行等價(jià)語(yǔ)義轉(zhuǎn)換的安全技術(shù)。近年來,軟件技術(shù)的發(fā)展與軟件市場(chǎng)需求的擴(kuò)大帶來了巨大的經(jīng)濟(jì)效益,攻擊者和安全人員隨之進(jìn)行相應(yīng)的安全博弈和技術(shù)更新,代碼混淆技術(shù)作為軟件安全技術(shù)受到了關(guān)注。具體來說,以軟件篡改和逆向攻擊為代表的MATE(man-at-the-end)[1]攻擊建立在軟件和主機(jī)的使用權(quán)限之上,其多樣性的攻擊形式難以被預(yù)測(cè),使傳統(tǒng)的防御形式難以招架,而代碼混淆作為內(nèi)生安全技術(shù),在不改變軟件功能的情況下更改軟件的內(nèi)容與結(jié)構(gòu),以增加MATE攻擊的難度和成本,受到安全攻守兩方的重視并廣泛應(yīng)用。

    代碼混淆技術(shù)發(fā)展了近30年,研究人員開發(fā)了包括控制流混淆[2]、關(guān)聯(lián)混淆[4]、數(shù)據(jù)混淆[5]、布局混淆[7]等方法在內(nèi)的眾多混淆技術(shù),以Tigress、LLVM-obfuscator、VMProtect等為代表的各類混淆集成工具,為具有軟件安全需求的用戶提供了多樣化選擇。值得注意的是,代碼混淆本質(zhì)上并非絕對(duì)安全,而是混淆者與反混淆者基于資源的技術(shù)博弈,研究表明擁有充足資源的攻擊者在足夠長(zhǎng)時(shí)間內(nèi)可以攻破絕大多數(shù)混淆[8]。盡管代碼混淆的各類技術(shù)趨于成熟,除對(duì)混淆技術(shù)進(jìn)行邏輯說明[9]外,目前對(duì)混淆效果的相關(guān)度量方法與研究仍相對(duì)較少,缺乏實(shí)用性混淆度量方法,使混淆使用者無(wú)法較準(zhǔn)確地評(píng)價(jià)混淆效果[10],造成為求安全“貪得無(wú)厭式”疊加大量混淆方法或?yàn)楸P省巴妒蠹善魇健鄙偌踊虿患踊煜木骄砙11]。從目的而言,不論逆向工程、篡改攻擊或復(fù)制攻擊,都需要對(duì)程序完整或部分邏輯進(jìn)行分析,即對(duì)程序“理解”。最早由Collberg等[12]定義的3個(gè)經(jīng)典度量指標(biāo)中:Potency強(qiáng)度指基于人類理解能力的程序混淆復(fù)雜度,Resilience彈性指基于機(jī)器反混淆技術(shù)的混淆抵抗力,Cost開銷指混淆帶來的額外資源開銷?,F(xiàn)有的混淆效果度量研究主要針對(duì)混淆強(qiáng)度, 而針對(duì)混淆彈性的度量相對(duì)較少,各種度量研究大致可分為以下4類。

    1) 其他度量指標(biāo)的遷移:研究人員?;诮?jīng)典軟件度量指標(biāo)與混淆強(qiáng)度的概念相似或出于經(jīng)驗(yàn)使用信息論度量指標(biāo)定義混淆強(qiáng)度指標(biāo)。如Anckaert等[13]提出了一種遷移一系列軟件復(fù)雜度指標(biāo),建立評(píng)估二進(jìn)制程序指令、控制流、數(shù)據(jù)流和數(shù)據(jù)在內(nèi)的復(fù)合度量方法,通過每個(gè)對(duì)象的對(duì)應(yīng)指標(biāo)綜合評(píng)價(jià)混淆強(qiáng)度;Kirk等[14]提出基于信息論的混淆度量方式,將Kolmogorov復(fù)雜度遷移應(yīng)用到二進(jìn)制文件上進(jìn)行混淆效果計(jì)算;Mohsen等[15]則進(jìn)一步用約束的Kolmogorov復(fù)雜度確定代碼混淆的規(guī)律性并給出代碼混淆的相應(yīng)規(guī)范化定義,進(jìn)而度量無(wú)自動(dòng)化工具影響下的混淆強(qiáng)度。

    2) 基于控制流圖的度量:控制流混淆在一些度量指標(biāo)中取得較高的混淆強(qiáng)度、彈性得分[16],而基于控制流圖的度量方法可以較準(zhǔn)確地描繪程序邏輯,表現(xiàn)出與程序語(yǔ)義的強(qiáng)相關(guān)性。Tsai等[18]將控制流混淆分解為一系列原子操作符并對(duì)眾多控制流混淆算法進(jìn)行形式化,提出了基于控制流圖的距離度量方案MGE并結(jié)合基于嵌套級(jí)別的混淆強(qiáng)度度量-Scope作為混淆效果的度量方案;Gao等[19]提出一種結(jié)合符號(hào)執(zhí)行與定理證明器的圖同構(gòu)技術(shù)對(duì)程序控制流進(jìn)行分析,從而對(duì)比二進(jìn)制文件的語(yǔ)義差異;Luo等[20]通過構(gòu)建符號(hào)執(zhí)行與定理證明器檢測(cè)二進(jìn)制基本塊的等價(jià)語(yǔ)義,以等價(jià)基本塊為基本元素計(jì)算混淆程序與原程序線性獨(dú)立路徑的最長(zhǎng)公共子序列,并將其比例作為路徑得分,從而計(jì)算函數(shù)與程序的相似性。

    3) 基于抽象語(yǔ)義的度量:Pucella等[21]通過對(duì)混淆防御能力及其面臨攻擊進(jìn)行精確定義,給出以多樣性為防御前提的攻擊性質(zhì)描述,通過類比展示了類型系統(tǒng)與混淆器的良好近似能力;Dalla等[22]推導(dǎo)了一個(gè)基于抽象解釋的格點(diǎn)隱藏性質(zhì)進(jìn)行混淆效能度量的理論模型,通過抽象指標(biāo)比較攻擊者,從而進(jìn)一步通過對(duì)比抽象解釋的隱藏屬性對(duì)代碼混淆的強(qiáng)度進(jìn)行測(cè)量,同時(shí)對(duì)代碼混淆度量模型進(jìn)行了一般性推廣,即任意程序轉(zhuǎn)換都可能作為潛在的代碼混淆器使用。

    4) 基于具體攻擊的度量:Viticchi′e等[23]對(duì)代碼混淆應(yīng)用的真實(shí)攻擊進(jìn)行對(duì)比實(shí)驗(yàn),通過比較攻擊混淆和原程序時(shí)間、攻擊成功效率對(duì)代碼混淆彈性進(jìn)行度量;Ceccato等[24]模擬真實(shí)逆向場(chǎng)景,實(shí)驗(yàn)中被測(cè)試人員理解經(jīng)過混淆后被反編譯與未經(jīng)過混淆反編譯的兩種Java代碼,反映出代碼混淆對(duì)抗逆向的有效程度以及緩解基于系統(tǒng)特性攻擊的價(jià)值;Banescu等[25]通過對(duì)比混淆前后符號(hào)執(zhí)行遍歷程序所有路徑執(zhí)行時(shí)間,來模擬自動(dòng)化攻擊與動(dòng)態(tài)分析場(chǎng)景,描述混淆程序?qū)狗?hào)執(zhí)行攻擊的代碼混淆彈性;Majumdar等[26]對(duì)防御切片技術(shù)的切片混淆方法提出了5個(gè)度量指標(biāo)并證明切片混淆的有效性。

    各種度量方式有其優(yōu)點(diǎn)和缺點(diǎn),如其他度量指標(biāo)的遷移展現(xiàn)出與混淆強(qiáng)度有較強(qiáng)的相關(guān)性,然而對(duì)混淆彈性的刻畫則可能存在較大偏差;基于控制流圖的度量通過結(jié)合基本塊符號(hào)執(zhí)行可以較好地刻畫程序間靜態(tài)相似性,然而該方法實(shí)際操作過程中需要遍歷程序不同路徑對(duì)基本塊一一比較,方法消耗的資源巨大,因此實(shí)際場(chǎng)景中不適合直接用作混淆度量,基于抽象語(yǔ)義的度量可將復(fù)雜混淆轉(zhuǎn)換通過語(yǔ)義近似及抽象屬性進(jìn)行描述,但該方法在使用時(shí)需根據(jù)實(shí)際情況進(jìn)行語(yǔ)義精確匹配,尚不能實(shí)際應(yīng)用該類方法;基于具體攻擊的度量對(duì)真實(shí)攻擊場(chǎng)景進(jìn)行了良好的復(fù)現(xiàn),然而人力的攻擊度量無(wú)法大規(guī)模應(yīng)用且度量結(jié)果較依賴于攻擊人員的水平。

    本文提出一種基于符號(hào)執(zhí)行-scope復(fù)雜度的代碼混淆度量方法,結(jié)合對(duì)程序的動(dòng)態(tài)執(zhí)行與靜態(tài)基本塊級(jí)控制流分析,通過計(jì)算程序-scope復(fù)雜度度量混淆強(qiáng)度與符號(hào)執(zhí)行評(píng)估混淆強(qiáng)度彈性,將這二者相互補(bǔ)充,能夠較好地描述混淆效果,實(shí)現(xiàn)真實(shí)場(chǎng)景下考慮自動(dòng)化分析的混淆效果度量方法。本文度量方法對(duì)總數(shù)超過4 000個(gè)混淆程序的程序集進(jìn)行了充分評(píng)估,表明該度量方法能較好刻畫混淆效果的同時(shí)擁有一定的泛化能力與實(shí)用價(jià)值。

    1 度量方法的提出

    1.1 基于符號(hào)執(zhí)行的混淆彈性度量

    符號(hào)執(zhí)行技術(shù)是通過符號(hào)值代替真實(shí)值作為程序輸入執(zhí)行程序的技術(shù),當(dāng)執(zhí)行到分支語(yǔ)句,則添加約束分別執(zhí)行分支路徑,盡可能遍歷所有路徑之后利用約束求解器及可達(dá)性推理求解程序各路徑輸入與路徑信息,達(dá)到進(jìn)一步分析程序與獲取程序執(zhí)行結(jié)果的目的。

    在分析大規(guī)?;煜绦驎r(shí),對(duì)分析工具的時(shí)間成本與泛化分析能力有一定要求,通過符號(hào)執(zhí)行技術(shù)可以較高效地尋找系統(tǒng)漏洞[27],其動(dòng)態(tài)分析的特性提供了優(yōu)秀的泛化分析能力并使一部分代碼混淆技術(shù)無(wú)效化,因而符號(hào)執(zhí)行被廣泛應(yīng)用于程序測(cè)試分析、二進(jìn)制分析及漏洞挖掘等安全相關(guān)領(lǐng)域,尤其對(duì)MATE攻擊者而言,代碼混淆作為其面對(duì)的主要防御手段之一,有重要的實(shí)用價(jià)值。例如,一些先進(jìn)的自動(dòng)化攻擊經(jīng)常針對(duì)如控制流混淆和代碼虛擬化等代碼混淆防御手段實(shí)現(xiàn)對(duì)抗措施,這些自動(dòng)化攻擊依賴于以程序有效輸入為先決條件的動(dòng)態(tài)分析,因此符號(hào)執(zhí)行通過生成測(cè)試集遍歷完整代碼路徑的能力是這些分析技術(shù)的前提,其執(zhí)行程序并生成完整測(cè)試集的難度可以作為混淆彈性指標(biāo)。

    符號(hào)執(zhí)行技術(shù)的目的在于完整的測(cè)試集生成,而路徑爆炸是其面臨的主要限制之一。具體來說,由于現(xiàn)實(shí)場(chǎng)景中軟件路徑數(shù)量龐大,執(zhí)行單個(gè)路徑的開銷,導(dǎo)致有限時(shí)間內(nèi)符號(hào)執(zhí)行引擎僅能執(zhí)行有限的路徑,從而降低符號(hào)執(zhí)行引擎的測(cè)試集生成效率;另外,研究人員為對(duì)抗符號(hào)執(zhí)行面向路徑爆炸特點(diǎn)的混淆算法,如Wang等[28]基于數(shù)學(xué)難題提出一種將符號(hào)值與循環(huán)邊界關(guān)聯(lián)的程序混淆方法,致使分析程序時(shí)符號(hào)執(zhí)行引擎路徑爆炸,Banescu等[25]提出基于軟件多樣化方法的輸入相關(guān)等價(jià)分支構(gòu)建混淆技術(shù),有效降低符號(hào)執(zhí)行效率?;谝陨涎芯?,對(duì)抗符號(hào)執(zhí)行的混淆技術(shù)與程序中的循環(huán)結(jié)構(gòu)存在較強(qiáng)的依賴或相關(guān)性,混淆技術(shù)研究者常借助該結(jié)構(gòu)增加符號(hào)執(zhí)行預(yù)測(cè)分支的數(shù)量和執(zhí)行次數(shù)而達(dá)到降低符號(hào)執(zhí)行效率的目的。

    1.2 N-scope復(fù)雜度

    -scope最早由Harrison和Megal[29]提出以程序的嵌套程度來計(jì)算連續(xù)程序的控制流圖復(fù)雜度,而嵌套程度與控制流圖的大小可以較恰當(dāng)描述程序控制流混淆方法造成的控制流圖變化。具體來說,嵌套復(fù)雜度可以計(jì)算程序的不同層次中的循環(huán)數(shù)量和大小,在實(shí)際應(yīng)用中研究人員給出了不同的定義方式[30]:采用以循環(huán)層數(shù)加權(quán)的循環(huán)計(jì)算方法作為嵌套值,將程序混淆前后嵌套差值與原程序嵌套值的比例作為嵌套復(fù)雜度的得分。

    這種計(jì)算方式未考慮控制流平坦化等方法降低程序嵌套度的控制流混淆方法,在得分為負(fù)值時(shí)以零計(jì)算;文獻(xiàn)[18]將一個(gè)基本塊的scope復(fù)雜度則定義為:

    1.3 代碼混淆效果度量方法

    本文提出基于兩種關(guān)聯(lián)性指標(biāo)的代碼混淆度量方法,在綜合符號(hào)執(zhí)行混淆彈性度量和控制復(fù)雜度度量?jī)?yōu)勢(shì)的基礎(chǔ)上,針對(duì)性地提出改進(jìn)的基于程序多層嵌套結(jié)構(gòu)的-scope復(fù)雜度,完善了現(xiàn)有符號(hào)執(zhí)行分析在代碼混淆彈性度量上的不足,同時(shí)給出符號(hào)執(zhí)行作為彈性度量指標(biāo)基于相對(duì)執(zhí)行時(shí)間的規(guī)范性定義。

    通過對(duì)兩種指標(biāo)的關(guān)聯(lián)性分析,不僅能夠清晰刻畫程序混淆前后的混淆彈性變化與控制流復(fù)雜度變化趨勢(shì),還可以解決單獨(dú)使用符號(hào)執(zhí)行彈性度量對(duì)多層嵌套程序的度量限制問題,提高了對(duì)此類程序的度量準(zhǔn)確性與度量效率。諸如-scope復(fù)雜度的程序控制流復(fù)雜度度量方法僅能對(duì)程序的靜態(tài)控制流進(jìn)行評(píng)價(jià)分析,而符號(hào)執(zhí)行作為動(dòng)態(tài)程序分析技術(shù)可以為整體混淆度量提供更全面的關(guān)聯(lián)性分析參考,平衡此類靜態(tài)分析指標(biāo)對(duì)控制流混淆技術(shù)的高敏感特征。

    相對(duì)現(xiàn)有的單一代碼混淆度量方法存在的缺點(diǎn)和限制,組合具有關(guān)聯(lián)性指標(biāo)的度量方法的評(píng)估更全面,如文獻(xiàn)[18]將-scope與混淆程序距離相結(jié)合,混淆距離計(jì)算提高了度量方法對(duì)程序執(zhí)行路徑的變化敏感度,改善了-scope復(fù)雜度對(duì)某些混淆方法不敏感的特點(diǎn)。需要說明的是,研究人員多遵循Collberg等[12]定義代碼混淆的指標(biāo)方法,即從混淆強(qiáng)度、混淆彈性、混淆開銷3個(gè)方面進(jìn)行混淆效果度量框架設(shè)計(jì),然而在實(shí)際場(chǎng)景中,攻擊者常將自動(dòng)化代碼分析工具和人工逆向分析結(jié)合,現(xiàn)有的代碼混淆度量方法研究則缺少對(duì)此場(chǎng)景的適配度量方法,從實(shí)用的角度出發(fā),混淆度量方法應(yīng)對(duì)特定混淆有較好的適配性和敏感性,同時(shí)將度量開銷限制在合理范圍內(nèi)。

    復(fù)雜混淆程序在符號(hào)執(zhí)行過程可能出現(xiàn)路徑爆炸等問題,導(dǎo)致符號(hào)執(zhí)行時(shí)間過長(zhǎng)或超時(shí),使得到的程序混淆彈性失去參考意義,因而設(shè)置最大符號(hào)執(zhí)行時(shí)間t為時(shí)間約束,得到約束的程序混淆彈性為

    本文考慮符號(hào)執(zhí)行在執(zhí)行程序嵌套邏輯的路徑與循環(huán)體的多層嵌套結(jié)構(gòu),首先定義式(1)中基于控制流圖的程序嵌套值中嵌套層數(shù)為

    算法1 DFS

    輸入 控制流圖,當(dāng)前節(jié)點(diǎn)v,初始節(jié)點(diǎn)0,當(dāng)前循環(huán)path,所有循環(huán)路徑looplist

    算法C_Nesting()計(jì)算了程序控制流圖中以基本塊為節(jié)點(diǎn)的程序嵌套值Cnesting,該問題可抽象為求解有向圖中所有環(huán)和計(jì)算環(huán)的嵌套度兩個(gè)子問題。本文首先對(duì)程序節(jié)點(diǎn)按照名稱排序并設(shè)置所有節(jié)點(diǎn)為未訪問狀態(tài)(算法2第3~5行),按此排序遍歷圖中節(jié)點(diǎn),將自環(huán)加入循環(huán)路徑后(算法2第8~9行),以當(dāng)前節(jié)點(diǎn)為根節(jié)點(diǎn)對(duì)圖進(jìn)行深度優(yōu)先搜索,在遍歷時(shí)只將排序大于根節(jié)點(diǎn)的鄰接點(diǎn)加入path中(算法1第1行),保證了DFS主循環(huán)只搜索最小節(jié)點(diǎn)為根節(jié)點(diǎn)的環(huán),同時(shí)訪問狀態(tài)的約束與設(shè)置,保證了環(huán)內(nèi)部不相交(算法1第2、7、11行),在求解得到所有環(huán)后對(duì)環(huán)列表遍歷計(jì)算每個(gè)環(huán)的被嵌套數(shù),按此嵌套數(shù)對(duì)環(huán)長(zhǎng)度加權(quán)求和得到程序的嵌套度。

    算法2 C_Nesting

    輸入 控制流圖

    輸出 嵌套值Cnesting

    本文提出的度量方法從混淆彈性和混淆強(qiáng)度兩個(gè)方面出發(fā),結(jié)合動(dòng)態(tài)分析與靜態(tài)分析對(duì)代碼混淆效果綜合度量,一方面結(jié)合符號(hào)執(zhí)行在真實(shí)逆向等攻擊場(chǎng)景的常用性與代碼混淆中程序控制流的關(guān)鍵性,使本度量方法具有真實(shí)場(chǎng)景下的應(yīng)用價(jià)值,另一方面針對(duì)單一度量方法的局限性,本度量方法使用符號(hào)執(zhí)行技術(shù)反映程序路徑執(zhí)行難度,提出適配符號(hào)執(zhí)行的-scope復(fù)雜度算法,在準(zhǔn)確表達(dá)程序嵌套度的同時(shí),針對(duì)符號(hào)執(zhí)行對(duì)抗技術(shù)依賴程序循環(huán)結(jié)構(gòu)的特點(diǎn),提高符號(hào)執(zhí)行度量的魯棒性。

    2 實(shí)驗(yàn)與討論

    2.1 度量方法實(shí)現(xiàn)

    本文使用程序混淆工具Tigress學(xué)術(shù)版本對(duì)實(shí)驗(yàn)程序進(jìn)行混淆,采用LLVM9版本的KLEE符號(hào)執(zhí)行引擎及與其適配的SMT約束求解器、klee-uclibc等作為本文實(shí)驗(yàn)的符號(hào)執(zhí)行環(huán)境,使用Jakstab開源二進(jìn)制反編譯工具與python庫(kù)pydot作為混淆文件的-Scope計(jì)算接口,度量方法實(shí)現(xiàn)流程如圖1所示。本文使用的實(shí)驗(yàn)環(huán)境為64位Ubuntu18.04操作系統(tǒng),4核頻率為3.20 GHz的Intel Core i7-8700 CPU及4 GB物理內(nèi)存,Window7操作系統(tǒng),12核頻率為3.20 GHz的Intel Core i7-8700 CPU及16.0 GB物理內(nèi)存。

    Tigress為C語(yǔ)言的源碼混淆工具,具備防御靜態(tài)與動(dòng)態(tài)逆向、反虛擬化攻擊等混淆功能,本文實(shí)驗(yàn)主要使用程序控制流混淆相關(guān)功能,使在混淆后的靜態(tài)控制流或動(dòng)態(tài)執(zhí)行路徑產(chǎn)生變化,增加分析程序真實(shí)控制流的難度;KLEE是基于LLVM編譯框架開發(fā)的動(dòng)態(tài)符號(hào)執(zhí)行引擎,對(duì)LLVMbitcode進(jìn)行操作,使用uclibc庫(kù)支持對(duì)常規(guī)C文件的符號(hào)執(zhí)行,本實(shí)驗(yàn)的符號(hào)執(zhí)行時(shí)間通過其內(nèi)置工具klee-stats獲得,實(shí)驗(yàn)中KLEE的-sym-arg參數(shù)統(tǒng)一設(shè)置為3;Jaskstab是一個(gè)基于抽象解釋的反匯編和靜態(tài)分析集成框架,采用自定義指令譯碼,可應(yīng)用于多種操作系統(tǒng),基于x86處理器處理32位的WindowsPE或linuxELF可執(zhí)行文件,基于此特性,本文使用Windows系統(tǒng)下MingW64支持的GCC將C語(yǔ)言源文件編譯為32位PE文件并交由Linux下Jakstab處理(如圖1所示)。Jakstab動(dòng)態(tài)地將機(jī)器碼轉(zhuǎn)換為低級(jí)中間語(yǔ)言,同時(shí)對(duì)增加的控制流進(jìn)行數(shù)據(jù)分析得到數(shù)據(jù)流信息,進(jìn)而定位預(yù)測(cè)分支目標(biāo)與代碼位置,本文實(shí)驗(yàn)使用該工具分析32位可執(zhí)行文件得到其.dot格式的控制流圖文件,進(jìn)而使用python的pydot模塊對(duì)其進(jìn)一步處理。

    圖1 度量方法實(shí)現(xiàn)流程

    Figure 1 Flow chart of measurement method implementation

    本文使用該度量方法對(duì)兩個(gè)公開程序集及其對(duì)應(yīng)的混淆程序集共約4 000個(gè)程序進(jìn)行了度量,程序集1中程序?yàn)楦鞣Nif分支和循環(huán)結(jié)構(gòu)的簡(jiǎn)單組合,程序集2為常見的基本算法,程序集3為使用Tigress混淆工具自動(dòng)生成的程序集。由于混淆程序代碼量可能為原程序的幾倍至幾十倍,受限于實(shí)驗(yàn)環(huán)境,程序集1、程序集2的原程序在100行以內(nèi),程序集3的原程序介于100行與200行之間,在防止程序集混淆版本程序過大導(dǎo)致本文實(shí)驗(yàn)環(huán)境中符號(hào)執(zhí)行引擎運(yùn)行超時(shí)的前提下,保證了程序樣本的多樣性。

    2.2 實(shí)驗(yàn)結(jié)果分析

    實(shí)驗(yàn)1 不同結(jié)構(gòu)原程序符號(hào)執(zhí)行

    使用程序集1具有不同結(jié)構(gòu)的未混淆程序進(jìn)行符號(hào)執(zhí)行,實(shí)驗(yàn)樣本結(jié)構(gòu)主要由if和loop兩種結(jié)構(gòu)進(jìn)行疊加或嵌套組成(不同結(jié)構(gòu)的程序樣本如圖2所示),同時(shí)為了保證符號(hào)執(zhí)行的時(shí)間差異性,約30%的程序樣本與輸入無(wú)關(guān),而按比例將約70%程序輸入與循環(huán)判斷條件及if分支判斷條件結(jié)合,增加符號(hào)執(zhí)行時(shí)間。

    圖2 不同結(jié)構(gòu)的程序樣本

    Figure 2 Program samples with different structures

    如表1所示,不同結(jié)構(gòu)程序符號(hào)執(zhí)行時(shí)間展現(xiàn)出明顯差異,在無(wú)嵌套狀態(tài)下loop結(jié)構(gòu)程序的平均符號(hào)執(zhí)行時(shí)間約為if結(jié)構(gòu)程序的2~5倍,而在有嵌套的狀態(tài)下if嵌套,loop中嵌套if與loop嵌套loop展現(xiàn)出數(shù)量級(jí)的遞增差異,表明loop結(jié)構(gòu)及l(fā)oop嵌套結(jié)構(gòu)具有增加符號(hào)執(zhí)行時(shí)間的顯著優(yōu)勢(shì)。

    當(dāng)兩種結(jié)構(gòu)的分支判斷語(yǔ)句與程序輸入相關(guān)聯(lián)時(shí),if結(jié)構(gòu)程序的符號(hào)執(zhí)行時(shí)間變化可忽略,而執(zhí)行l(wèi)oop結(jié)構(gòu)程序的時(shí)間則有較大增加,表明與輸入相關(guān)聯(lián)的loop結(jié)構(gòu)相比單一loop結(jié)構(gòu)具有更強(qiáng)的抗符號(hào)執(zhí)行能力。需要注意的是,在loop嵌套層數(shù)增加時(shí),不同的loop結(jié)構(gòu)執(zhí)行時(shí)間將展現(xiàn)出更強(qiáng)的差異性,使標(biāo)準(zhǔn)差顯著增大。

    表1 不同結(jié)構(gòu)程序符號(hào)執(zhí)行時(shí)間

    實(shí)驗(yàn)2 程序集1混淆與效果度量

    為驗(yàn)證本文混淆效果度量方法并探究不同混淆技術(shù)在本度量方法下的表現(xiàn),本文使用tigress混淆工具對(duì)程序集1進(jìn)行混淆,由于本文度量算法側(cè)重于對(duì)程序的符號(hào)執(zhí)行難度與控制流進(jìn)行評(píng)估,同時(shí)為了保證混淆程序與klee引擎的兼容性,選取5種Tigress混淆技術(shù)(如表2所示)并對(duì)其進(jìn)行排列組合共24種混淆方案,由于tigress混淆需指定函數(shù)名的特點(diǎn),函數(shù)拆分僅單獨(dú)使用或作為后置技術(shù)與其他技術(shù)組合使用。

    表2 Tigress混淆技術(shù)介紹

    實(shí)驗(yàn)中對(duì)程序集1進(jìn)行混淆得到約1 000個(gè)混淆程序,將這些程序按照使用的混淆方法分類,ubuntu實(shí)驗(yàn)環(huán)境下使用klee進(jìn)行符號(hào)執(zhí)行,執(zhí)行共計(jì)約30 h,設(shè)置最大執(zhí)行時(shí)間為10 min,使用klee內(nèi)置工具klee-stats統(tǒng)計(jì)符號(hào)執(zhí)行時(shí)間并根據(jù)原程序執(zhí)行時(shí)間對(duì)每種混淆方法下混淆程序集進(jìn)行混淆彈性統(tǒng)計(jì),程序集1各混淆彈性統(tǒng)計(jì)如圖3所示;將混淆程序置于Windows環(huán)境下編譯為32位PE可執(zhí)行文件,在ubuntu下使用Jakstab得到控制流(.dot)文件,計(jì)算其-scope復(fù)雜度,各混淆方法程序集1-scope復(fù)雜度如圖4所示。為進(jìn)一步分析不同混淆方法對(duì)混淆彈性與混淆強(qiáng)度關(guān)聯(lián)性的影響,按序?qū)⑼N混淆方法的彈性與-scope復(fù)雜度進(jìn)行逐一對(duì)比,如圖5所示。

    圖3 程序集1混淆彈性統(tǒng)計(jì)

    Figure 3 Obfuscation resilience statistics of assembly 1

    圖4 程序集1 N-scope復(fù)雜度統(tǒng)計(jì)

    Figure 4-scope complexity statistics of assembly 1

    由于程序集與混淆技術(shù)使程序樣本中嵌套結(jié)構(gòu)較多,為得到更清晰的-scope復(fù)雜度分布,調(diào)整參數(shù)將其設(shè)置為0.2,避免嵌套結(jié)構(gòu)過多造成-scope復(fù)雜度差異性過小。由于使用的混淆技術(shù)特性,原程序的-scope復(fù)雜度與混淆程序最小-scope復(fù)雜度可視作相同。

    圖5 程序集1混淆彈性與混淆強(qiáng)度關(guān)聯(lián)性

    Figure 5 Assembly 1 obfuscation resilience and potency correlation

    分析實(shí)驗(yàn)結(jié)果如下。

    1) 兩次代碼虛擬化的混淆彈性最高且遠(yuǎn)高于其他混淆組合,其-scope得分亦最高,代碼虛擬化后函數(shù)內(nèi)代碼以字節(jié)碼的形式由函數(shù)中解釋器執(zhí)行,相當(dāng)于程序內(nèi)部代碼與解釋器構(gòu)成了多層嵌套循環(huán)結(jié)構(gòu),而兩次虛擬化則使得循環(huán)執(zhí)行路徑指數(shù)化增加,導(dǎo)致符號(hào)執(zhí)行引擎時(shí)間的爆炸式增加。值得注意的是,雖然代碼虛擬化相關(guān)混淆-scope復(fù)雜度明顯高于其他混淆,然而其對(duì)混淆彈性的增益可能低于其他混淆(如AddO16-EncA),表明增加符號(hào)執(zhí)行的路徑求解難度與增加程序嵌套度都可能對(duì)混淆彈性產(chǎn)生較大增益。

    2) 應(yīng)用單次混淆時(shí),數(shù)學(xué)運(yùn)算加密對(duì)混淆彈性的增益較為明顯,然而其對(duì)程序控制流影響較小,因而對(duì)-scope復(fù)雜度增益可忽略,而模糊謂詞技術(shù)雖然絕對(duì)意義上增加了程序分支數(shù)量,相比于其他控制流混淆技術(shù)對(duì)-scope的增益卻較為有限。

    3) 應(yīng)用混淆組合時(shí),混淆組合的不同順序可能對(duì)混淆彈性和混淆強(qiáng)度產(chǎn)生不同影響。如Flat-AddO16與AddO16-Flat相比混淆彈性與-Scope復(fù)雜度均較低,而Virt-AddO16和AddO16- Virt則與單混淆技術(shù)具有相似的混淆效果。造成上述差異的原因可能是本程序集在程序分支數(shù)量提升時(shí)控制流平坦化,使增加代碼嵌套的能力更強(qiáng),而代碼虛擬化解釋執(zhí)行則對(duì)該變化不敏感。

    4) 使用函數(shù)拆分作為后置混淆技術(shù)時(shí),程序-Scope復(fù)雜度增加明顯,而程序混淆彈性則變化不一致。如與代碼虛擬化組合的混淆程序彈性有所提升,而控制流平坦化的混淆彈性則下降,說明函數(shù)拆分可能降低了控制流平坦混淆程序的路徑求解難度。

    5) 隨著程序混淆彈性增加,混淆彈性的標(biāo)準(zhǔn)差呈現(xiàn)上升趨勢(shì),表明具有多樣性結(jié)構(gòu)的程序樣本在混淆彈性增加時(shí)其彈性差異隨之變大,即混淆方法提升的彈性在一定程度上依賴程序樣本的原有結(jié)構(gòu)。

    6)按序?qū)⑼N混淆方法的混淆彈性與混淆強(qiáng)度進(jìn)行關(guān)聯(lián)性分析可知,混淆強(qiáng)度與混淆彈性的相對(duì)變化存在多種情形,這些變化與混淆程序的符號(hào)執(zhí)行求解路徑數(shù)量、路徑求解難度強(qiáng)相關(guān),通過將符號(hào)執(zhí)行時(shí)間與-scope復(fù)雜度進(jìn)行關(guān)聯(lián)性分析歸納如下:①應(yīng)用代碼虛擬化與控制流平坦的混淆程序中,混淆彈性與混淆強(qiáng)度都有明顯提升;②應(yīng)用數(shù)學(xué)加密的混淆程序中,混淆彈性增加而混淆強(qiáng)度未見明顯變化;③應(yīng)用模糊謂詞為后置混淆技術(shù),混淆彈性無(wú)明顯增加而混淆強(qiáng)度增加明顯;④應(yīng)用函數(shù)拆分為后置混淆技術(shù)時(shí),混淆彈性表現(xiàn)與前置技術(shù)相關(guān),而混淆強(qiáng)度有所提升;⑤應(yīng)用數(shù)學(xué)加密為后置混淆技術(shù)時(shí)混淆強(qiáng)度普遍變化較小,而部分混淆程序彈性增加明顯。

    實(shí)驗(yàn)3 程序集2混淆與效果度量

    為檢驗(yàn)本文混淆度量方法的泛化能力,實(shí)驗(yàn)3中使用經(jīng)典算法程序集對(duì)其進(jìn)行混淆與泛化度量,該數(shù)據(jù)集包含排序、字符串比較、計(jì)算公因數(shù)等40個(gè)經(jīng)典算法,相比程序集1程序結(jié)構(gòu)更加多樣化并有更高的實(shí)用價(jià)值。本實(shí)驗(yàn)其余實(shí)驗(yàn)配置與實(shí)驗(yàn)2相同,經(jīng)過混淆后得到其混淆彈性統(tǒng)計(jì)如圖6所示。-scope復(fù)雜度統(tǒng)計(jì)如圖7所示。從實(shí)驗(yàn)結(jié)果看,對(duì)兩個(gè)程序集的混淆效果整體上差異較小,而程序集2的混淆彈性總體低于程序集1,其中幾種混淆技術(shù)的混淆效果有所不同。

    1) 與程序集1相比,單次使用數(shù)學(xué)運(yùn)算加密的混淆彈性較低,而單次使用控制流平坦、代碼虛擬化等提升-Scope復(fù)雜度較高的混淆時(shí)彈性提升較大,造成該現(xiàn)象的原因可能是本程序集中原有數(shù)學(xué)運(yùn)算復(fù)雜性較強(qiáng)而程序嵌套度較低,使與后者相關(guān)的混淆技術(shù)在混淆彈性上表現(xiàn)較好。

    2) 與程序集1相比,模糊謂詞對(duì)程序的混淆彈性提升更明顯,可能程序集2程序結(jié)構(gòu)較復(fù)雜,導(dǎo)致符號(hào)執(zhí)行路徑求解難度較大,因而在增加絕對(duì)分支數(shù)量時(shí)提升更高的混淆強(qiáng)度;然而由于程序本身嵌套結(jié)構(gòu)較少及-Scope參數(shù)限制,模糊謂詞對(duì)-scope的增益不明顯。

    3) 與程序集1中Flat與AddO16不同順序的技術(shù)組合產(chǎn)生顯著安全增益差異不同,程序集2中兩種組合的混淆彈性差異不十分明顯,前者-Scope甚至略高于后者,一方面是程序集差異導(dǎo)致的混淆技術(shù)使用效果差異,另一方面是在符號(hào)執(zhí)行與控制流解析過程中可能存在一定誤差,導(dǎo)致混淆效果的度量偏差。

    4) 按序?qū)⒊绦蚣?程序使用同種混淆方法的混淆彈性與混淆強(qiáng)度進(jìn)行關(guān)聯(lián)性分析可知(如圖8所示),相同混淆技術(shù)對(duì)混淆程序的彈性與強(qiáng)度增益與程序集1的混淆增益方向基本一致,而在增益程度上表現(xiàn)出一定差異。

    圖6 程序集2混淆彈性統(tǒng)計(jì)

    Figure 6 Obfuscation resilience statistics of assembly 2

    圖7 程序集2 N-scope復(fù)雜度統(tǒng)計(jì)

    Figure 7-scope complexity statistics of assembly 2

    圖8 程序集2混淆彈性與混淆強(qiáng)度關(guān)聯(lián)性

    Figure 8 Assembly 2 obfuscation resilience and potency correlation

    實(shí)驗(yàn)4 程序集3混淆與效果度量

    為模擬本文代碼混淆方法在實(shí)際場(chǎng)景中的應(yīng)用,實(shí)驗(yàn)4中使用Tigress混淆工具Random Function模塊隨機(jī)生成的100個(gè)具有不同結(jié)構(gòu)的差異化程序集。這些差異化包括但不限于:控制流嵌套度、控制流語(yǔ)法樹節(jié)點(diǎn)數(shù)、基本塊數(shù)量、程序、函數(shù)、基本塊大小、程序輸入輸出類型、全局變量、局部變量、動(dòng)態(tài)變量等各類型變量,分支條件與程序輸出是否依賴等。本實(shí)驗(yàn)從Tigress超過40種混淆技術(shù)中隨機(jī)選取19組混淆組合對(duì)程序進(jìn)行混淆,每組5種基礎(chǔ)混淆技術(shù),Tigress混淆技術(shù)補(bǔ)充介紹如表3所示。

    表3 Tigress混淆技術(shù)補(bǔ)充介紹

    使用本文代碼混淆效果度量方法對(duì)混淆程序進(jìn)行混淆,由于本實(shí)驗(yàn)中使用混淆技術(shù)數(shù)量增加,故將-scope復(fù)雜度參數(shù)設(shè)置為0.01,設(shè)置最大符號(hào)執(zhí)行時(shí)間t為4 min,其余設(shè)置與實(shí)驗(yàn)2相同。程序集3混淆效果分析如表4所示。不同結(jié)構(gòu)、使用不同混淆組合的混淆程序在本文度量方法上表現(xiàn)出較大差異,表明本文度量方法的良好泛化能力;符號(hào)執(zhí)行時(shí)間標(biāo)準(zhǔn)差顯示程序集在同一混淆技術(shù)組合后的程序彈性增益較小,出現(xiàn)此現(xiàn)象一方面是多種混淆技術(shù)的使用使各程序的混淆彈性普遍較高,另一方面是程序集的實(shí)際代碼量差異不大,結(jié)構(gòu)差異性在多次混淆后的彈性對(duì)比不明顯。

    在實(shí)際應(yīng)用場(chǎng)景中,通過分析不同混淆組合的混淆彈性與混淆強(qiáng)度指標(biāo),可以幫助混淆使用者更有效地對(duì)程序進(jìn)行混淆。本實(shí)驗(yàn)中推薦混淆強(qiáng)度與混淆彈性都較強(qiáng)的混淆技術(shù)組合,通常選擇較高的-scope復(fù)雜度與較長(zhǎng)符號(hào)執(zhí)行時(shí)間中位數(shù),推薦混淆技術(shù)組合為序號(hào)1,3,6,7,8的混淆組合。專業(yè)安全人員根據(jù)各基礎(chǔ)混淆技術(shù)特性與安全需求可進(jìn)一步進(jìn)行選擇。

    3 結(jié)束語(yǔ)

    現(xiàn)有混淆度量方法缺少對(duì)混淆彈性度量,復(fù)雜控制流圖度量算法實(shí)現(xiàn)困難,抽象語(yǔ)義度量實(shí)用性不高,使得混淆技術(shù)使用者難以對(duì)混淆效果進(jìn)行客觀評(píng)價(jià)并及時(shí)調(diào)整混淆策略,造成混淆技術(shù)過度累加導(dǎo)致的資源浪費(fèi)。為解決上述問題,本文利用符號(hào)執(zhí)行技術(shù)在真實(shí)代碼逆向、漏洞挖掘等攻擊場(chǎng)景中的常用性,結(jié)合-scope復(fù)雜度度量方法,對(duì)混淆程序進(jìn)行動(dòng)態(tài)的符號(hào)執(zhí)行路徑遍歷與靜態(tài)的程序基本塊拓?fù)淝短锥确治?,從混淆彈性和混淆?qiáng)度兩個(gè)方向進(jìn)行綜合度量,對(duì)超過4 000個(gè)混淆程序進(jìn)行混淆度量的實(shí)驗(yàn)結(jié)果表明,使用不同混淆方法的混淆程序在本代碼混淆度量方法中展現(xiàn)出差異化的混淆彈性與強(qiáng)度,同時(shí)在不同程序集上本方法表現(xiàn)出良好的泛化能力,可以為安全人員對(duì)混淆技術(shù)的評(píng)價(jià)以及混淆技術(shù)的組合提供合理參考。

    本文設(shè)計(jì)的基于符號(hào)執(zhí)行和-scope復(fù)雜度的混淆度量方法目前僅在有限的程序集與特定混淆技術(shù)上展開驗(yàn)證,且本度量方法在使用上要求使用者具備一定程度的相關(guān)知識(shí),如設(shè)置參數(shù)并分析混淆彈性和-scope復(fù)雜度,未來希望在更多樣化的程序集中和混淆技術(shù)上探究本度量方法的普適性與準(zhǔn)確性并加以改進(jìn),同時(shí)基于機(jī)器學(xué)習(xí)等方法對(duì)程序集的混淆度量結(jié)果進(jìn)行更全面的分析并制定推薦混淆策略。

    表4 程序集3混淆效果分析

    [1] AKHUNZADA A, SOOKHAK M, ANUAR N, et al. Man-at-the-end attacks: analysis, taxonomy, human aspects, motivation and future directions[J]. Journal of Network and Computer Applications, 2015, 48(6):44-57.

    [2] VAN DEN BROECK J, COPPENS B, DE SUTTER B. Flexible software protection[J]. Computers & Security, 2022, 10(2): 6-36.

    [3] 耿普, 祝躍飛. 一種基于分支條件混淆的代碼加密技術(shù)[J]. 計(jì)算機(jī)研究與發(fā)展, 2019, 56(10): 2183-2192.

    GENG P, ZHU Y F. A code encrypt technique based on branch condition obfuscation[J]. Journal of Computer Research and Development, 2019, 56(10): 2183-2192.

    [4] 陳喆, 王志, 王曉初, 等. 基于代碼移動(dòng)的二進(jìn)制程序控制流混淆方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(8): 1902-1909.

    CHEN Z,WANG Z, WANG XC, et al. Using code mobility to obfuscate control flow in binary codes[J]. Journal of Computer Research and Development, 2015, 52(8): 1902-1909.

    [5] AHIRE P, ABRAHAM J. Mechanisms for source code obfuscation in C: novel techniques and implementation[C]//2020 International Conference on Emerging Smart Computing and Informatics. 2020.

    [6] PIZZOLOTTO D, FELLIN R, CECCATO M. OBLIVE: seamless code obfuscation for Java programs and Android Apps[C]//2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering. 2019.

    [7] VAN DEN BROECK J, COPPENS B, DE SUTTER B. Obfuscated integration of software protections[J]. International Journal of Information Security, 2021, 20(1): 73-101.

    [8] CECCATO M, ANDREA C, PAOLO F, et al. A large study on the effect of code obfuscation on the quality of Java code[J]. Empirical Software Engineering, 2015, 20(6): 1486–1524.

    [9] LARSEN P, HOMESCU A, BRUNTHALER S,et al. SoK: automated software diversity[C]//Symposium on Security and Privacy. 2014.

    [10] XU H, ZHOU Y, MING J, et al. Layered obfuscation: a taxonomy of software obfuscation techniques for layered security[J]. Cybersecurity, 2020, 3(1): 1-18.

    [11] PENG Y, CHEN Y, SHEN B. An adaptive approach to recommending obfuscation rules for java bytecode obfuscators[C]//2019 IEEE 43rd Annual Computer Software and Applications Conference. 2019.

    [12] COLLBERG C, THOMBORSON C, LOW D. A taxonomy of obfuscating transformations[R]. 1997.

    [13] ANCKAERT B, MADOU M, DE SUTTER B, et al. Program obfuscation: quantitative approach[C]//ACM Workshop on Quality of Protection, 2007.

    [14] KIRK SR, JENKINS S. Information theory-based software metrics and obfuscation[J]. Journal of Systems and Software, 2004, 72(2):179-186.

    [15] MOHSEN R, PINTO AM. Evaluating obfuscation security: A quantitative approach[C]//International Symposium on Foundations and Practice of Security. 2016.

    [16] MOHSEN R. Quantitative measures for code obfuscation security[D]. London: Imperial College London, 2016.

    [17] RODRíGUEZ-VELIZ M, NU?EZ-MUSA Y, LIMA R S. Call graph obfuscation and diversification: an approach[J]. IET Inf Secur, 2020, 14(2): 241-252.

    [18] TSAI HY, HUANG YL, WAGNER D. A graph approach to quantitative analysis of control-flow obfuscating transformations[J]. IEEE Transactions on Information Forensics and Security, 2009, 4(2): 257-267.

    [19] GAO D, REITER MK, SONG D. BinHunt: automatically finding semantic differences in binary programs[C]//International Conference on Information and Communications Security. 2008.

    [20] LUO L, MING J, WU D, et al. Semantics-based obfuscation-resilient binary code similarity comparison with applications to software plagiarism detection[C]//ACM Sigsoft International Symposium on Foundations of Software Engineering. 2014.

    [21] PUCELLA R, SCHNEIDER FB. Independence from obfuscation: a semantic framework for diversity[J]. Computers & Security, 2010, 18(5):701-749.

    [22] DALLA M, GIACOBAZZI R. Semantic-based code obfuscation by abstract interpretation[C]//International Colloquium on Automata, Languages, and Programming. 2005.

    [23] VITICCHIE A, REGANO L, TORCHIANO M, et al. Assessment of source code obfuscation techniques[C]//International Working Conference on Source Code Analysis and Manipulation. 2016.

    [24] CECCATO M, DI PENTA M, NAGRA J, et al. The effectiveness of source code obfuscation: an experimental assessment[C]//International Conference on Program Comprehension. 2009.

    [25] BANESCU S, COLLBERG C, GANESH V, et al. Code obfuscation against symbolic execution attacks[C]//Annual Conference on Computer Security Applications. 2016.

    [26] MAJUMDAR A, DRAPE S, THOMBORSON C. Metrics-based evaluation of slicing obfuscations[C]// International Symposium on Information Assurance and Security. 2007.

    [27] MOLNAR D, LI XC, WAGNER DA. Dynamic test generation to find integer bugs in x86 binary linux programs[C]//USENIX Security Symposium. 2009.

    [28] WANG Z, MING J, JIA C, GAO D. Linear obfuscation to combat symbolic execution[C]//European Symposium on Research in Computer Security. 2011.

    [29] ZUSE H. Software complexity: measures and methods[R]. Berlin, Walter de Gruyter GmbH & Co KG, 1991.

    [30] KARNICK M, MACBRIDE J, MCGINNIS S, et al. A qualitative analysis of Java obfuscation[C]//IASTED International Conference on Software Engineering and Applications. 2006.

    Metrics for code obfuscation based on symbolic execution and-scope complexity

    XIAO Yuqiang, GUO Yunfei, WANG Yawen

    Information Engineering University, Zhengzhou 450001, China

    Code obfuscation has been well developed as mitigated endogenous security technology, to effectively resist MATE attacks (e.g. reverse engineering). And it also has important value for the reasonable metrics of code obfuscation effect. Since symbolic execution is widely used in anti-obfuscation attacks, metrics for code obfuscation resilience can refer to the efforts of generating input test set for executing all program paths. However, some adversarial techniques could reduce the symbol execution efficiency significantly based on the nested structure of the program and increase the error of the resilience reference. To solve the above problems, a metrics for code obfuscation was proposed based on symbolic execution and N-scope complexity. The obfuscation resilience was defined with symbolic execution time and obfuscation potency was defined based on the proposed N-scope complexity for better robustness in measuring the resilience of multi-nested structure programs. Furthermore, the correlation analysis of obfuscation effect was proposed and the effect was quantified by symbolic execution and control flow diagram extraction of programs. Over 4000 obfuscated programs from 3 open-sourced assemblies were evaluated with proposed metrics in the experiment, which indicated the generalization performance and practicality of the metrics. And an example of this metrics application was presented in a simulated obfuscation scenario which provided references of obfuscation technology metrics and obfuscation configuration for obfuscation users.

    code obfuscation, obfuscation metrics, symbolic execution,-scope

    TP393

    A

    10.11959/j.issn.2096?109x.2022085

    2021?07?07;

    2022?05?11

    肖玉強(qiáng),516162560@sjtu.edu.cn

    國(guó)家重點(diǎn)研發(fā)計(jì)劃(2021YFB1006200,2021YFB1006201),國(guó)家自然科學(xué)基金(62072467)

    The National Key R&D Program of China (2021YFB1006200, 2021YFB1006201), The National Natural Science Foundation of China(62072467)

    肖玉強(qiáng), 郭云飛, 王亞文. 基于符號(hào)執(zhí)行和-scope復(fù)雜度的代碼混淆度量方法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2022, 8(6): 123-134.

    XIAO Y Q, GUO Y F, WANG Y W. Metrics for code obfuscation based on symbolic execution and-scope complexity[J]. Chinese Journal of Network and Information Security, 2022, 8(6): 123-134.

    肖玉強(qiáng)(1997?),男,吉林遼源人,信息工程大學(xué)碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)空間安全、代碼混淆、機(jī)器學(xué)習(xí)。

    郭云飛(1963?),男,河南鄭州人,信息工程大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)樵瓢踩?、電信網(wǎng)絡(luò)安全、網(wǎng)絡(luò)安全。

    王亞文(1990?),男,河南鄭州人,信息工程大學(xué)講師,主要研究方向?yàn)樵朴?jì)算、入侵容忍、網(wǎng)絡(luò)安全。

    猜你喜歡
    程序方法
    學(xué)習(xí)方法
    試論我國(guó)未決羈押程序的立法完善
    失能的信仰——走向衰亡的民事訴訟程序
    “程序猿”的生活什么樣
    英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
    可能是方法不對(duì)
    用對(duì)方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
    四大方法 教你不再“坐以待病”!
    Coco薇(2015年1期)2015-08-13 02:47:34
    賺錢方法
    久久久久久久久久久久大奶| 久久女婷五月综合色啪小说| 国产黄色视频一区二区在线观看| √禁漫天堂资源中文www| 久久久久久久久久久久大奶| 国产成人精品久久久久久| 亚洲成人av在线免费| 免费人妻精品一区二区三区视频| 国产日韩一区二区三区精品不卡 | 夫妻午夜视频| 最近中文字幕2019免费版| 中文乱码字字幕精品一区二区三区| 久久久久久伊人网av| 日韩av在线免费看完整版不卡| 亚洲一区二区三区欧美精品| 亚洲真实伦在线观看| 少妇人妻一区二区三区视频| 天天操日日干夜夜撸| 日韩亚洲欧美综合| 18禁裸乳无遮挡动漫免费视频| 久久国产乱子免费精品| 亚洲精品视频女| 日韩av在线免费看完整版不卡| 亚洲熟女精品中文字幕| 精品亚洲乱码少妇综合久久| 日韩免费高清中文字幕av| 有码 亚洲区| 菩萨蛮人人尽说江南好唐韦庄| 菩萨蛮人人尽说江南好唐韦庄| 91aial.com中文字幕在线观看| 中文字幕人妻熟人妻熟丝袜美| 日本爱情动作片www.在线观看| 国产一区亚洲一区在线观看| 精品午夜福利在线看| 九色成人免费人妻av| 69精品国产乱码久久久| av.在线天堂| 亚洲精品一二三| 亚洲不卡免费看| 精品99又大又爽又粗少妇毛片| 一个人免费看片子| 99热6这里只有精品| 精品午夜福利在线看| 我的老师免费观看完整版| 精品国产一区二区三区久久久樱花| 九九在线视频观看精品| 成年美女黄网站色视频大全免费 | 天堂8中文在线网| 中文欧美无线码| 亚洲精品久久久久久婷婷小说| 国产一区二区在线观看av| 91精品伊人久久大香线蕉| 嘟嘟电影网在线观看| 久久av网站| 国产精品成人在线| 国产成人免费无遮挡视频| 久久久久久人妻| 十八禁网站网址无遮挡 | 日本av手机在线免费观看| 美女脱内裤让男人舔精品视频| 又爽又黄a免费视频| 精品人妻熟女av久视频| av女优亚洲男人天堂| 99热6这里只有精品| 午夜影院在线不卡| 免费人成在线观看视频色| 一区二区三区乱码不卡18| 一级毛片 在线播放| 男的添女的下面高潮视频| 欧美最新免费一区二区三区| 国产黄频视频在线观看| av国产精品久久久久影院| 国产精品蜜桃在线观看| 夜夜看夜夜爽夜夜摸| 亚洲av.av天堂| 国模一区二区三区四区视频| 麻豆乱淫一区二区| 极品教师在线视频| 91久久精品国产一区二区成人| 一级毛片电影观看| 亚洲综合色惰| 亚洲综合色惰| 在线观看美女被高潮喷水网站| 妹子高潮喷水视频| 国产在线视频一区二区| 最新中文字幕久久久久| 久久久久人妻精品一区果冻| 超碰97精品在线观看| 少妇的逼水好多| 黄色日韩在线| 久久精品熟女亚洲av麻豆精品| 亚洲不卡免费看| 特大巨黑吊av在线直播| 香蕉精品网在线| 老熟女久久久| 久久久久久久久久人人人人人人| 国产亚洲91精品色在线| 韩国高清视频一区二区三区| 成人亚洲精品一区在线观看| 日韩av免费高清视频| 狂野欧美白嫩少妇大欣赏| 日日摸夜夜添夜夜添av毛片| 人人妻人人澡人人看| 嫩草影院入口| 亚洲精品乱码久久久v下载方式| 青春草视频在线免费观看| 免费在线观看成人毛片| 国产av国产精品国产| av天堂久久9| 在线观看国产h片| 黄色怎么调成土黄色| 一级av片app| 色94色欧美一区二区| 一级毛片 在线播放| 久久久久网色| 国产精品99久久久久久久久| 亚洲综合色惰| av女优亚洲男人天堂| 国产又色又爽无遮挡免| 天天躁夜夜躁狠狠久久av| 国产一区二区在线观看日韩| 日韩精品有码人妻一区| 国产精品免费大片| 一区二区三区免费毛片| 水蜜桃什么品种好| 成人影院久久| 精品一区二区免费观看| 日韩不卡一区二区三区视频在线| 亚洲av.av天堂| 搡老乐熟女国产| 中文字幕精品免费在线观看视频 | 久久精品久久精品一区二区三区| 免费少妇av软件| 亚洲av国产av综合av卡| 亚洲国产最新在线播放| 熟女av电影| 久久精品久久久久久噜噜老黄| 人妻人人澡人人爽人人| 在线播放无遮挡| 街头女战士在线观看网站| 啦啦啦视频在线资源免费观看| 特大巨黑吊av在线直播| 午夜福利,免费看| 国产淫语在线视频| 热re99久久精品国产66热6| 国产亚洲一区二区精品| 男人狂女人下面高潮的视频| 香蕉精品网在线| tube8黄色片| 精品国产露脸久久av麻豆| 精品久久国产蜜桃| 免费黄网站久久成人精品| 天堂中文最新版在线下载| 激情五月婷婷亚洲| 自线自在国产av| 国产精品一区二区性色av| 久久影院123| 内地一区二区视频在线| .国产精品久久| 亚洲美女黄色视频免费看| 少妇人妻 视频| 日本av免费视频播放| 日本午夜av视频| 亚洲精品乱久久久久久| 午夜91福利影院| 热re99久久精品国产66热6| 成人综合一区亚洲| 夫妻性生交免费视频一级片| av天堂久久9| 自线自在国产av| 日韩欧美 国产精品| 精品国产一区二区久久| 高清av免费在线| 黑人高潮一二区| 精品午夜福利在线看| 久久影院123| 18禁在线无遮挡免费观看视频| 精品一区二区三区视频在线| 美女中出高潮动态图| 精品国产露脸久久av麻豆| 日韩av在线免费看完整版不卡| av网站免费在线观看视频| 亚洲精品视频女| 看非洲黑人一级黄片| 国产一区亚洲一区在线观看| 日日爽夜夜爽网站| 性色av一级| 欧美丝袜亚洲另类| 三级国产精品片| 国产精品国产三级国产专区5o| 国产乱人偷精品视频| 亚洲三级黄色毛片| 国产av码专区亚洲av| 如日韩欧美国产精品一区二区三区 | 三级国产精品欧美在线观看| 免费高清在线观看视频在线观看| 一本—道久久a久久精品蜜桃钙片| 黄色毛片三级朝国网站 | 免费久久久久久久精品成人欧美视频 | 国产极品天堂在线| av播播在线观看一区| 午夜激情久久久久久久| 日韩欧美精品免费久久| 丝袜在线中文字幕| 欧美+日韩+精品| 制服丝袜香蕉在线| 国内少妇人妻偷人精品xxx网站| 亚洲精品乱码久久久久久按摩| 久久精品国产自在天天线| 我的女老师完整版在线观看| 中文字幕av电影在线播放| 久久精品国产亚洲av天美| 天天操日日干夜夜撸| 大片电影免费在线观看免费| 免费观看的影片在线观看| 秋霞在线观看毛片| 亚洲人与动物交配视频| 99热这里只有是精品在线观看| 国产精品麻豆人妻色哟哟久久| 国产在线视频一区二区| 最新的欧美精品一区二区| av天堂久久9| 国产黄色视频一区二区在线观看| 欧美丝袜亚洲另类| 亚洲成人一二三区av| 国产亚洲av片在线观看秒播厂| 欧美人与善性xxx| av.在线天堂| 亚洲国产精品专区欧美| 国产亚洲一区二区精品| 国产一区二区三区综合在线观看 | 一级毛片aaaaaa免费看小| 精品国产露脸久久av麻豆| 午夜日本视频在线| 丰满人妻一区二区三区视频av| 最新中文字幕久久久久| 色哟哟·www| 免费观看无遮挡的男女| 国产精品国产三级国产专区5o| 中文字幕久久专区| 看十八女毛片水多多多| 亚洲精品日韩av片在线观看| a 毛片基地| .国产精品久久| 国产日韩一区二区三区精品不卡 | 青春草国产在线视频| 99热这里只有是精品50| 美女中出高潮动态图| 成年人免费黄色播放视频 | 国产精品无大码| 亚洲av福利一区| 老司机亚洲免费影院| 99国产精品免费福利视频| 777米奇影视久久| 亚洲av不卡在线观看| a级毛片在线看网站| 观看美女的网站| 三上悠亚av全集在线观看 | 亚洲天堂av无毛| 亚洲国产精品专区欧美| 久久久精品94久久精品| 人妻少妇偷人精品九色| 精品久久久噜噜| 永久网站在线| 搡老乐熟女国产| 久久久久久久国产电影| 欧美激情极品国产一区二区三区 | 高清av免费在线| 丰满乱子伦码专区| 高清欧美精品videossex| 国产欧美日韩精品一区二区| 看非洲黑人一级黄片| 精品久久久精品久久久| videos熟女内射| 国产成人精品一,二区| 人人妻人人看人人澡| 亚洲成色77777| 99久久精品热视频| 黄色毛片三级朝国网站 | 777米奇影视久久| 成人免费观看视频高清| kizo精华| 在线观看免费日韩欧美大片 | 在线观看一区二区三区激情| 亚洲自偷自拍三级| 高清黄色对白视频在线免费看 | 精品久久久久久电影网| 亚洲成人av在线免费| 国产黄片美女视频| 你懂的网址亚洲精品在线观看| av网站免费在线观看视频| 永久免费av网站大全| 国产av码专区亚洲av| 国产又色又爽无遮挡免| 丁香六月天网| 简卡轻食公司| 亚洲欧美清纯卡通| 国产综合精华液| 精品卡一卡二卡四卡免费| 国产精品熟女久久久久浪| 久久久久国产精品人妻一区二区| 亚洲av不卡在线观看| 三级国产精品欧美在线观看| 久久 成人 亚洲| 97超碰精品成人国产| 九九久久精品国产亚洲av麻豆| 麻豆精品久久久久久蜜桃| 天堂中文最新版在线下载| 亚洲色图综合在线观看| 欧美变态另类bdsm刘玥| 国产一区亚洲一区在线观看| 国产乱人偷精品视频| 深夜a级毛片| 乱系列少妇在线播放| 精品国产一区二区三区久久久樱花| 久久综合国产亚洲精品| 成年女人在线观看亚洲视频| www.色视频.com| 国产69精品久久久久777片| 久久国产精品大桥未久av | 国产成人精品福利久久| 偷拍熟女少妇极品色| 在线观看一区二区三区激情| 亚洲av.av天堂| 少妇 在线观看| 乱人伦中国视频| 日韩欧美一区视频在线观看 | 亚洲一级一片aⅴ在线观看| 色视频在线一区二区三区| 中文字幕精品免费在线观看视频 | 人妻少妇偷人精品九色| 内地一区二区视频在线| 免费看不卡的av| av播播在线观看一区| 国产片特级美女逼逼视频| 国产高清不卡午夜福利| videossex国产| 伊人久久精品亚洲午夜| 天堂8中文在线网| 秋霞伦理黄片| 亚洲av福利一区| 精品亚洲成a人片在线观看| 国内揄拍国产精品人妻在线| 熟妇人妻不卡中文字幕| 久久精品国产自在天天线| 天堂俺去俺来也www色官网| 大话2 男鬼变身卡| 欧美 亚洲 国产 日韩一| 亚洲成色77777| 免费大片18禁| 午夜福利,免费看| 欧美国产精品一级二级三级 | 一区在线观看完整版| 免费播放大片免费观看视频在线观看| 免费播放大片免费观看视频在线观看| 精品国产一区二区久久| 在线观看国产h片| 美女内射精品一级片tv| 99九九在线精品视频 | 狂野欧美激情性bbbbbb| 久久精品夜色国产| 国产美女午夜福利| 亚洲av不卡在线观看| 国产午夜精品一二区理论片| av.在线天堂| 亚洲怡红院男人天堂| 黄色毛片三级朝国网站 | 欧美日韩精品成人综合77777| 最黄视频免费看| 午夜激情久久久久久久| 一边亲一边摸免费视频| 免费av中文字幕在线| 偷拍熟女少妇极品色| 国产综合精华液| 亚洲av免费高清在线观看| 亚洲激情五月婷婷啪啪| 一区在线观看完整版| 青春草国产在线视频| 91午夜精品亚洲一区二区三区| 国产老妇伦熟女老妇高清| 一级毛片黄色毛片免费观看视频| 久久国内精品自在自线图片| 中文字幕人妻丝袜制服| 我要看黄色一级片免费的| 成人亚洲欧美一区二区av| 男男h啪啪无遮挡| 岛国毛片在线播放| 午夜福利视频精品| 亚洲成人av在线免费| 一区二区三区免费毛片| 最近中文字幕2019免费版| 男男h啪啪无遮挡| 波野结衣二区三区在线| 国产在视频线精品| 亚洲第一区二区三区不卡| 性色avwww在线观看| av福利片在线观看| 最后的刺客免费高清国语| 欧美日韩综合久久久久久| 丰满少妇做爰视频| 一级毛片黄色毛片免费观看视频| 麻豆成人午夜福利视频| 日韩av不卡免费在线播放| 最近2019中文字幕mv第一页| 日产精品乱码卡一卡2卡三| 国产乱来视频区| 亚洲真实伦在线观看| 国产精品一二三区在线看| 亚洲欧美精品专区久久| 晚上一个人看的免费电影| 成人国产麻豆网| 自线自在国产av| 日本wwww免费看| 十八禁高潮呻吟视频 | h视频一区二区三区| 男女边吃奶边做爰视频| 久久亚洲国产成人精品v| 一级二级三级毛片免费看| 国产伦在线观看视频一区| 精品少妇久久久久久888优播| 少妇高潮的动态图| 性色avwww在线观看| 在线看a的网站| 狂野欧美激情性bbbbbb| 亚洲熟女精品中文字幕| 久久久久久人妻| 99久久中文字幕三级久久日本| 久久久a久久爽久久v久久| 亚洲自偷自拍三级| 免费看不卡的av| 久久久久久久精品精品| 人人妻人人澡人人爽人人夜夜| 丰满少妇做爰视频| 久久久久久久久久久久大奶| 国产亚洲一区二区精品| 国产欧美日韩综合在线一区二区 | 欧美日韩在线观看h| 香蕉精品网在线| 极品人妻少妇av视频| 久久久a久久爽久久v久久| 久久久国产一区二区| 80岁老熟妇乱子伦牲交| 天堂8中文在线网| 国产白丝娇喘喷水9色精品| 亚洲国产最新在线播放| 亚洲国产精品一区二区三区在线| 精品人妻熟女av久视频| 国产午夜精品久久久久久一区二区三区| 中文字幕制服av| 国产一区二区在线观看av| 丝袜喷水一区| 国产成人91sexporn| 欧美日韩亚洲高清精品| 久久久午夜欧美精品| 婷婷色综合www| 免费看光身美女| 国产成人精品婷婷| av在线老鸭窝| 99久久精品热视频| 日韩一区二区三区影片| 午夜福利在线观看免费完整高清在| 国产视频首页在线观看| 欧美成人午夜免费资源| 只有这里有精品99| 水蜜桃什么品种好| 欧美最新免费一区二区三区| 91久久精品国产一区二区三区| 国产日韩欧美在线精品| 亚洲av成人精品一二三区| 热re99久久精品国产66热6| 亚洲av中文av极速乱| 老司机亚洲免费影院| 亚洲av欧美aⅴ国产| 人妻系列 视频| 3wmmmm亚洲av在线观看| av福利片在线观看| 欧美 亚洲 国产 日韩一| 亚洲精品自拍成人| 18禁动态无遮挡网站| 桃花免费在线播放| 国产成人午夜福利电影在线观看| 色视频在线一区二区三区| 夫妻性生交免费视频一级片| 麻豆成人午夜福利视频| 亚洲天堂av无毛| 精品亚洲成国产av| 久久久久人妻精品一区果冻| 伦理电影大哥的女人| 中文字幕精品免费在线观看视频 | 国产精品久久久久久久电影| 一级黄片播放器| 欧美日韩精品成人综合77777| 久久久a久久爽久久v久久| 亚洲精品国产色婷婷电影| 国产成人精品福利久久| 中文乱码字字幕精品一区二区三区| 自拍偷自拍亚洲精品老妇| 国产91av在线免费观看| 在线观看三级黄色| 久久av网站| 六月丁香七月| 91久久精品电影网| 丝袜在线中文字幕| 各种免费的搞黄视频| 久久久欧美国产精品| 久久6这里有精品| 欧美三级亚洲精品| 国产精品国产三级国产专区5o| 亚洲av成人精品一二三区| 成年女人在线观看亚洲视频| av在线播放精品| 免费观看av网站的网址| 日韩一区二区三区影片| 久久久久久伊人网av| 人人妻人人看人人澡| 亚洲高清免费不卡视频| 亚洲精品乱码久久久久久按摩| 精品99又大又爽又粗少妇毛片| 一级片'在线观看视频| 人妻一区二区av| 99九九在线精品视频 | 九九爱精品视频在线观看| 777米奇影视久久| 久久精品国产亚洲av涩爱| 国语对白做爰xxxⅹ性视频网站| 国产黄色免费在线视频| 97在线人人人人妻| 国产日韩一区二区三区精品不卡 | 欧美精品人与动牲交sv欧美| 国产精品蜜桃在线观看| 大码成人一级视频| 伦精品一区二区三区| 国产精品久久久久成人av| 免费高清在线观看视频在线观看| 乱码一卡2卡4卡精品| 亚洲精品国产色婷婷电影| 97超碰精品成人国产| 99九九线精品视频在线观看视频| av视频免费观看在线观看| 一级a做视频免费观看| 成人午夜精彩视频在线观看| 国产精品免费大片| 男女无遮挡免费网站观看| 国产男人的电影天堂91| 乱码一卡2卡4卡精品| 色吧在线观看| 午夜精品国产一区二区电影| 国产熟女午夜一区二区三区 | 欧美日韩亚洲高清精品| 久久99精品国语久久久| 国产精品一二三区在线看| 国产精品无大码| 丝袜在线中文字幕| 日韩精品有码人妻一区| 成年av动漫网址| 七月丁香在线播放| 最近中文字幕2019免费版| 久久久亚洲精品成人影院| 亚洲欧美日韩另类电影网站| 亚洲精品亚洲一区二区| 少妇人妻精品综合一区二区| 亚洲av中文av极速乱| 少妇熟女欧美另类| 日韩一本色道免费dvd| 妹子高潮喷水视频| av免费观看日本| 中文字幕亚洲精品专区| 我的女老师完整版在线观看| 又黄又爽又刺激的免费视频.| 精品久久久久久久久av| av视频免费观看在线观看| 成人18禁高潮啪啪吃奶动态图 | 男男h啪啪无遮挡| 国产男女超爽视频在线观看| 少妇裸体淫交视频免费看高清| 夜夜爽夜夜爽视频| 国产亚洲午夜精品一区二区久久| 欧美变态另类bdsm刘玥| 人人澡人人妻人| 少妇高潮的动态图| 日韩欧美精品免费久久| 亚洲精品日韩在线中文字幕| 国产色爽女视频免费观看| 亚洲色图综合在线观看| 亚洲精品乱码久久久久久按摩| 国产亚洲av片在线观看秒播厂| 嫩草影院新地址| 边亲边吃奶的免费视频| 久久久久久久久久久丰满| 久久午夜综合久久蜜桃| 男女免费视频国产| 国产91av在线免费观看| 在线观看国产h片| 国产成人精品久久久久久| 亚洲国产成人一精品久久久| 91久久精品国产一区二区三区| 你懂的网址亚洲精品在线观看| 特大巨黑吊av在线直播| 多毛熟女@视频| 一级毛片黄色毛片免费观看视频| 晚上一个人看的免费电影| 精品一区在线观看国产| 插逼视频在线观看| 婷婷色av中文字幕| 日韩av免费高清视频| 欧美日韩综合久久久久久| 久热久热在线精品观看| 精品久久国产蜜桃| 高清午夜精品一区二区三区| 嘟嘟电影网在线观看| 色哟哟·www| 大陆偷拍与自拍| 如何舔出高潮| 久久ye,这里只有精品| av.在线天堂|