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

    基于IDA microcode的控制流反混淆框架設(shè)計與實(shí)現(xiàn)

    2022-07-08 00:42:30符笑彬鐘曉雄鄭彥斌
    關(guān)鍵詞:基本塊控制流常量

    符笑彬, 丁 勇, 鐘曉雄, 鄭彥斌,2

    (1.桂林電子科技大學(xué) 廣西密碼學(xué)與信息安全重點(diǎn)實(shí)驗(yàn)室, 廣西 桂林 541004;2.曲阜師范大學(xué) 數(shù)學(xué)科學(xué)學(xué)院, 山東 曲阜 273165)

    代碼混淆是一種常見的軟件保護(hù)方案,可將目標(biāo)程序轉(zhuǎn)換為更復(fù)雜但在語義上等效的混淆程序,主要目的是讓逆向分析人員難以解讀出軟件的內(nèi)部邏輯[1]。Obfuscator-LLVM(O-LLVM)是最著名的代碼混淆器之一,它可以有效抵御攻擊者對混淆程序的逆向分析。O-LLVM官方提供3種混淆方法:指令替換、虛假控制流和控制流平坦化。隨后有多位開發(fā)者在O-LLVM官方版本基礎(chǔ)上進(jìn)行修改并開源,增加了更多的混淆方案,例如:字符串加密[2]、寄存器間接跳轉(zhuǎn)[3]、函數(shù)間接調(diào)用[3]、指令虛擬化[4]等。

    O-LLVM可以有效保護(hù)軟件知識產(chǎn)權(quán),同時也被廣泛應(yīng)用在病毒、木馬等惡意軟件。因此,實(shí)現(xiàn) O-LLVM反混淆對于維護(hù)健康的軟件安全生態(tài)環(huán)境具有重要的現(xiàn)實(shí)意義。

    2015年,Yadegari等[5]提出了一種基于模擬執(zhí)行的反混淆方法。但是,此類方案主要存在以下缺陷:1)反混淆完整度較低:由于條件分支的存在,很多情況下該方案無法執(zhí)行到所有可能的路徑。例如,在許多惡意軟件程序中,只有在滿足特定觸發(fā)條件時,才會執(zhí)行實(shí)現(xiàn)惡意行為的特定代碼路徑[6]。2)存在多種反模擬執(zhí)行方案:代碼虛擬化[7]、加殼與代碼自修改[8-9]。3)補(bǔ)丁二進(jìn)制困難:補(bǔ)丁二進(jìn)制文件只能修改原指令,而不能隨意添加新指令。

    2019年,Kan等[10]提出了基于符號執(zhí)行的安卓應(yīng)用程序反混淆方案。雖然符號執(zhí)行彌補(bǔ)了模擬執(zhí)行的前2個缺陷,但仍然主要存在以下問題:1)存在多種反符號執(zhí)行方案:Anand等[11]將符號執(zhí)行的弱點(diǎn)分為復(fù)雜約束、路徑發(fā)散和路徑爆炸,由此設(shè)計和實(shí)現(xiàn)了對應(yīng)的反符號執(zhí)行方案。例如,攻擊SMT約束求解器使得符號執(zhí)行探測不到目標(biāo)路徑等[12-13]。2)符號執(zhí)行路徑爆炸:當(dāng)被混淆的函數(shù)本身邏輯過于復(fù)雜時,符號執(zhí)行會產(chǎn)生路徑爆炸問題,導(dǎo)致嚴(yán)重耗時以至于無法執(zhí)行完畢[11]。3)補(bǔ)丁二進(jìn)制困難。4)真實(shí)塊識別困難:當(dāng)遇到定制化的O-LLVM混淆時,原本的真實(shí)塊識別算法會失效,而且僅依靠分析匯編指令很難開發(fā)新的真實(shí)塊識別算法。

    2019年,Garba等[14]提出了基于中間語言LLVM-IR的O-LLVM反混淆方法,該方案在多個方面優(yōu)于模擬執(zhí)行和符號執(zhí)行方案。但是,其只能針對虛假控制流進(jìn)行反混淆,卻不能處理控制流平坦化。由于該方案重度依賴開源項目Remill[15],導(dǎo)致其不支持ARM32架構(gòu)。在移動平臺上ARM32架構(gòu)占有率極高,因此該方案不適用于絕大多數(shù)移動平臺。

    為了解決上述難點(diǎn),提出了一種基于IDA microcode的反混淆框架BinDeob。引入中間語言(intermediate representation,簡稱IR)IDA microcode的主要目的是解決文獻(xiàn)[14]不支持ARM32架構(gòu)的問題,采用IR帶來了架構(gòu)無關(guān)的優(yōu)勢,因此BinDeob支持ARM32、ARM64、x86、x64等多種指令集架構(gòu)。但I(xiàn)DA microcode本身不具備控制流反混淆能力,需要在此基礎(chǔ)上開發(fā)相關(guān)反混淆算法。具體來說,BinDeob的反混淆操作是O-LLVM混淆的逆過程,將二進(jìn)制代碼提升到IR IDA microcode,即等價于O-LLVM混淆器使用的LLVM-IR,更有利于反混淆算法的實(shí)現(xiàn)。另外,在定制化混淆中,不僅真實(shí)塊的識別會變得更加困難,而且某個真實(shí)塊可能被多次復(fù)用。BinDeob在IR層通過兼容定制化混淆的真實(shí)塊識別算法和復(fù)用塊分割算法可以很好地解決這些問題。

    1 背景知識

    1.1 Obfuscator-LLVM

    Obfuscator-LLVM(O-LLVM)是x86和ARM平臺上使用最廣泛的代碼混淆器之一[16]。O-LLVM旨在為軟件提供代碼混淆和防篡改的功能,充分提高了軟件的安全性。它具有良好的混淆效果、定制化的混淆方案、不依賴于編程語言和平臺體系等特點(diǎn),因此被廣泛應(yīng)用于軟件安全領(lǐng)域。但是,惡意軟件開發(fā)者也逐步在惡意軟件中使用該混淆技術(shù),以提高安全人員的分析難度,增加安全人員分析惡意軟件所需的時間成本。官方版的O-LLVM提供了以下3種混淆技術(shù)。

    1) 指令替換。指令替換是O-LLVM中最簡單的混淆技術(shù),使用功能等價但更復(fù)雜的指令序列代替標(biāo)準(zhǔn)的二進(jìn)制運(yùn)算指令。通常一條標(biāo)準(zhǔn)運(yùn)算指令能匹配多種等價的指令序列,O-LLVM將隨機(jī)選取并組合,進(jìn)而增加代碼的多樣性。

    2) 虛假控制流。在隨機(jī)選擇的基本塊之前添加條件跳轉(zhuǎn),該跳轉(zhuǎn)指向原始基本塊或永遠(yuǎn)不會被執(zhí)行的虛假基本塊[16]。為了避免被編譯器優(yōu)化,新添加的基本塊通常包含不透明謂詞,同時確保在運(yùn)行期間僅執(zhí)行原始基本塊[10]。

    3) 控制流平坦化??刂屏髌教够乃枷胱钤缬擅绹S吉尼亞大學(xué)的 Wang[17]提出,之后Chow等[18]詳細(xì)證明了其正確性。2009年,Lszl等[19]將控制流平坦化技術(shù)運(yùn)用于C/C++代碼的保護(hù)。控制流平坦化會將正常的程序流程轉(zhuǎn)換為switch結(jié)構(gòu),使得基本塊之間的聯(lián)系碎片化,導(dǎo)致逆向分析人員無法直觀地判定出基本塊之間的先后關(guān)系,進(jìn)而提高逆向成本。

    一般來說,指令替換和虛假控制流都是指令級別的語義混淆,而控制流平坦化是函數(shù)級別控制流的整體重構(gòu)[10]。因此,控制流平坦化是最有效且最難還原的混淆方式。

    1.2 IDA Microcode

    IDA Pro作為業(yè)界安全人員的必備工具之一,其強(qiáng)大的反編譯功能深受廣大安全愛好者喜愛。從IDA 7.2版本開始,IDA開發(fā)團(tuán)隊開放了microcode API[21],使得用戶可以改善反編譯器的輸出結(jié)果。與低級匯編語言相比,反編譯器生成的高級語言(也稱為偽代碼)具有簡潔、結(jié)構(gòu)化、易于理解等優(yōu)點(diǎn),甚至可與程序源代碼相媲美[22]。

    IDA可將不同架構(gòu)的匯編指令轉(zhuǎn)換為同一種形式的microcode,然后反編譯器對其進(jìn)行優(yōu)化和轉(zhuǎn)換[21]。因此,對于反混淆研究來說,操作microcode API可忽略指令集架構(gòu)的差異,只需關(guān)心反混淆算法的實(shí)現(xiàn),最后直接生成反混淆后的高級語言。特別地,IDA在內(nèi)部優(yōu)化和轉(zhuǎn)換microcode時,會存在不同的9個成熟度階段(MMAT_ZERO,MMAT_GENERATED,MMAT_PREOPTIMIZED,MMAT_LOCOPT,MMAT_CALLS,MMAT_GLBOPT1,MMAT_GLBOPT2,MMAT_GLBOPT3,MMAT_LVARS)。在不同的成熟度階段,編譯器所做的優(yōu)化操作也不同,根據(jù)需要選取適當(dāng)?shù)某墒於入A段會使得反混淆操作事半功倍。同時,在反混淆處理中需要注意不同成熟度真實(shí)塊之間的對應(yīng)關(guān)系。

    2 反混淆框架的算法設(shè)計與實(shí)現(xiàn)

    控制流混淆一般包括虛假控制流和控制流平坦化。通過配置IDA pro的Segment權(quán)限即可自動對抗虛假控制流。在反混淆中,BinDeob操作microcode API將被混淆函數(shù)的匯編指令轉(zhuǎn)換為中間語言,再通過設(shè)計的兼容定制化混淆的真實(shí)塊識別算法和復(fù)用塊分割算法對中間語言進(jìn)行優(yōu)化和控制流重建,最后得到反混淆后的偽代碼。在BinDeob的設(shè)計過程中主要考慮如下3個問題。

    1) 真實(shí)塊識別。在被定制化混淆器保護(hù)的代碼中,可能存在多個主分發(fā)器與預(yù)分發(fā)器或者只存在主分發(fā)器,文獻(xiàn)[10,20]中提出的真實(shí)塊識別算法均會失效。本文提出一種兼容定制化混淆的真實(shí)塊識別算法,可同時適用于標(biāo)準(zhǔn)和定制化混淆器。

    2) 復(fù)用塊分割。在定制化混淆中,經(jīng)常出現(xiàn)某個真實(shí)塊被多次引用,但該真實(shí)塊的后繼塊卻不唯一,這里稱之為復(fù)用塊。因此,在反混淆時必須多次拷貝復(fù)用塊。文獻(xiàn)[5,10,20]的反混淆操作目標(biāo)為匯編指令,均難以完成分割操作。本文使用中間語言IDA microcode可以很好地解決該問題。

    3) 控制流重建。在確定了真實(shí)塊及真實(shí)塊之間的先后關(guān)系后,通常還需考慮真實(shí)塊有分支與無分支2種情況,最后通過修改相應(yīng)的跳轉(zhuǎn)指令重建控制流程。

    圍繞以上3個問題,提出了基于IDA microcode的控制流反混淆框架BinDeob,其架構(gòu)如圖1所示。具體工作流程為:1)給定一個O-LLVM混淆保護(hù)的二進(jìn)制文件,BinDeob框架首先通過真實(shí)塊識別算法得到難以識別的真實(shí)塊、映射表等信息,該算法能同時適用于標(biāo)準(zhǔn)和定制化混淆器;2)利用復(fù)用塊分割算法復(fù)制并重組被復(fù)用的真實(shí)塊,使得BinDeob在降低控制流重建難度的同時提升反混淆的準(zhǔn)確率;3)根據(jù)真實(shí)塊更新的平坦化變量值重建控制流程;4)得到反混淆后的偽代碼。

    2.1 真實(shí)塊識別

    為了更加準(zhǔn)確地反混淆,首先需要識別出全部真實(shí)塊,即包含原始操作的塊。在實(shí)際工程應(yīng)用中,大多數(shù)為定制化的O-LLVM混淆器,此前文獻(xiàn)[10,20]的反混淆研究均不能適用。此時被混淆函數(shù)的控制流程圖已不再具備相關(guān)規(guī)律,可能出現(xiàn)多個主分發(fā)器或者缺失預(yù)分發(fā)器,導(dǎo)致原真實(shí)塊識別算法無法正常工作。為了兼容定制化O-LLVM混淆器,結(jié)合多指令集架構(gòu)在IDA microcode的特性,將混淆后的控制流結(jié)構(gòu)分為以下5類基本塊,如圖2所示。

    圖2 被混淆函數(shù)的控制流程

    1) 序言:包含函數(shù)中大部分常量以及控制流混淆中的平坦化變量的初始化操作。平坦化變量是O-LLVM添加的決定控制流走向的變量,相當(dāng)于switch語句中的變量表達(dá)式。

    2) 主分發(fā)器:序言的后繼塊且入度最大,通常將入度最大作為識別特征。

    3) 子分發(fā)器:尾指令為某個平坦化常量與平坦化變量的條件跳轉(zhuǎn)。平坦化常量是指O-LLVM分配的多個隨機(jī)常量,相當(dāng)于switch語句中case的常量表達(dá)式。

    4) 返回塊:唯一一個出度為0的基本塊。

    5) 真實(shí)塊:除以上外,其余為真實(shí)塊。通常先更新平坦化變量,再無條件跳轉(zhuǎn)到分發(fā)器,之后進(jìn)入下一輪的switch選擇結(jié)構(gòu)中。

    在5類基本塊識別過程中,最難識別且最關(guān)鍵的是真實(shí)塊。當(dāng)全部的真實(shí)塊未被完全識別時,會導(dǎo)致反混淆的結(jié)果語義不一致;當(dāng)分發(fā)器被錯誤識別為真實(shí)塊時,則不能達(dá)到預(yù)期的反混淆效果。另外,在一些定制化的混淆器中,真實(shí)塊之間會出現(xiàn)復(fù)用的情況,也需要精準(zhǔn)地判斷其是否為真實(shí)塊,以供后續(xù)進(jìn)行分割處理。因此,提出了一種針對定制化混淆的真實(shí)塊識別算法。

    算法1真實(shí)塊識別算法

    輸入:dispatch主分發(fā)器,block_to_key真實(shí)塊與平坦化常量映射表

    輸出:真實(shí)塊列表

    /*遞歸識別后繼的真實(shí)塊*/

    function RecRealBlock(blk_no,dispatch,result)

    for disp_succ in get_mblock(blk_no).succset do

    if disp_succ == dispatch then

    continue

    else

    if disp_succ not in result then

    result.append(disp_succ)

    RecRealBlock(disp_succ,dispatch,result)

    end if

    end for

    end function

    /*獲取所有真實(shí)塊*/

    function Get_RealBlocks(dispatch,block_to_key)

    RealBlocks = []

    for block in block_to_key do

    tmp_realblock = []

    RecRealBlock(block,dispatch,tmp_realblock)

    for rb in tmp_realblock do

    if rb not in RealBlocks then

    RealBlocks.append(rb)

    end if

    end for

    end for

    return RealBlocks

    end function

    上述真實(shí)塊識別算法的主要思想是借助規(guī)律性強(qiáng)、易識別的分發(fā)器逆推得到難以識別的真實(shí)塊。因此先準(zhǔn)確地識別全部分發(fā)器,進(jìn)而確定真實(shí)塊、真實(shí)塊與平坦化常量的映射關(guān)系,供后續(xù)控制流恢復(fù)使用。在真實(shí)塊識別前,需要先從序言中提取平坦化變量,再確定主分發(fā)器的位置。具體操作流程如下:

    1) 確定平坦化變量。若序言中存在mov指令的源操作數(shù)為常量類型,目的操作數(shù)為堆棧變量類型,則記錄目的操作數(shù)。被混淆函數(shù)的控制流程圖具有圖2的一般規(guī)律,平坦化變量會多次出現(xiàn)在子分發(fā)器的條件跳轉(zhuǎn)指令中,且滿足的條件跳轉(zhuǎn)指令只有jz與jnz。因此,掃描整個函數(shù)的jz與jnz指令,當(dāng)滿足右操作數(shù)為常量類型,左操作數(shù)為堆棧變量類型時,記錄左操作數(shù)。之后篩選出現(xiàn)最多的堆棧變量,即為平坦化變量,且該變量應(yīng)存在于序言中。最后根據(jù)平坦化變量可快速準(zhǔn)確地定位子分發(fā)器。特別地,在一些定制化的混淆器中,平坦化變量會賦值到中間變量,導(dǎo)致其未出現(xiàn)在序言中,此時可引入污點(diǎn)分析技術(shù)解決該問題。

    2) 建立平坦化常量與真實(shí)塊的映射。掃描子分發(fā)器的條件跳轉(zhuǎn)指令,當(dāng)操作碼是jz時,平坦化常量為右操作數(shù),與之對應(yīng)的真實(shí)塊為目的操作數(shù);當(dāng)操作碼是jnz時,平坦化常量為右操作數(shù),與之對應(yīng)的真實(shí)塊為該子分發(fā)器的另一個后繼塊。

    3) 遞歸識別真實(shí)塊。通常第2步得到的真實(shí)塊并不完整。如圖2所示,Block7可由Block2計算得到,但Block8與Block9未被識別。因此在算法1中,遍歷已知的真實(shí)塊的全部后繼塊,使用遞歸算法完整且準(zhǔn)確地識別其余真實(shí)塊。

    2.2 復(fù)用塊分割

    在一些定制化的混淆器或者編譯優(yōu)化后的程序中,還會遇到更加復(fù)雜的情況,如真實(shí)塊被復(fù)用等。被復(fù)用的真實(shí)塊可能出現(xiàn)在任意位置,這對反混淆操作目標(biāo)為匯編指令的方案是致命的。因?yàn)樵谝粋€二進(jìn)制文件中不能隨意添加新指令,同時在匯編指令級別準(zhǔn)確識別真實(shí)塊是一件困難的事情。

    如圖3所示,真實(shí)塊被復(fù)用的情況通常可以分為2大類:無分支的單個真實(shí)塊和有分支的一組真實(shí)塊。實(shí)際上,以上2大類還會組合出更多樣、更復(fù)雜的復(fù)用情況。在第一種情況中,A、B兩組真實(shí)塊共用一個真實(shí)塊。該被復(fù)用的真實(shí)塊一般主要負(fù)責(zé)更新平坦化變量,而此時將存在3種不同的平坦化常量影響平坦化變量的取值,最終決定控制流程所到達(dá)的下一組真實(shí)塊。同理,在第二種情況中,平坦化變量將存在最多4種不同的取值。

    圖3 真實(shí)塊復(fù)用示例

    如圖4所示,在真實(shí)塊被復(fù)用時,最終理想的還原效果是將復(fù)用塊拷貝多次,并修復(fù)指向主分發(fā)器的無條件跳轉(zhuǎn)指令目的操作數(shù)為真實(shí)目標(biāo)真實(shí)塊。但在實(shí)際操作中,真實(shí)塊的復(fù)用情況還會更加復(fù)雜,不僅需要制定新的控制流重建規(guī)則,還要創(chuàng)建大量真實(shí)塊、維護(hù)真實(shí)塊之間的流程關(guān)系。由于復(fù)用塊出現(xiàn)的位置不確定性,基于上述規(guī)則的匹配拆分處理是困難的。針對該難題,提出了一種被復(fù)用的真實(shí)塊分割算法。

    圖4 復(fù)用塊分割效果

    算法2復(fù)用塊分割算法

    輸入:dispatch主分發(fā)器, RealBlocks真實(shí)塊列表

    輸出:分割后的真實(shí)塊

    for rb in RealBlocks.GetRepeatBlocks() do

    blk ← get_mblock(rb)

    for pred_num in blk.predset do

    if pred_num != blk.serial - 1 then

    p_blk←get_mblock(pred_num)

    if is_mcode_jcond(blk.tail.opcode) then

    /*處理有條件分支塊*/

    Split_JCCBlk(blk,p_blk,dispatch)

    else

    while blk.succ(0) != dispatch do

    /*拷貝并追加指令*/

    Copy_AppendMinsns(blk,p_blk)

    blk←get_mblock(blk.succ(0))

    end while

    Copy_AppendMinsns(blk,p_blk)

    /*修復(fù)Goto指令*/

    ChangeGoto(p_blk, p_blk.succ(0))

    p_blk.mark_lists_dirty()

    end if

    end if

    end for

    end for

    在算法2中,核心思想是復(fù)制并重組被復(fù)用的真實(shí)塊,這得益于準(zhǔn)確的真實(shí)塊識別,否則分發(fā)器會干擾分割效果。當(dāng)分割操作完成后,程序流程回歸常規(guī)情況,兼容了常規(guī)反混淆流程,在降低控制流重建難度的同時,提升了反混淆的準(zhǔn)確率。

    2.3 控制流重建

    根據(jù)真實(shí)塊更新的平坦化變量值和映射表重建控制流程。在常規(guī)的控制流重建階段,需要考慮以下2種情況:

    1) 真實(shí)塊無分支:如圖2中Block4所示,真實(shí)塊Block4不存在條件分支。由Block4的尾指令開始向上掃描mov指令,當(dāng)源操作數(shù)為常量類型且目的操作數(shù)為平坦化變量時,該源操作數(shù)即為當(dāng)前真實(shí)塊的平坦化常量。最后修改Block4的尾部goto指令,將無條件跳轉(zhuǎn)目標(biāo)更新為映射表中對應(yīng)的編號。

    2) 真實(shí)塊有分支:如圖2中Block7、8、9所示,真實(shí)塊Block7存在條件分支會影響到Block9中平坦化變量的賦值情況,因此Block8與Block9的跳轉(zhuǎn)目標(biāo)不同。于是將Block9的指令復(fù)制到Block8的尾部,接著與無分支的操作類似。如圖5所示,由映射表計算出真實(shí)目標(biāo)基本塊塊號,并修復(fù)goto指令目的操作數(shù)為該塊號,即可完成重建。

    圖5 有條件分支重建

    3 實(shí)驗(yàn)評估與對比分析

    選取 C/C++經(jīng)典混淆基準(zhǔn)[23]和公開的高危安全漏洞作為數(shù)據(jù)集,采用控制流程圖相似度、語義等價、偽代碼相似度作為評估指標(biāo),對提出的BinDeob進(jìn)行實(shí)驗(yàn)評估。最后從反混淆操作語言、指令集架構(gòu)支持、對抗反符號執(zhí)行、對抗反模擬執(zhí)行、對抗定制化混淆、恢復(fù)函數(shù)偽代碼、平均CFG相似度7個方面,將BinDeob與Yadegari[5]、BARF[20]、DiANa[10]、SATURN[14]反混淆框架進(jìn)行對比分析。

    3.1 實(shí)驗(yàn)環(huán)境

    測試環(huán)境為LLVM-8.0.1、NDK 21.1.6352462、Visual Studio 2019、IDA pro 7.5 Service Pack 3及O-LLVM反混淆框架BinDeob。計算機(jī)配置為Windows 10 20H2、Intel?CoreTMi7-9750H CPU @ 2.60 GHz、RAM 32 GiB。

    3.2 數(shù)據(jù)集

    為了全面評估BinDeob的有效性,選取2個構(gòu)建覆蓋率高的可靠開源數(shù)據(jù)集。

    1)C/C++經(jīng)典混淆基準(zhǔn):C/C++混淆基準(zhǔn)被廣泛應(yīng)用于混淆器及反混淆系統(tǒng)的評估,包括常見的基礎(chǔ)算法、哈希函數(shù)和小型程序(包含IF,WHILE和FOR語句的組合)。使用其中的98個基準(zhǔn)程序,同時又將每個程序編譯為arm32、arm64、x86、x64四種架構(gòu)的可執(zhí)行文件,最后從多個指標(biāo)評估BinDeob的有效性。

    2) 公開的高危安全漏洞:選取較有代表性的Microsoft Windows本地提權(quán)漏洞 (CVE-2021-1732)[24],可以更嚴(yán)格評估BinDeob對抗真實(shí)威脅的有效性。該漏洞由微軟公司披露于2021年2月,影響多種不同版本的Windows系統(tǒng)。普通權(quán)限的應(yīng)用程序可利用該漏洞提升至System權(quán)限,被官方評為高危漏洞。

    3.3 評估指標(biāo)

    評估指標(biāo)采用控制流程圖相似度、語義等價、偽代碼相似度。

    1) 控制流程圖(control flow graph,簡稱CFG)相似度。CFG相似度被廣泛用作混淆與反混淆評估的標(biāo)準(zhǔn)[5,10,14,25-26]。采用Hu等[28]提出的算法計算2個CFG之間的相似度,文獻(xiàn)[29]證明該算法是最好的CFG比較算法之一。給定2個控制流程圖G1和G2,此算法使用最大二分匹配來計算G1與G2的頂點(diǎn)之間的對應(yīng)關(guān)系。設(shè)σ(G1,G2)為2個控制流圖G1與G2之間的編輯距離,|Ni|是Gi的節(jié)點(diǎn)數(shù),|Ei|是Gi的邊數(shù),則相似度計算式為

    (1)

    相似度為介于0和1之間的實(shí)數(shù),數(shù)值1說明這2個圖形是完全相同的,而數(shù)值0說明它們是完全不同的。

    2) 語義等價(semantic equivalence,簡稱SE)。語義等價評估指標(biāo)與文獻(xiàn)[10]相同,只計算CFG相似度不足以證明反混淆后的函數(shù),在語義上與原始函數(shù)等效[10]。給定反混淆后的偽代碼以不同的輸入并獲取輸出結(jié)果,最后與源代碼同等操作下的結(jié)果進(jìn)行比較。

    3) 偽代碼相似度(pseudocode similarity,簡稱PCS)。引入偽代碼相似度作為重要的評估指標(biāo)之一。在逆向工程中,靜態(tài)分析二進(jìn)制文件最快最好的辦法是用IDA強(qiáng)大的反編譯功能將匯編指令轉(zhuǎn)換為偽代碼。因此,不論使用哪種反混淆方案,在真實(shí)的逆向場景中都會將反混淆結(jié)果轉(zhuǎn)換成偽代碼。通過引入反混淆后的偽代碼與原始源代碼得到相似度,可以直觀反映反混淆效果。但是該指標(biāo)過于苛刻,因?yàn)榧词共唤?jīng)過混淆,由匯編指令反編譯得到的偽代碼也會與原始源代碼存在差距。在對比了多個代碼相似度比對工具后發(fā)現(xiàn),即使變量名稱發(fā)生更改,源代碼克隆檢測工具CCFindeX[27]仍可準(zhǔn)確提取并計算代碼相似度,因此選用CCFinderX計算偽代碼相似度。該工具最初是由Toshiro Kamiya開發(fā),并在論文中介紹和證明了其有效性[30],它是對先前工具CCFinder的優(yōu)化版本。

    3.4 評估C、C++經(jīng)典混淆基準(zhǔn)

    如表1、2所示,“Sim1”列表示混淆后函數(shù)CFG與原始函數(shù)CFG之間的相似度,“Sim2”列表示反混淆后函數(shù)CFG與原始函數(shù)CFG之間的相似度。實(shí)驗(yàn)結(jié)果表明,反混淆后平均CFG相似度約為0.989,語義等價平均為100%。

    表1 BinDeob在C、C++數(shù)據(jù)集的反混淆結(jié)果(ARM32 ARM64)

    表2 BinDeob在C、C++數(shù)據(jù)集的反混淆結(jié)果(x86 x64)

    圖6為測試程序中的SelectSort函數(shù)在反混淆前后的CFG變化。原始函數(shù)僅有12個基本塊,但經(jīng)過混淆后基本塊數(shù)量暴漲至243個,同時,調(diào)用關(guān)系也變得十分混亂。對于被混淆的函數(shù),無論進(jìn)行靜態(tài)分析還是動態(tài)調(diào)試,逆向所花費(fèi)時間成本都將數(shù)十倍提升。如圖6(c)所示,經(jīng)過BinDeob處理后,基本塊數(shù)量又降至13個,且CFG與原始CFG幾乎一致。實(shí)際上,圖6(c)中5、13塊等價于圖6(a)中12塊,最終CFG相似度由0.085提升至0.966。另外如表3所示,Sim1列數(shù)據(jù)越小說明被混淆的函數(shù)越復(fù)雜,Sim2列數(shù)據(jù)越大則說明反混淆效果越顯著,對比結(jié)果表明,BinDeob在更加復(fù)雜的混淆情況下仍比DiANa的反混淆效果出眾。綜上所述,在ARM32、ARM64、x86、x64架構(gòu)中,BinDeob均能表現(xiàn)出色的反混淆效果。

    圖6 SelectSort函數(shù)CFG

    表3 DiANa與BinDeob在ARM32的對比結(jié)果

    3.5 評估公開的高危漏洞

    評估公開的高危系統(tǒng)漏洞樣本能最大程度反映BinDeob框架對抗實(shí)際威脅的能力。用開源的漏洞代碼[31]對該代碼中最重要的6個函數(shù)進(jìn)行實(shí)驗(yàn)評估。

    如表4所示,混淆后的平均CFG相似度為0.125,反混淆后的平均CFG相似度顯著提升為0.983,同時,原始源代碼與反混淆得到的偽代碼的相似度平均值為0.976。這說明BinDeob可以有效對抗實(shí)際威脅,尤其是對于要求非常高的偽代碼相似度指標(biāo),BinDeob仍能達(dá)到很好的效果。

    3.6 對比分析

    由表5可知,在指令集架構(gòu)支持、對抗定制化混淆、恢復(fù)函數(shù)偽代碼的對比中,BinDeob擁有絕對優(yōu)勢,而且平均CFG相似度優(yōu)于表5中的其余框架。另外,根據(jù)表4的實(shí)驗(yàn)數(shù)據(jù),反混淆后得到的平均偽代碼相似度高達(dá)97.6%,直觀反映了反混淆后偽代碼的可讀性和準(zhǔn)確性。這些都說明該反混淆框架比表5中其他幾個框架擁有更優(yōu)秀的反混淆性能。

    表4 CVE-2021-1732實(shí)驗(yàn)結(jié)果

    表5 反混淆性能對比結(jié)果

    4 結(jié)束語

    提出了一種基于IDA microcode的O-LLVM控制流反混淆框架BinDeob,通過針對定制化混淆的真實(shí)塊識別算法及復(fù)用塊分割算法重建嚴(yán)重混淆的控制流。目前,BinDeob可以很好地處理ARM32、ARM64、x86、x64架構(gòu)可執(zhí)行文件的O-LLVM控制流混淆。相對于參考文獻(xiàn)中提出的其他框架,BinDeob擁有多架構(gòu)支持、高擴(kuò)展性、高CFG還原度、靈活對抗定制化混淆等諸多優(yōu)勢。另外,由BinDeob反混淆得到的偽代碼與原始函數(shù)源代碼相似度高達(dá)97.6%,反混淆后與原始未混淆的程序流程圖相似度高達(dá)98.9%。這些都表明BinDeob相比其他框架具有更出色的性能。

    雖然在O-LLVM控制流反混淆中,BinDeob表現(xiàn)出色,但由于缺乏動態(tài)運(yùn)算功能,BinDeob僅適用于靜態(tài)分析的方案。在字符串加密、間接跳轉(zhuǎn)、指令虛擬化等混淆中,基于模擬執(zhí)行或符號執(zhí)行的動態(tài)分析方案占據(jù)主導(dǎo)地位。賦予BinDeob框架動態(tài)對抗能力是下一步的研究重點(diǎn)。

    猜你喜歡
    基本塊控制流常量
    科學(xué)照亮世界
    ——卡文迪什測定萬有引力常量
    基于級聯(lián)森林的控制流錯誤檢測優(yōu)化算法
    抵御控制流分析的Python 程序混淆算法
    距離與權(quán)重相結(jié)合的導(dǎo)向式灰盒模糊測試方法
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    抵御控制流分析的程序混淆算法
    一種檢測控制流錯誤的多層分段標(biāo)簽方法
    低氧低分壓環(huán)境下泡塑吸附火焰原子吸收光譜法測定常量金
    西藏科技(2015年1期)2015-09-26 12:09:20
    基于控制流隱藏的代碼迷惑
    論常量函數(shù)的充分必要條件
    久久精品国产亚洲av天美| av天堂中文字幕网| 国产三级在线视频| 超碰av人人做人人爽久久| 老司机影院成人| 精品久久久久久久久久久久久| 久久久久免费精品人妻一区二区| 日韩精品青青久久久久久| 国产男人的电影天堂91| 毛片一级片免费看久久久久| 欧美极品一区二区三区四区| 白带黄色成豆腐渣| 亚洲精品日韩av片在线观看| 免费观看无遮挡的男女| av线在线观看网站| 国产精品1区2区在线观看.| 亚洲乱码一区二区免费版| 有码 亚洲区| 日韩欧美精品免费久久| 十八禁国产超污无遮挡网站| 亚洲第一区二区三区不卡| 精品久久久久久电影网| 18禁在线无遮挡免费观看视频| 特大巨黑吊av在线直播| 看十八女毛片水多多多| 成人黄色视频免费在线看| 久久久久人妻精品一区果冻| 妹子高潮喷水视频| 在线天堂中文资源库| 国产精品无大码| 国产精品一区二区在线不卡| 久久久久久免费高清国产稀缺| 亚洲人成网站在线观看播放| 汤姆久久久久久久影院中文字幕| 久久久久人妻精品一区果冻| 国产精品久久久久久精品古装| 国产午夜精品一二区理论片| 日韩人妻精品一区2区三区| 亚洲综合色网址| 亚洲精品国产av成人精品| 中文字幕制服av| 不卡视频在线观看欧美| 亚洲欧美成人综合另类久久久| 久久人人爽av亚洲精品天堂| 晚上一个人看的免费电影| 中文字幕人妻丝袜一区二区 | 在线免费观看不下载黄p国产| 日韩免费高清中文字幕av| 一区二区av电影网| 日本vs欧美在线观看视频| 中国三级夫妇交换| 日本欧美国产在线视频| 成年女人在线观看亚洲视频| 亚洲一区二区三区欧美精品| xxxhd国产人妻xxx| 女人被躁到高潮嗷嗷叫费观| 丝袜美腿诱惑在线| 久久久国产一区二区| 一区二区三区乱码不卡18| 免费观看性生交大片5| 最近2019中文字幕mv第一页| 久久人妻熟女aⅴ| 免费观看在线日韩| 五月伊人婷婷丁香| 国产成人免费观看mmmm| 亚洲精品国产一区二区精华液| 国产精品 欧美亚洲| 日韩成人av中文字幕在线观看| 少妇猛男粗大的猛烈进出视频| 人妻人人澡人人爽人人| 最近2019中文字幕mv第一页| 欧美日韩亚洲高清精品| 波野结衣二区三区在线| 国产麻豆69| 午夜日韩欧美国产| 日韩视频在线欧美| 电影成人av| 97在线视频观看| 日韩 亚洲 欧美在线| 国产又色又爽无遮挡免| 最黄视频免费看| 日韩成人av中文字幕在线观看| 久久久精品区二区三区| 久久久国产精品麻豆| 美女国产视频在线观看| 国产精品99久久99久久久不卡 | 亚洲精品久久成人aⅴ小说| 国产成人精品无人区| 久久久国产一区二区| 国产成人aa在线观看| 国产午夜精品一二区理论片| 少妇被粗大猛烈的视频| av国产精品久久久久影院| 国产欧美日韩一区二区三区在线| 国产有黄有色有爽视频| 中文字幕色久视频| 最近2019中文字幕mv第一页| 欧美+日韩+精品| 日本色播在线视频| 少妇猛男粗大的猛烈进出视频| 亚洲精品日本国产第一区| 欧美97在线视频| 国产精品二区激情视频| 美女主播在线视频| 2021少妇久久久久久久久久久| 亚洲第一av免费看| 母亲3免费完整高清在线观看 | 国产精品久久久av美女十八| 国产精品成人在线| 夜夜骑夜夜射夜夜干| 美女中出高潮动态图| 男女啪啪激烈高潮av片| 我的亚洲天堂| 日本91视频免费播放| 亚洲欧美精品自产自拍| 国产日韩一区二区三区精品不卡| 老熟女久久久| 男女边摸边吃奶| 青青草视频在线视频观看| 女人被躁到高潮嗷嗷叫费观| 国产福利在线免费观看视频| 人人妻人人添人人爽欧美一区卜| 男女午夜视频在线观看| 亚洲av中文av极速乱| 人人妻人人添人人爽欧美一区卜| 丝袜喷水一区| 交换朋友夫妻互换小说| 日韩成人av中文字幕在线观看| 九九爱精品视频在线观看| 香蕉丝袜av| 啦啦啦在线观看免费高清www| a 毛片基地| 尾随美女入室| 久久久久久伊人网av| 中文乱码字字幕精品一区二区三区| 国产av一区二区精品久久| 一区二区三区精品91| 一区二区三区四区激情视频| 丝袜喷水一区| 国产精品无大码| 亚洲成人手机| 80岁老熟妇乱子伦牲交| 亚洲美女视频黄频| 少妇人妻精品综合一区二区| 黑丝袜美女国产一区| 2018国产大陆天天弄谢| 啦啦啦啦在线视频资源| 成人亚洲精品一区在线观看| 男女边吃奶边做爰视频| 妹子高潮喷水视频| 色网站视频免费| av网站在线播放免费| 久久久精品区二区三区| 亚洲欧美一区二区三区黑人 | 女性生殖器流出的白浆| 国产亚洲最大av| 女的被弄到高潮叫床怎么办| 国产成人精品久久二区二区91 | 99九九在线精品视频| 精品一区二区三卡| 精品国产乱码久久久久久小说| 一本大道久久a久久精品| 精品视频人人做人人爽| 亚洲国产av新网站| 三级国产精品片| 精品酒店卫生间| 欧美精品国产亚洲| 九九爱精品视频在线观看| 高清黄色对白视频在线免费看| 制服人妻中文乱码| 丁香六月天网| 亚洲天堂av无毛| 丰满少妇做爰视频| 国产成人一区二区在线| 在线观看三级黄色| 18禁观看日本| 亚洲精品自拍成人| 午夜日韩欧美国产| 伦精品一区二区三区| 一区二区av电影网| 亚洲三区欧美一区| 午夜福利在线观看免费完整高清在| 久久热在线av| 一级爰片在线观看| 日韩不卡一区二区三区视频在线| 国产精品国产三级国产专区5o| 波野结衣二区三区在线| 欧美日韩视频高清一区二区三区二| 亚洲国产精品国产精品| 青草久久国产| 欧美日韩av久久| 久久鲁丝午夜福利片| 中国三级夫妇交换| 男人舔女人的私密视频| 国产极品天堂在线| 亚洲综合精品二区| www.av在线官网国产| 亚洲综合色网址| 黄色 视频免费看| 在线看a的网站| 我的亚洲天堂| 考比视频在线观看| xxx大片免费视频| 超碰97精品在线观看| 99国产综合亚洲精品| www.熟女人妻精品国产| 久久久久国产精品人妻一区二区| 亚洲人成77777在线视频| 啦啦啦在线观看免费高清www| 久热久热在线精品观看| 91午夜精品亚洲一区二区三区| 黄色毛片三级朝国网站| 人人妻人人爽人人添夜夜欢视频| 亚洲精品国产一区二区精华液| 中文字幕亚洲精品专区| 人成视频在线观看免费观看| 美国免费a级毛片| 18禁国产床啪视频网站| 亚洲精品国产一区二区精华液| 国产精品蜜桃在线观看| 欧美精品一区二区大全| 精品国产国语对白av| 80岁老熟妇乱子伦牲交| 在线观看三级黄色| 亚洲少妇的诱惑av| 日韩av在线免费看完整版不卡| 99久久综合免费| 久久久欧美国产精品| 性少妇av在线| 久热久热在线精品观看| 国产极品天堂在线| 午夜91福利影院| 亚洲男人天堂网一区| 爱豆传媒免费全集在线观看| av线在线观看网站| 亚洲精品久久久久久婷婷小说| 亚洲综合精品二区| 国产免费现黄频在线看| 啦啦啦中文免费视频观看日本| 国产淫语在线视频| 18禁裸乳无遮挡动漫免费视频| 老汉色∧v一级毛片| 国产成人精品久久二区二区91 | 女性被躁到高潮视频| 在线天堂中文资源库| 夫妻午夜视频| 天天影视国产精品| 看非洲黑人一级黄片| 国产精品99久久99久久久不卡 | 亚洲一级一片aⅴ在线观看| 啦啦啦啦在线视频资源| 2022亚洲国产成人精品| 老司机影院成人| 久久久国产精品麻豆| 青春草亚洲视频在线观看| 久久久a久久爽久久v久久| 香蕉国产在线看| 美女国产高潮福利片在线看| 丝袜美腿诱惑在线| 最近中文字幕高清免费大全6| 青春草视频在线免费观看| 亚洲欧美成人综合另类久久久| 国产日韩欧美视频二区| 精品福利永久在线观看| 中文字幕精品免费在线观看视频| 久久女婷五月综合色啪小说| 国精品久久久久久国模美| 赤兔流量卡办理| 极品人妻少妇av视频| 亚洲五月色婷婷综合| 精品国产露脸久久av麻豆| 久久热在线av| 欧美变态另类bdsm刘玥| 精品午夜福利在线看| 三上悠亚av全集在线观看| 男女啪啪激烈高潮av片| 中文乱码字字幕精品一区二区三区| 波野结衣二区三区在线| 91精品伊人久久大香线蕉| 日韩欧美一区视频在线观看| 18禁裸乳无遮挡动漫免费视频| 超碰97精品在线观看| 亚洲精品aⅴ在线观看| 亚洲婷婷狠狠爱综合网| 国产不卡av网站在线观看| 精品午夜福利在线看| av线在线观看网站| 少妇人妻 视频| 婷婷色av中文字幕| 一级片免费观看大全| 嫩草影院入口| 黄色一级大片看看| 啦啦啦在线免费观看视频4| 热99久久久久精品小说推荐| 男女国产视频网站| 久久精品熟女亚洲av麻豆精品| 少妇人妻久久综合中文| 伊人久久大香线蕉亚洲五| 国产精品成人在线| 国产亚洲一区二区精品| 亚洲精品久久久久久婷婷小说| 中文乱码字字幕精品一区二区三区| 欧美日韩综合久久久久久| 精品少妇久久久久久888优播| 热99久久久久精品小说推荐| av一本久久久久| 国产xxxxx性猛交| 桃花免费在线播放| 国产野战对白在线观看| 久久久久久伊人网av| 久久久久久久国产电影| 99热国产这里只有精品6| 国产无遮挡羞羞视频在线观看| 欧美精品人与动牲交sv欧美| 曰老女人黄片| 电影成人av| 免费日韩欧美在线观看| 免费观看av网站的网址| 亚洲av免费高清在线观看| 99国产综合亚洲精品| 毛片一级片免费看久久久久| 久久久国产精品麻豆| 亚洲精品久久午夜乱码| 成年人免费黄色播放视频| 青青草视频在线视频观看| 蜜桃在线观看..| 多毛熟女@视频| 巨乳人妻的诱惑在线观看| 亚洲av男天堂| 丁香六月天网| 中文字幕色久视频| 国产xxxxx性猛交| 久久久久视频综合| 巨乳人妻的诱惑在线观看| 最近最新中文字幕免费大全7| 亚洲av在线观看美女高潮| av免费观看日本| 婷婷色av中文字幕| 美女主播在线视频| 天天躁夜夜躁狠狠躁躁| 精品一区二区三区四区五区乱码 | av卡一久久| 女人久久www免费人成看片| 午夜免费鲁丝| www.av在线官网国产| 久久久久久久精品精品| 九草在线视频观看| 卡戴珊不雅视频在线播放| 久久久久国产网址| 黄色毛片三级朝国网站| 国产成人精品在线电影| 一级毛片我不卡| 人人妻人人澡人人爽人人夜夜| 啦啦啦在线免费观看视频4| 日本黄色日本黄色录像| 日本av手机在线免费观看| 亚洲成av片中文字幕在线观看 | 亚洲精品久久成人aⅴ小说| 大片电影免费在线观看免费| 在线观看免费视频网站a站| 菩萨蛮人人尽说江南好唐韦庄| 少妇 在线观看| 亚洲av电影在线进入| 黑人猛操日本美女一级片| 巨乳人妻的诱惑在线观看| 美女国产视频在线观看| 新久久久久国产一级毛片| 又大又黄又爽视频免费| 婷婷成人精品国产| 日本午夜av视频| 超碰97精品在线观看| 最近中文字幕2019免费版| 又粗又硬又长又爽又黄的视频| 久久精品国产亚洲av天美| 老鸭窝网址在线观看| 9色porny在线观看| 亚洲,欧美精品.| 黑人猛操日本美女一级片| 一区福利在线观看| 国产亚洲欧美精品永久| 国产色婷婷99| 色哟哟·www| 国产日韩欧美在线精品| 国产1区2区3区精品| av有码第一页| 美国免费a级毛片| 欧美日韩一区二区视频在线观看视频在线| 国产老妇伦熟女老妇高清| 精品福利永久在线观看| 日韩一区二区三区影片| 亚洲天堂av无毛| 久久久久久久大尺度免费视频| 99热国产这里只有精品6| 国产深夜福利视频在线观看| av免费在线看不卡| 欧美97在线视频| 国产精品三级大全| 国产精品不卡视频一区二区| 啦啦啦中文免费视频观看日本| 黄色一级大片看看| 久久人人爽av亚洲精品天堂| 男人添女人高潮全过程视频| 免费人妻精品一区二区三区视频| av卡一久久| 美女午夜性视频免费| 26uuu在线亚洲综合色| 国产精品久久久久成人av| 亚洲av日韩在线播放| 水蜜桃什么品种好| 日本av免费视频播放| 国产欧美日韩一区二区三区在线| 美女国产视频在线观看| 老女人水多毛片| 最近最新中文字幕免费大全7| 亚洲第一av免费看| 久久ye,这里只有精品| 亚洲国产精品999| 久久精品久久精品一区二区三区| 成人亚洲欧美一区二区av| av电影中文网址| 久久人妻熟女aⅴ| 亚洲欧美中文字幕日韩二区| 大香蕉久久成人网| 久久人人97超碰香蕉20202| 亚洲伊人久久精品综合| 天天影视国产精品| 亚洲精品国产色婷婷电影| 亚洲第一青青草原| 在线观看免费高清a一片| 老司机影院毛片| 一本大道久久a久久精品| 人成视频在线观看免费观看| 久久久精品区二区三区| 精品国产一区二区久久| 波多野结衣av一区二区av| 亚洲内射少妇av| 国产精品不卡视频一区二区| 久久国产亚洲av麻豆专区| 国产精品一区二区在线观看99| 一区二区三区乱码不卡18| 成人毛片60女人毛片免费| 狂野欧美激情性bbbbbb| 国产熟女午夜一区二区三区| 精品亚洲成a人片在线观看| 啦啦啦在线观看免费高清www| 少妇的逼水好多| 国产精品女同一区二区软件| 美女高潮到喷水免费观看| 人妻人人澡人人爽人人| a级毛片在线看网站| 另类精品久久| 亚洲综合色惰| 两个人免费观看高清视频| 青青草视频在线视频观看| 久久久国产精品麻豆| 亚洲四区av| 亚洲激情五月婷婷啪啪| 中文字幕亚洲精品专区| 日韩中文字幕视频在线看片| 亚洲成人av在线免费| 日韩欧美精品免费久久| 国产精品 国内视频| 妹子高潮喷水视频| 一级,二级,三级黄色视频| 久久久精品区二区三区| 亚洲精品自拍成人| 亚洲精品在线美女| 女人精品久久久久毛片| 久久久精品免费免费高清| 日韩成人av中文字幕在线观看| 国产精品一区二区在线观看99| 免费在线观看视频国产中文字幕亚洲 | 丝袜人妻中文字幕| 中文字幕制服av| 各种免费的搞黄视频| 国产午夜精品一二区理论片| 久久国产亚洲av麻豆专区| 天堂中文最新版在线下载| 韩国av在线不卡| 成人国产麻豆网| 日韩视频在线欧美| 校园人妻丝袜中文字幕| 免费观看在线日韩| 最近的中文字幕免费完整| 成人手机av| 97在线人人人人妻| 国产亚洲最大av| 国产精品.久久久| 不卡av一区二区三区| 这个男人来自地球电影免费观看 | 人妻一区二区av| 男男h啪啪无遮挡| 亚洲精品aⅴ在线观看| 激情视频va一区二区三区| 亚洲美女视频黄频| 国产精品久久久av美女十八| 国产精品 欧美亚洲| 日本黄色日本黄色录像| 精品国产国语对白av| a级毛片在线看网站| 久久久久久久大尺度免费视频| 成年女人毛片免费观看观看9 | 久久久久久免费高清国产稀缺| 亚洲伊人久久精品综合| 另类亚洲欧美激情| 亚洲婷婷狠狠爱综合网| 1024视频免费在线观看| 欧美成人午夜免费资源| 国产激情久久老熟女| 国产探花极品一区二区| 在现免费观看毛片| 免费观看a级毛片全部| 一个人免费看片子| 欧美精品国产亚洲| 欧美人与善性xxx| 国语对白做爰xxxⅹ性视频网站| 亚洲一区二区三区欧美精品| 国产在线一区二区三区精| 亚洲内射少妇av| 九草在线视频观看| 下体分泌物呈黄色| 久久精品国产自在天天线| 精品亚洲成a人片在线观看| 国产人伦9x9x在线观看 | 国产老妇伦熟女老妇高清| 波多野结衣一区麻豆| 制服诱惑二区| 国产精品久久久久久精品电影小说| 成人手机av| 男女午夜视频在线观看| 久久午夜综合久久蜜桃| 熟女电影av网| 免费看av在线观看网站| 在线观看三级黄色| 久久久久国产网址| 国产 精品1| 欧美日韩一级在线毛片| 午夜福利乱码中文字幕| 国产成人免费无遮挡视频| 一级毛片黄色毛片免费观看视频| 夜夜骑夜夜射夜夜干| 久久精品国产亚洲av涩爱| 欧美激情极品国产一区二区三区| 啦啦啦在线观看免费高清www| 精品一区二区三卡| 免费久久久久久久精品成人欧美视频| 男女无遮挡免费网站观看| 免费观看av网站的网址| 一级毛片我不卡| 99国产综合亚洲精品| 欧美 亚洲 国产 日韩一| 精品国产乱码久久久久久男人| av不卡在线播放| 亚洲av日韩在线播放| 一二三四在线观看免费中文在| 亚洲av中文av极速乱| 麻豆乱淫一区二区| 日韩av在线免费看完整版不卡| a 毛片基地| 天天操日日干夜夜撸| 国语对白做爰xxxⅹ性视频网站| 精品国产乱码久久久久久男人| 免费日韩欧美在线观看| 成人毛片60女人毛片免费| 丝袜脚勾引网站| 日韩av不卡免费在线播放| 国产日韩欧美视频二区| 国产精品无大码| 狠狠精品人妻久久久久久综合| 又大又黄又爽视频免费| 黑人巨大精品欧美一区二区蜜桃| 亚洲av成人精品一二三区| 日日啪夜夜爽| 18禁裸乳无遮挡动漫免费视频| 国产淫语在线视频| 看免费av毛片| 宅男免费午夜| 超碰成人久久| 国产极品粉嫩免费观看在线| 国产又色又爽无遮挡免| 国产精品久久久久成人av| 五月伊人婷婷丁香| 考比视频在线观看| 午夜福利影视在线免费观看| 欧美日韩视频精品一区| 久久精品aⅴ一区二区三区四区 | 亚洲欧美色中文字幕在线| 日日爽夜夜爽网站| 国产黄色免费在线视频| 国产精品久久久av美女十八| 一二三四中文在线观看免费高清| 国产黄色免费在线视频| 一级爰片在线观看| 卡戴珊不雅视频在线播放| 欧美亚洲 丝袜 人妻 在线| 欧美精品高潮呻吟av久久| 啦啦啦视频在线资源免费观看| 婷婷色麻豆天堂久久| av在线老鸭窝| 国产1区2区3区精品| 超色免费av| 久久狼人影院| 午夜老司机福利剧场| 观看av在线不卡| 国产av一区二区精品久久| 又黄又粗又硬又大视频| 免费在线观看黄色视频的| 熟女av电影| 丝袜脚勾引网站| 国产97色在线日韩免费| 黄色配什么色好看| 日韩一区二区三区影片| 国产亚洲欧美精品永久| 大陆偷拍与自拍| 18禁动态无遮挡网站|