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

    PPC和MIPS指令集下二進(jìn)制代碼中函數(shù)參數(shù)個(gè)數(shù)的識別方法

    2020-08-27 02:34:50尹小康劉鎏劉龍劉勝利
    關(guān)鍵詞:分析

    尹小康,劉鎏,劉龍,劉勝利

    PPC和MIPS指令集下二進(jìn)制代碼中函數(shù)參數(shù)個(gè)數(shù)的識別方法

    尹小康,劉鎏,劉龍,劉勝利

    (數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州 450001)

    函數(shù)參數(shù)個(gè)數(shù)的識別有助于函數(shù)原型的恢復(fù),是進(jìn)行數(shù)據(jù)流分析以及其他安全分析的基礎(chǔ)。為了提高對函數(shù)參數(shù)個(gè)數(shù)識別的準(zhǔn)確率,提出一種依據(jù)函數(shù)調(diào)用關(guān)系的投票機(jī)制來確定函數(shù)參數(shù)個(gè)數(shù)的算法—— Findargs。Findargs從PPC和MIPS指令集的函數(shù)調(diào)用特點(diǎn)出發(fā),利用函數(shù)調(diào)用關(guān)系和參數(shù)傳遞分析,識別函數(shù)參數(shù)的個(gè)數(shù),為函數(shù)原型的恢復(fù)提供幫助。為了評估Findargs的識別效果,選取大型的二進(jìn)制文件進(jìn)行了測試,并與radare2進(jìn)行了對比。實(shí)驗(yàn)結(jié)果表明,F(xiàn)indargs具有更高的準(zhǔn)確率。對于PPC指令集,其準(zhǔn)確率達(dá)到90.3%;對于MIPS指令集,其準(zhǔn)確率為86%。

    靜態(tài)分析;函數(shù)調(diào)用分析;參數(shù)個(gè)數(shù)識別;投票機(jī)制

    1 引言

    二進(jìn)制分析在安全研究中具有重大意義,在安全分析中的應(yīng)用主要有:二進(jìn)制代碼審計(jì)[1]、控制流完整性分析[2]、污點(diǎn)分析[3-4]、符號執(zhí)行[5-6]、漏洞修復(fù)[7]、代碼重用[8]、漏洞挖掘[9-11]等。在高級語言中,函數(shù)名、函數(shù)的參數(shù)個(gè)數(shù)、參數(shù)類型、函數(shù)的返回值等信息能夠有效幫助理解函數(shù)的功能。源代碼經(jīng)過編譯器編譯丟失了如高級語言C/C++中的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、語義以及控制結(jié)構(gòu)等信息,這給研究者分析二進(jìn)制代碼造成了諸多障礙。因此,如何從二進(jìn)制代碼中恢復(fù)出丟失的信息成為二進(jìn)制分析的關(guān)鍵。對二進(jìn)制程序進(jìn)行逆向分析的第一步是對函數(shù)的識別,確定函數(shù)的起始位置、結(jié)束位置、函數(shù)的調(diào)用方式,以及函數(shù)的參數(shù)個(gè)數(shù)。二進(jìn)制代碼逆向分析的準(zhǔn)確率影響后續(xù)安全分析的正確性。

    函數(shù)參數(shù)個(gè)數(shù)的準(zhǔn)確識別是進(jìn)行函數(shù)原型識別的基礎(chǔ),是進(jìn)行數(shù)據(jù)流分析以及其他安全分析的前提。由于精簡過的二進(jìn)制程序中的符號表等信息被移除,無法直接獲得函數(shù)入口等相關(guān)信息[12],增加了對二進(jìn)制可執(zhí)行文件進(jìn)行分析的難度。Caballero等[13]提出了X86指令集下基于動(dòng)態(tài)分析的二進(jìn)制函數(shù)接口識別方法。在無源代碼和符號表的情況下,該方法對二進(jìn)制代碼進(jìn)行動(dòng)態(tài)分析,獲取函數(shù)的原型,以達(dá)到重用二進(jìn)制函數(shù)的目的。由于動(dòng)態(tài)分析無法獲取全面的信息,因此識別效果較差。radare2[14]是最新的二進(jìn)制分析工具,它擁有強(qiáng)大的分析功能,支持對不同架構(gòu)語言的反匯編,在“aaa”命令中實(shí)現(xiàn)了對二進(jìn)制函數(shù)分析的功能,在對PPC和MIPS指令集的二進(jìn)制函數(shù)進(jìn)行分析時(shí),發(fā)現(xiàn)函數(shù)參數(shù)個(gè)數(shù)的識別效果比較差。

    為提高函數(shù)參數(shù)個(gè)數(shù)的識別準(zhǔn)確率,本文提出并實(shí)現(xiàn)了一種基于函數(shù)調(diào)用關(guān)系的函數(shù)參數(shù)個(gè)數(shù)識別算法——Findargs,用于識別PPC和MIPS指令集下二進(jìn)制可執(zhí)行代碼中函數(shù)的參數(shù)個(gè)數(shù)。該方法結(jié)合PPC和MIPS指令集下函數(shù)參數(shù)的傳遞規(guī)則,通過分析函數(shù)調(diào)用時(shí)寄存器以及棧的使用情況,獲取二進(jìn)制函數(shù)的參數(shù)個(gè)數(shù)。為了提高識別的準(zhǔn)確率,F(xiàn)indargs分析獲得所有的函數(shù)調(diào)用關(guān)系,然后對每個(gè)函數(shù)的調(diào)用者進(jìn)行了分析,并通過投票機(jī)制,選取最有可能的參數(shù)個(gè)數(shù)。Findargs適用于對大型固件的分析,并且函數(shù)被調(diào)用的次數(shù)越多,準(zhǔn)確率越高。本文的主要工作如下。

    1) 分析了函數(shù)參數(shù)識別的問題,并提出了二進(jìn)制可執(zhí)行代碼中二進(jìn)制函數(shù)參數(shù)個(gè)數(shù)識別的概念。

    2) 提出并實(shí)現(xiàn)了基于函數(shù)調(diào)用關(guān)系的函數(shù)參數(shù)個(gè)數(shù)識別算法——Findargs。Findargs使用靜態(tài)分析的方法,無須動(dòng)態(tài)執(zhí)行二進(jìn)制文件,適用性較好。

    3) 選取大型的嵌入式系統(tǒng)固件,對該算法進(jìn)行了評估,并與現(xiàn)有的二進(jìn)制分析工具radare2進(jìn)行了對比。實(shí)驗(yàn)結(jié)果表明,F(xiàn)indargs具有更高的準(zhǔn)確率。

    2 問題描述

    2.1 問題定義

    二進(jìn)制函數(shù)是在二進(jìn)制可執(zhí)行文件中,通過函數(shù)識別技術(shù)識別出具有函數(shù)入口和出口的代碼片段。與高級語言中的函數(shù)類似,二進(jìn)制函數(shù)同樣具有函數(shù)名、函數(shù)參數(shù)、函數(shù)返回值等。

    參數(shù)傳遞指令序列是在函數(shù)調(diào)用指令前用于傳遞函數(shù)參數(shù)等信息的一段代碼片段。

    函數(shù)參數(shù)個(gè)數(shù)識別的目的是識別二進(jìn)制函數(shù)中函數(shù)傳遞參數(shù)的個(gè)數(shù),用于分析在二進(jìn)制函數(shù)調(diào)用時(shí)參數(shù)的傳遞情況,進(jìn)而分析程序的數(shù)據(jù)流的傳遞情況。

    2.2 二進(jìn)制函數(shù)調(diào)用特點(diǎn)

    函數(shù)參數(shù)的傳遞一般有3種方式[16]:棧傳遞、寄存器傳遞與全局變量進(jìn)行隱式參數(shù)傳遞。通過棧傳遞參數(shù),需要對參數(shù)的入棧順序進(jìn)行約定,并對棧的平衡方式進(jìn)行約定,最終確定由調(diào)用者還是被調(diào)用者來恢復(fù)棧平衡。對于使用寄存器傳遞參數(shù)來說,同樣需要確定哪些寄存器用于傳遞參數(shù),以及參數(shù)傳遞的順序,并且需要確定當(dāng)參數(shù)個(gè)數(shù)大于可用于傳遞參數(shù)的寄存器數(shù)時(shí),如何進(jìn)行參數(shù)傳遞。對于全局變量進(jìn)行隱式參數(shù)傳遞來說,通過設(shè)置全局變量來共享變量,在一個(gè)函數(shù)內(nèi)對該變量的修改會影響其他函數(shù)中該變量的值。對于使用全局變量進(jìn)行隱式參數(shù)傳遞,需要進(jìn)行數(shù)據(jù)流分析,才能從二進(jìn)制可執(zhí)行代碼中識別出全局變量。

    函數(shù)參數(shù)調(diào)用中常用的調(diào)用約定共有4種:_cdecl(C規(guī)范)、pascal、stdcall與fastcall。表1詳細(xì)展示了各個(gè)調(diào)用約定的參數(shù)傳遞方式和傳遞順序以及平衡棧者。由表1可知,_cdecl、pascal、stdcall均使用棧進(jìn)行參數(shù)的傳遞,fastcall利用處理器中寄存器的優(yōu)勢使用寄存器和棧來傳遞參數(shù)。

    表1 常見的函數(shù)調(diào)用約定

    下面對常用的調(diào)用約定的參數(shù)傳遞方式進(jìn)行詳細(xì)介紹。

    (1)使用棧傳遞參數(shù)

    棧作為一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)被廣泛地應(yīng)用。在調(diào)用函數(shù)時(shí),通過將參數(shù)壓入棧中將參數(shù)傳遞給子程序。函數(shù)調(diào)用結(jié)束后,對棧進(jìn)行平衡操作,將棧恢復(fù)到函數(shù)調(diào)用前的狀態(tài)。當(dāng)函數(shù)具有多個(gè)參數(shù)時(shí),需要對參數(shù)的傳遞順序進(jìn)行約定,以及確定由函數(shù)調(diào)用者或者子程序來恢復(fù)棧的平衡。當(dāng)函數(shù)具有多個(gè)參數(shù)時(shí),_cdecl和stdcall約定參數(shù)的傳遞順序采用由右至左的順序,pascal約定參數(shù)傳遞順序采用由左至右的順序。對于棧的平衡方式,_cdecl是調(diào)用者對棧進(jìn)行平衡,而pascal、stdcall和fastcall使用子程序?qū)_M(jìn)行平衡。圖1為利用棧進(jìn)行函數(shù)參數(shù)的傳遞,該參數(shù)傳遞方式是從右至左,首先將第二個(gè)參數(shù)壓入棧中,然后將第一個(gè)參數(shù)壓入棧中,在使用參數(shù)時(shí)通過ebp或者sp進(jìn)行尋址。

    圖1 利用棧進(jìn)行函數(shù)參數(shù)傳遞

    Figure 1 Function arguments passing with stack

    (2)使用寄存器傳遞參數(shù)

    使用寄存器進(jìn)行參數(shù)傳遞具有快速高效的特點(diǎn),尤其當(dāng)函數(shù)的參數(shù)個(gè)數(shù)較少時(shí),直接將參數(shù)放入寄存器中進(jìn)行讀取,減少了一定的內(nèi)存操作。處理器中擁有多個(gè)寄存器,可以選擇部分寄存器用于函數(shù)參數(shù)的傳遞。由表1可知,fastcall采用寄存器和棧進(jìn)行函數(shù)參數(shù)的傳遞。當(dāng)函數(shù)參數(shù)較少時(shí),直接使用寄存器傳遞參數(shù),當(dāng)函數(shù)參數(shù)超過可用參數(shù)寄存器時(shí),則將多余的參數(shù)通過棧來傳遞。使用棧傳遞參數(shù)時(shí),約定了參數(shù)的傳遞順序和棧平衡操作者。對于fastcall,參數(shù)的傳遞順序因編譯器的不同而不同,但都是通過子程序來平衡棧。

    2.3 PPC和MIPS指令集下的函數(shù)參數(shù)傳遞

    表2列舉了PPC和MIPS指令集中約定可用于傳遞參數(shù)的寄存器。在PPC指令集中,寄存器r3作為函數(shù)的第一個(gè)參數(shù),剩余的參數(shù)分別依次放入r4 ~ r10,由此可知,PPC指令集中可用寄存器最多傳遞8個(gè)參數(shù)。在MIPS指令集下,分別使用編號為4 ~ 7的寄存器來傳遞參數(shù),名稱分別為$a0 ~ $a3,因此,MIPS指令集下可通過寄存器來傳遞參數(shù)的個(gè)數(shù)最大為4,多余的參數(shù)需要通過棧進(jìn)行傳遞。

    表2 PPC和MIPS指令集參數(shù)傳遞方式

    2.4 運(yùn)行實(shí)例

    下面以sub_801FDFA4和sub_600746B8函數(shù)參數(shù)的傳遞方式為例,具體分析PPC和MIPS指令集下函數(shù)參數(shù)的傳遞過程。在PPC指令下用于傳遞參數(shù)的寄存器為r3~r10,在調(diào)用函數(shù)sub_801FDFA4時(shí)使用了r3~r8寄存器,因此函數(shù)的參數(shù)個(gè)數(shù)為6。對于函數(shù)sub_600746B8,則為MIPS指令下的函數(shù),用于傳遞參數(shù)的寄存器為$a0~$a3,在調(diào)用函數(shù)sub_600746B8時(shí),在這段指令中使用了$a1, $a2, $a3寄存器以及進(jìn)行了兩壓?!皊w $v0, 0x40+var_30($sp)”和“sw $s2, 0x40+var_2C($sp)”。參數(shù)寄存器的使用具有以下事實(shí):參數(shù)寄存器是按照順序使用的,當(dāng)后一個(gè)寄存器用于傳遞參數(shù)時(shí),前一個(gè)寄存器必定用于傳遞參數(shù)。可知$a0也用于傳遞參數(shù),共有6個(gè)參數(shù)。PPC指令、MIPS指令下函數(shù)調(diào)用參數(shù)的傳遞分別如圖2、圖3所示。

    圖2 PPC指令下函數(shù)調(diào)用參數(shù)的傳遞

    Figure 2 Function arguments passing in PPC instruction

    圖3 MIPS指令下函數(shù)參數(shù)調(diào)用的傳遞

    Figure 3 Function arguments passing in MIPS instruction

    圖4 函數(shù)參數(shù)識別算法——Findargs

    Figure 4 Function argument identification algorithm—Findargs

    3 二進(jìn)制函數(shù)參數(shù)個(gè)數(shù)識別

    本節(jié)對二進(jìn)制函數(shù)參數(shù)的識別算法進(jìn)行詳細(xì)介紹。二進(jìn)制可執(zhí)行文件的函數(shù)參數(shù)個(gè)數(shù)識別算法——Findargs的流程如圖4所示。

    3.1 函數(shù)邊界的識別

    對函數(shù)邊界的識別是二進(jìn)制分析的基礎(chǔ),需采用的函數(shù)邊界識別方法是FRwithMBA[17],通過分析二進(jìn)制可執(zhí)行代碼,提取出函數(shù)的邊界,包括起始地址和結(jié)束地址,用于函數(shù)調(diào)用關(guān)系的分析。

    3.2 二進(jìn)制函數(shù)調(diào)用關(guān)系的建立與轉(zhuǎn)換

    函數(shù)調(diào)用關(guān)系的分析在二進(jìn)制逆向分析中具有重要作用,如用于惡意代碼分析[18]與分類[19]、計(jì)算代碼相似性[20-21]等,本文將函數(shù)的調(diào)用關(guān)系用于函數(shù)參數(shù)個(gè)數(shù)的識別。函數(shù)調(diào)用關(guān)系的分析是函數(shù)控制流圖生成以及研究數(shù)據(jù)流的基礎(chǔ),函數(shù)調(diào)用關(guān)系圖(FCG,function call graph)對理解大型程序有很大幫助,F(xiàn)CG反映了函數(shù)的結(jié)構(gòu)、可擴(kuò)展性等信息。

    按照分析目標(biāo)的不同,函數(shù)調(diào)用關(guān)系的分析可以分為源碼層面和二進(jìn)制層面;按照分析方式的不同,函數(shù)調(diào)用關(guān)系分析可以分為靜態(tài)分析和動(dòng)態(tài)分析。靜態(tài)分析依賴于對目標(biāo)語言的理解水平,對目標(biāo)語言中的函數(shù)調(diào)用指令分析的全面性,能夠遍歷分析所有分支,但是無法獲取間接函數(shù)調(diào)用的關(guān)系。動(dòng)態(tài)分析是借助函數(shù)運(yùn)行時(shí)的信息進(jìn)行分析,在程序運(yùn)行時(shí),能夠獲得相對于靜態(tài)分析更多的信息,但是對于程序未執(zhí)行到的分支則無法進(jìn)行分析。本文主要研究的是使用靜態(tài)分析方式分析二進(jìn)制可執(zhí)行代碼中的函數(shù)調(diào)用關(guān)系,獲取比較全面的函數(shù)直接調(diào)用關(guān)系,用于后續(xù)的函數(shù)參數(shù)的識別。

    與函數(shù)的邊界識別一樣,對二進(jìn)制代碼中函數(shù)關(guān)系的分析可以采用線性掃描的方式或者遞歸下降回溯掃描的方式。對后續(xù)的參數(shù)識別只需要取函數(shù)調(diào)用的第一層關(guān)系即可。因此,函數(shù)調(diào)用關(guān)系的分析采用靜態(tài)分析的方式,結(jié)合函數(shù)的邊界,采用線性掃描的技術(shù)對整個(gè)代碼段進(jìn)行分析。函數(shù)的邊界為函數(shù)的起始和結(jié)束地址,在每次解析函數(shù)調(diào)用關(guān)系時(shí),將整個(gè)函數(shù)的可執(zhí)行代碼取出進(jìn)行解析,通過解析生成格式為{函數(shù)地址:子程序1,子程序2,子程序3,…,子程序}的形式。在對所有的函數(shù)分析完成后,將格式轉(zhuǎn)換為{子程序:調(diào)用者1,調(diào)用者2,調(diào)用者3,…,調(diào)用者}的形式用于后續(xù)的函數(shù)參數(shù)的識別。

    3.3 基于調(diào)用關(guān)系的函數(shù)參數(shù)個(gè)數(shù)識別算法

    函數(shù)調(diào)用前的一段指令是對參數(shù)進(jìn)行傳遞的指令,為了分析函數(shù)參數(shù)傳遞的情況,只需對函數(shù)調(diào)用前的一段長度的指令進(jìn)行分析,這段代碼為參數(shù)傳遞指令序列。函數(shù)調(diào)用前,父函數(shù)會將調(diào)用子程序時(shí)需要的參數(shù)根據(jù)函數(shù)調(diào)用約定放入寄存器中或者壓入棧中。對二進(jìn)制函數(shù)指令序列進(jìn)行掃描分析,識別出其中的函數(shù)調(diào)用指令。選取函數(shù)調(diào)用前的一段指令序列作為函數(shù)參數(shù)傳遞指令序列,對參數(shù)傳遞指令序列進(jìn)行分析,主要包括兩個(gè)方面:對參數(shù)寄存器的使用情況和棧操作的情況進(jìn)行分析。對參數(shù)寄存器的使用情況分析主要是分析參數(shù)傳遞指令中使用了哪些參數(shù)寄存器,對于PPC指令主要分析r3 ~ r10寄存器的使用情況,對于MIPS指令則主要分析$a0 ~ $a3寄存器的使用情況。對于棧操作的指令分析,主要分析在參數(shù)傳遞指令中是否進(jìn)行了壓棧操作來傳遞參數(shù)。

    對于函數(shù)參數(shù)的傳遞,有以下情況:對于未使用棧進(jìn)行參數(shù)傳遞的函數(shù),函數(shù)參數(shù)個(gè)數(shù)不會超過參數(shù)寄存器的個(gè)數(shù),因?yàn)楫?dāng)參數(shù)寄存器足夠時(shí),必定會使用參數(shù)寄存器來傳遞參數(shù);并且當(dāng)后一個(gè)參數(shù)寄存器用于傳遞參數(shù)時(shí),前一個(gè)參數(shù)寄存器必定也用來傳遞參數(shù),如在PPC指令下進(jìn)行參數(shù)傳遞時(shí),如果r5寄存器被用于傳遞參數(shù),那么前面的r3和r4寄存器也一定被用于傳遞參數(shù)。

    由于編譯器的優(yōu)化,函數(shù)參數(shù)的傳遞位置可能發(fā)生改變,函數(shù)參數(shù)的傳遞會遠(yuǎn)離函數(shù)調(diào)用指令,因此僅對單個(gè)的函數(shù)調(diào)用進(jìn)行參數(shù)識別會出現(xiàn)識別錯(cuò)誤的情況。為解決參數(shù)識別錯(cuò)誤的問題,本文提出采用多函數(shù)調(diào)用分析的方法,即當(dāng)該函數(shù)存在多個(gè)調(diào)用者時(shí),對每個(gè)調(diào)用者都進(jìn)行函數(shù)參數(shù)傳遞分析,獲得該函數(shù)的參數(shù)個(gè)數(shù),然后使用基于投票的方法,選擇函數(shù)參數(shù)個(gè)數(shù)出現(xiàn)頻率最多的為函數(shù)參數(shù)的個(gè)數(shù)。

    通過對函數(shù)的調(diào)用關(guān)系的分析,能夠得到{子程序:調(diào)用者1,調(diào)用者2,調(diào)用者3,…,調(diào)用者}的函數(shù)調(diào)用關(guān)系。為了更準(zhǔn)確地獲得函數(shù)參數(shù)的個(gè)數(shù),本文首先分別計(jì)算函數(shù)的調(diào)用者中傳遞的參數(shù)個(gè)數(shù);然后基于投票的機(jī)制,對函數(shù)的參數(shù)個(gè)數(shù)進(jìn)行投票,獲得票數(shù)最多的為函數(shù)的參數(shù)個(gè)數(shù);最后運(yùn)用函數(shù)參數(shù)個(gè)數(shù)識別算法進(jìn)行函數(shù)參數(shù)個(gè)數(shù)的識別。

    函數(shù)參數(shù)個(gè)數(shù)識別算法——Findargs如下。

    1) 對參數(shù)變量進(jìn)行初始化,設(shè)置函數(shù)參數(shù)個(gè)數(shù)數(shù)組[],并對數(shù)組[]中元素初始化為0;

    2) 從函數(shù)調(diào)用關(guān)系集中取出一個(gè)元素,進(jìn)行函數(shù)參數(shù)個(gè)數(shù)的識別,當(dāng)取出所有元素后,結(jié)束執(zhí)行,進(jìn)行步驟5);

    3.4 運(yùn)行實(shí)例

    調(diào)用函數(shù)Func_37326dc8的函數(shù)關(guān)系如圖5所示。

    由圖5可知共有9個(gè)函數(shù)調(diào)用了該函數(shù),為了準(zhǔn)確識別函數(shù)Func_37326dc8的參數(shù)個(gè)數(shù),對調(diào)用函數(shù)Func_37326dc8的這9個(gè)函數(shù)進(jìn)行參數(shù)傳遞分析,最終選取出現(xiàn)次數(shù)最多的數(shù)為函數(shù)的參數(shù)個(gè)數(shù)。其中,根據(jù)函數(shù)Func_3092dabc傳遞的參數(shù)分析函數(shù)Func_37326dc8的參數(shù)個(gè)數(shù)為2,而對剩余的8個(gè)函數(shù)進(jìn)行參數(shù)傳遞分析獲得的函數(shù)Func_37326dc8的參數(shù)個(gè)數(shù)為3,因此函數(shù)Func_37326dc8的參數(shù)個(gè)數(shù)為3。經(jīng)驗(yàn)證結(jié)果正確。

    4 實(shí)驗(yàn)評估

    4.1 實(shí)驗(yàn)設(shè)置

    本節(jié)對Findargs的函數(shù)參數(shù)識別效果進(jìn)行評估,并與現(xiàn)有的工具radare2進(jìn)行對比。實(shí)驗(yàn)所用計(jì)算機(jī)的配置為Intel R CoreTM 6-core 3.7 GHz i7-8700K CPU and 32 GB RAM。radare2的版本為radare2 2.7.0-git 18197 @ linux-x86-64 git.2.6.0- 32-g3c8d7d53f。

    4.2 實(shí)驗(yàn)結(jié)果

    4.2.1 庫函數(shù)的識別效果

    為了驗(yàn)證函數(shù)參數(shù)個(gè)數(shù)的識別效果,需要選取擁有大量函數(shù)并且調(diào)用關(guān)系多樣的二進(jìn)制代碼。本文選取了路由器固件C2600-IPBA SEM-12.3(6f).BIN(PPC指令集)和C2900- UNIVERSALK9 - M-15.7(3)M2.BIN(MIPS指令集)為測試樣本,逆向分析得到二進(jìn)制中的C語言庫函數(shù),對函數(shù)參數(shù)個(gè)數(shù)的識別效果進(jìn)行驗(yàn)證,C語言部分庫函數(shù)的參數(shù)個(gè)數(shù)識別對比如表3所示。從表中可以看出該方法能夠準(zhǔn)確識別出函數(shù)的參數(shù)個(gè)數(shù)。

    表3 C語言部分庫函數(shù)參數(shù)個(gè)數(shù)識別效果對比

    “—”表示未在PPC指令集的二進(jìn)制文件中發(fā)現(xiàn)此函數(shù)

    圖5 調(diào)用函數(shù)Func_37326dc8的函數(shù)關(guān)系

    Figure 5 The reference relation of function Func_37326dc8

    由表3可知,F(xiàn)indargs對于常用庫函數(shù)的識別的效果較好,原因是庫函數(shù)調(diào)用的次數(shù)比較多,并且函數(shù)的參數(shù)個(gè)數(shù)較少,使用參數(shù)寄存器能夠滿足所有參數(shù)的傳遞。

    4.2.2 未知函數(shù)的識別效果

    為了能夠更準(zhǔn)確地評估Findargs的識別效果,本文從路由器固件中C2600-IPBASE- M-12.3(6f).BIN和C3725-I-M-12.3(1a).BIN逆向分析獲得函數(shù)的參數(shù)個(gè)數(shù),分別使用Findargs和radare2進(jìn)行了參數(shù)個(gè)數(shù)的識別,識別結(jié)果如表4所示。實(shí)驗(yàn)結(jié)果表明,與radare2相比,F(xiàn)indargs具有更高的準(zhǔn)確率。對于PPC指令集,F(xiàn)indargs準(zhǔn)確率達(dá)到90.3%;對于MIPS指令集,識別的準(zhǔn)確率較低,達(dá)到86.0%。在實(shí)驗(yàn)中,F(xiàn)indargs的輸出結(jié)果為函數(shù)的起始地址和參數(shù)個(gè)數(shù)對。而radare2首先通過命令“aaa”對二進(jìn)制可執(zhí)行文件進(jìn)行分析,然后通過“afll”命令輸出到文本中,并使用Python腳本對輸出的結(jié)果進(jìn)行提取以獲得函數(shù)的參數(shù)個(gè)數(shù)。

    表4 函數(shù)參數(shù)識別結(jié)果

    4.2.3 函數(shù)調(diào)用次數(shù)對識別效果的影響

    為了更好地展示Findargs的識別效果和函數(shù)調(diào)用次數(shù)對參數(shù)個(gè)數(shù)識別準(zhǔn)確率的影響,本文依據(jù)函數(shù)的調(diào)用次數(shù)對這些函數(shù)進(jìn)行了分類統(tǒng)計(jì)。對PPC和MIPS指令集分別統(tǒng)計(jì)了上述的300個(gè)函數(shù),分類統(tǒng)計(jì)結(jié)果為:對于PPC指令集,函數(shù)調(diào)用次數(shù)大于或等于2次的共有139個(gè),函數(shù)調(diào)用次數(shù)大于或等于3次的共有77個(gè),函數(shù)調(diào)用次數(shù)大于或等于4次的共有54個(gè);對于MIPS指令集,函數(shù)調(diào)用次數(shù)大于或等于2次的共有144個(gè),函數(shù)調(diào)用次數(shù)大于或等于3次的共有105個(gè),函數(shù)調(diào)用次數(shù)大于或等于4次的共有76個(gè)。函數(shù)調(diào)用次數(shù)對函數(shù)參數(shù)個(gè)數(shù)識別的影響如表5所示,其中,多調(diào)用分析是對所有的調(diào)用者進(jìn)行分析識別準(zhǔn)確的函數(shù)個(gè)數(shù),單調(diào)用分析是只分析其中的一個(gè)函數(shù)調(diào)用進(jìn)行分析識別準(zhǔn)確的函數(shù)個(gè)數(shù)。

    表6展示了不同調(diào)用次數(shù)下的函數(shù)參數(shù)個(gè)數(shù)的識別準(zhǔn)確率。由表中數(shù)據(jù)可知,函數(shù)調(diào)用次數(shù)越多,函數(shù)參數(shù)個(gè)數(shù)的識別準(zhǔn)確率越高,并且多調(diào)用分析的效果好于單調(diào)用分析。

    4.2.4 函數(shù)參數(shù)個(gè)數(shù)對識別效果的影響

    為了研究函數(shù)參數(shù)個(gè)數(shù)對參數(shù)識別準(zhǔn)確率的影響,本文對不同參數(shù)個(gè)數(shù)的函數(shù)進(jìn)行了統(tǒng)計(jì)(如表7所示),分別計(jì)算了識別的準(zhǔn)確率(如表8所示)。由表可知,函數(shù)的參數(shù)個(gè)數(shù)一般小于6個(gè)。整體上來說,在此范圍(參數(shù)小于6)內(nèi)函數(shù)識別的準(zhǔn)確率較高,由于PPC有8個(gè)參數(shù)寄存器,基本能夠滿足函數(shù)進(jìn)行參數(shù)的傳遞。對于MIPS指令而言,在參數(shù)個(gè)數(shù)大于4時(shí),需要借助棧進(jìn)行參數(shù)的傳遞,使用棧進(jìn)行參數(shù)的傳遞比使用參數(shù)寄存器傳遞復(fù)雜,因此識別的準(zhǔn)確率略低。后續(xù)將考慮結(jié)合數(shù)據(jù)流分析追蹤參數(shù)的使用情況來提高M(jìn)IPS指令集下函數(shù)參數(shù)個(gè)數(shù)識別的準(zhǔn)確率。此外,經(jīng)過分析函數(shù)調(diào)用的位置同樣影響函數(shù)參數(shù)個(gè)數(shù)的識別準(zhǔn)確率,位于函數(shù)頭部的函數(shù)調(diào)用由于借用了上層函數(shù)的調(diào)用參數(shù),沒有明顯的傳參行為,因此對存在此類函數(shù)調(diào)用的函數(shù)的識別準(zhǔn)確率較低。

    表5 函數(shù)參數(shù)個(gè)數(shù)識別效果隨調(diào)用次數(shù)的變化情況

    表6 不同調(diào)用次數(shù)下函數(shù)參數(shù)的識別準(zhǔn)確率

    表7 函數(shù)識別個(gè)數(shù)隨函數(shù)參數(shù)個(gè)數(shù)的變化

    表8 函數(shù)識別準(zhǔn)確率隨參數(shù)個(gè)數(shù)的變化

    5 結(jié)束語

    函數(shù)的參數(shù)個(gè)數(shù)作為函數(shù)原型中的一個(gè)重要特征,能夠輔助后續(xù)的二進(jìn)制程序分析。本文提出了二進(jìn)制函數(shù)參數(shù)個(gè)數(shù)分析算法——Findargs,來識別PPC和MIPS指令集下二進(jìn)制代碼中函數(shù)的參數(shù)個(gè)數(shù)。實(shí)驗(yàn)結(jié)果表明,F(xiàn)indargs具有較高的準(zhǔn)確率,對于PPC指令集的二進(jìn)制可執(zhí)行文件,識別準(zhǔn)確率達(dá)到90.3%;對于MIPS指令集的二進(jìn)制可執(zhí)行文件,識別準(zhǔn)確率稍低,為86.0%。并且,本文與現(xiàn)有的工具radare2進(jìn)行了對比,結(jié)果表明Findargs具有更高的準(zhǔn)確率。

    由于Findargs依賴于對參數(shù)寄存器的分析,對于_cdecl、pascal、stdcall僅使用棧進(jìn)行參數(shù)傳遞的方式適用性較差,但對多函數(shù)調(diào)用關(guān)系依據(jù)投票來選擇最準(zhǔn)確的參數(shù)個(gè)數(shù)的機(jī)制可以應(yīng)用到其他3種參數(shù)傳遞規(guī)范。這3種參數(shù)個(gè)數(shù)分析方法可以應(yīng)用到對fastcall參數(shù)傳遞方式的分析。當(dāng)使用fastcall進(jìn)行參數(shù)傳遞時(shí),函數(shù)調(diào)用傳遞的參數(shù)個(gè)數(shù)超過參數(shù)寄存器個(gè)數(shù)時(shí),參數(shù)傳遞的方式與上述3種方式相同。后續(xù)將考慮通過數(shù)據(jù)流分析追蹤參數(shù)的使用情況,來提高參數(shù)個(gè)數(shù)識別的準(zhǔn)確率。

    [1] DURDEN T. Automated vulnerability auditing in machine code[J]. Phrack Magazine, 2007, 64.

    [2] ABADI M, BUDIU M, ERLINGSSON ú, et al. Control-flow integrity principles, implementations, and applications[J]. ACM Transactions on Information and System Security (TISSEC), 2009, 13(1): 4.

    [3] CLAUSE J, LI W, ORSO A. Dytan: a generic dynamic taint analysis framework[C]//International Symposium on Software Testing and Analysis. 2007: 196-206.

    [4] NEWSOME J, SONG D X. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software[C]//NDSS. 2005: 3-4.

    [5] STAATS M, PASAREANU C. Parallel symbolic execution for structural test generation[C]//The 19th International Symposium on Software Testing and Analysis. 2010: 183-194.

    [6] LI H, KIM T, BAT-ERDENE M, et al. Software vulnerability detection using backward trace analysis and symbolic execution[C]//2013 International Conference on Availability, Reliability and Security. 2013: 446-454.

    [7] PERKINS J H, KIM S, LARSEN S, et al. Automatically patching errors in deployed software[C]//The ACM SIGOPS 22nd Symposium on Operating Systems Principles. 2009: 87-102.

    [8] SHACHAM H. The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)[C]//ACM Conference on Computer and Communications Security. 2007: 552-561.

    [9] SONG D, BRUMLEY D, YIN H, et al. BitBlaze: a new approach to computer security via binary analysis[C]//International Conference on Information Systems Security. 2008: 1-25.

    [10] SHOSHITAISHVILI Y, WANG R, SALLS C, et al. Sok:(state of) the art of war: offensive techniques in binary analysis[C]//2016 IEEE Symposium on Security and Privacy (SP). 2016: 138-157.

    [11] 李珍, 鄒德清, 王澤麗, 等. 面向源代碼的軟件漏洞靜態(tài)檢測綜述[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2019, 5(1): 1-14.

    LI Z, ZOU D Q, WANG Z L, et al. Survey on static software vulnerability detection for source code[J]. Chinese Journal of Network and Information Security, 2019, 5(1): 1-14.

    [12] MENG X, MILLER B P. Binary code is not easy[C]//The 25th International Symposium on Software Testing and Analysis. 2016: 24-35.

    [13] CABALLERO J, JOHNSON N M, MCCAMANT S, et al. Binary code extraction and interface identification for security applications[R]. California Univ Berkeley Dept of Electrical Engineering and Computer Science, 2009.

    [14] Radare. The official radare2 book (1st edition)[EB].

    [15] BAO T, BURKET J, WOO M, et al. BYTEWEIGHT: learning to recognize functions in binary code[C]//The 23rd USENIX Security Symposium. 2014: 845-860.

    [16] 段鋼. 加密與解密 (第四版) [M]. 北京: 電子工業(yè)出版社, 2018: 104-105.

    DUAN G. Encryption and decryption (4th edition) [M]. Beijing: Publishing House of Electronics Industry, 2018: 104-105.

    [17] YIN X, LIU S, LIU L, et al. Function recognition in stripped binary of embedded devices[J]. IEEE Access, 2018, 6: 75682-75694.

    [18] HU X, CHIUEH T, SHIN K G. Large-scale malware indexing using function-call graphs[C]//The 16th ACM Conference on Computer and communications security. 2009: 611-620.

    [19] HASSEN M, CHAN P K. Scalable function call graph-based malware classification[C]//The Seventh ACM on Conference on Data and Application Security and Privacy. 2017: 239-248.

    [20] HUANG D X, TANG Y, WANG Y, et al. Toward efficient and accurate function‐call graph matching of binary codes[J]. Concurrency and Computation: Practice and Experience, 2018, 31(21).

    [21] KONG D, YAN G. Discriminant malware distance learning on structural information for automated malware classification[C]//The 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 2013: 1357-1365.

    Function argument number identification instripped binary under PPC and MIPS instruction set

    YIN Xiaokang, LIU Liu, LIU Long, LIU Shengli

    State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou 450001, China

    The identification of the number of function argument contributes to the recovery of the function prototype and is the basis for data flow analysis and other security analysis. In order to improve the accuracy of the recognition of the number of function parameters, an algorithm (Findargs) which determines the number of parameters of the function according to the voting mechanism of the function call relationship was proposed. Findargs starts from the function call characteristics of PPC and MIPS instruction set, and uses function call relationship combined with argument pass analysis to identify the number of function arguments, which can help to recover function prototype. In order to evaluate the recognition effect of Findargs, a large binary file was selected and tested it with radare2. The experiments results show that Findargs has higher accuracy, and the accuracy rate for PPC instruction set reaches 90.3%. For MIPS instruction set, the accuracy rate is 86%.

    static analysis, function call resolve, argument number identification, voting mechanism

    s: The National Key R&D Program of China (2016YFB0801505), Science & Technology Commission Foundation Strengthening Project (2019-JCJQ-ZD-113)

    TP309

    A

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

    尹小康(1994-),男,河南周口人,數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室博士生,主要研究方向?yàn)榫W(wǎng)絡(luò)空間安全和逆向工程。

    劉鎏(1998-),女,安徽合肥人,主要研究方向?yàn)榫W(wǎng)絡(luò)空間安全。

    劉龍(1983-),男,河南尉氏人,數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室副教授,主要研究方向?yàn)榫W(wǎng)絡(luò)空間安全和機(jī)器學(xué)習(xí)。

    劉勝利(1973-),男,河南周口人,博士,數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室教授,主要研究方向?yàn)榫W(wǎng)絡(luò)空間安全。

    論文引用格式:尹小康, 劉鎏, 劉龍, 等. PPC和MIPS指令集下二進(jìn)制代碼中函數(shù)參數(shù)個(gè)數(shù)的識別方法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2020, 6(4): 95-103.

    YIN X K, LIU L, LIU L, et al. Function argument number identification in stripped binary under PPC and MIPS instruction set[J]. Chinese Journal of Network and Information Security, 2020, 6(4): 95-103.

    2019?07?29;

    2019?10?13

    劉勝利,mr.shengliliu@gmail.com

    國家重點(diǎn)研發(fā)計(jì)劃基金(2016YFB0801505);科技委基礎(chǔ)加強(qiáng)項(xiàng)目(2019-JCJQ-ZD-113)

    猜你喜歡
    分析
    禽大腸桿菌病的分析、診斷和防治
    隱蔽失效適航要求符合性驗(yàn)證分析
    電力系統(tǒng)不平衡分析
    電子制作(2018年18期)2018-11-14 01:48:24
    電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢分析
    經(jīng)濟(jì)危機(jī)下的均衡與非均衡分析
    對計(jì)劃生育必要性以及其貫徹實(shí)施的分析
    GB/T 7714-2015 與GB/T 7714-2005對比分析
    出版與印刷(2016年3期)2016-02-02 01:20:11
    網(wǎng)購中不良現(xiàn)象分析與應(yīng)對
    中西醫(yī)結(jié)合治療抑郁癥100例分析
    偽造有價(jià)證券罪立法比較分析
    黄色丝袜av网址大全| 伦理电影免费视频| av片东京热男人的天堂| 男女边摸边吃奶| 性色av乱码一区二区三区2| 女性生殖器流出的白浆| 国产精品免费一区二区三区在线 | 国产av国产精品国产| 伦理电影免费视频| av天堂久久9| 婷婷丁香在线五月| 亚洲国产av新网站| 久久久国产成人免费| 国产精品偷伦视频观看了| 免费人妻精品一区二区三区视频| 国产福利在线免费观看视频| 精品国产一区二区三区久久久樱花| 99在线人妻在线中文字幕 | 少妇精品久久久久久久| 嫩草影视91久久| 久久久久久人人人人人| 国产一区二区三区视频了| 亚洲五月色婷婷综合| 老熟妇乱子伦视频在线观看| 欧美人与性动交α欧美软件| 在线观看舔阴道视频| 欧美乱码精品一区二区三区| 99国产精品99久久久久| 黄色怎么调成土黄色| 久久人人爽av亚洲精品天堂| 制服人妻中文乱码| 亚洲欧洲日产国产| bbb黄色大片| 精品福利永久在线观看| 免费女性裸体啪啪无遮挡网站| 午夜福利一区二区在线看| 999精品在线视频| 亚洲av片天天在线观看| 看免费av毛片| 日日爽夜夜爽网站| 亚洲精品av麻豆狂野| 午夜日韩欧美国产| 9191精品国产免费久久| 99国产精品99久久久久| 国产精品电影一区二区三区 | 国产人伦9x9x在线观看| 黄片播放在线免费| 久久99热这里只频精品6学生| 久久人妻av系列| 91老司机精品| 丁香六月欧美| 热re99久久国产66热| av国产精品久久久久影院| 最近最新中文字幕大全电影3 | 亚洲成人免费电影在线观看| 亚洲熟女毛片儿| 18禁观看日本| 国产精品亚洲一级av第二区| 免费日韩欧美在线观看| 成年版毛片免费区| 精品福利观看| 国产亚洲av高清不卡| 侵犯人妻中文字幕一二三四区| 一边摸一边做爽爽视频免费| 中文亚洲av片在线观看爽 | 下体分泌物呈黄色| √禁漫天堂资源中文www| 精品国产国语对白av| 色综合欧美亚洲国产小说| 成年人黄色毛片网站| 国产亚洲av高清不卡| 一本大道久久a久久精品| 精品久久久精品久久久| 一区二区三区乱码不卡18| 老司机亚洲免费影院| 9热在线视频观看99| 精品国产亚洲在线| 日本黄色视频三级网站网址 | 久热爱精品视频在线9| 亚洲一区中文字幕在线| www日本在线高清视频| 欧美精品亚洲一区二区| 一级毛片女人18水好多| 国产精品一区二区免费欧美| 国产精品免费大片| 视频区图区小说| 日韩大码丰满熟妇| 日韩欧美免费精品| av超薄肉色丝袜交足视频| 日韩大码丰满熟妇| 欧美日韩福利视频一区二区| 少妇的丰满在线观看| 熟女少妇亚洲综合色aaa.| 精品第一国产精品| 黄色毛片三级朝国网站| 欧美人与性动交α欧美软件| 日本黄色视频三级网站网址 | 人人妻,人人澡人人爽秒播| 久久人人97超碰香蕉20202| 久久精品国产a三级三级三级| 天天躁狠狠躁夜夜躁狠狠躁| 精品国产一区二区三区四区第35| 18禁国产床啪视频网站| 国产一区二区三区综合在线观看| 老司机影院毛片| 高清黄色对白视频在线免费看| 精品福利永久在线观看| 国产精品偷伦视频观看了| 一本—道久久a久久精品蜜桃钙片| 色尼玛亚洲综合影院| 人人妻人人添人人爽欧美一区卜| 一级毛片精品| 老司机深夜福利视频在线观看| 下体分泌物呈黄色| 亚洲中文字幕日韩| 久久精品国产a三级三级三级| 亚洲国产毛片av蜜桃av| 午夜福利欧美成人| 99re6热这里在线精品视频| 俄罗斯特黄特色一大片| 丝袜人妻中文字幕| 免费在线观看黄色视频的| 中文字幕色久视频| 久久ye,这里只有精品| www日本在线高清视频| 午夜免费成人在线视频| a级片在线免费高清观看视频| 中文字幕另类日韩欧美亚洲嫩草| 欧美在线一区亚洲| 一区在线观看完整版| av又黄又爽大尺度在线免费看| 丰满迷人的少妇在线观看| 99九九在线精品视频| 黄色视频在线播放观看不卡| 999精品在线视频| 国产真人三级小视频在线观看| 国产不卡av网站在线观看| 国产亚洲欧美在线一区二区| 男女下面插进去视频免费观看| 欧美日韩视频精品一区| aaaaa片日本免费| 久久久国产一区二区| 国产在线精品亚洲第一网站| 大片免费播放器 马上看| 757午夜福利合集在线观看| 国产成人欧美| 国产在线观看jvid| 亚洲精品美女久久av网站| 高清黄色对白视频在线免费看| 中文欧美无线码| 国产成人欧美在线观看 | 一级片'在线观看视频| 9色porny在线观看| 又黄又粗又硬又大视频| 亚洲精品国产区一区二| 日韩免费高清中文字幕av| 亚洲欧洲精品一区二区精品久久久| 国产极品粉嫩免费观看在线| 天堂中文最新版在线下载| 欧美激情 高清一区二区三区| 丁香欧美五月| 纯流量卡能插随身wifi吗| 侵犯人妻中文字幕一二三四区| 免费日韩欧美在线观看| 国产1区2区3区精品| 中文字幕最新亚洲高清| 午夜激情久久久久久久| 99热网站在线观看| 亚洲色图综合在线观看| 精品福利观看| 国产日韩欧美亚洲二区| 亚洲精品美女久久久久99蜜臀| 亚洲黑人精品在线| 后天国语完整版免费观看| 亚洲成国产人片在线观看| 日日夜夜操网爽| 777久久人妻少妇嫩草av网站| 日韩免费av在线播放| 国产一卡二卡三卡精品| 少妇裸体淫交视频免费看高清 | 免费女性裸体啪啪无遮挡网站| 欧美亚洲 丝袜 人妻 在线| 久久精品国产99精品国产亚洲性色 | 岛国在线观看网站| 精品福利观看| 99国产极品粉嫩在线观看| 99re6热这里在线精品视频| 亚洲国产精品一区二区三区在线| 在线观看免费午夜福利视频| 国产aⅴ精品一区二区三区波| 午夜福利影视在线免费观看| 国产高清视频在线播放一区| h视频一区二区三区| 久久中文字幕一级| 在线观看免费日韩欧美大片| 老司机午夜福利在线观看视频 | 国产精品久久久久久精品古装| 国产不卡一卡二| 大陆偷拍与自拍| 99香蕉大伊视频| 成人影院久久| 黄色视频在线播放观看不卡| 极品少妇高潮喷水抽搐| 高清视频免费观看一区二区| 亚洲九九香蕉| 麻豆国产av国片精品| 大片电影免费在线观看免费| 青青草视频在线视频观看| 热99国产精品久久久久久7| 天天躁夜夜躁狠狠躁躁| 欧美激情 高清一区二区三区| 国产福利在线免费观看视频| av片东京热男人的天堂| 黄色毛片三级朝国网站| 天堂俺去俺来也www色官网| 在线观看免费视频网站a站| 在线看a的网站| 国产精品亚洲av一区麻豆| 日日摸夜夜添夜夜添小说| 国产一区二区三区视频了| 久热这里只有精品99| 叶爱在线成人免费视频播放| 精品国产乱码久久久久久小说| 国产日韩一区二区三区精品不卡| 一本大道久久a久久精品| 精品亚洲成国产av| 美女高潮喷水抽搐中文字幕| 69av精品久久久久久 | 男人舔女人的私密视频| 精品人妻在线不人妻| 男女免费视频国产| 一本色道久久久久久精品综合| 天堂8中文在线网| 精品少妇一区二区三区视频日本电影| 在线观看免费视频网站a站| 日韩欧美免费精品| 午夜老司机福利片| 亚洲色图综合在线观看| 免费在线观看影片大全网站| 美女高潮喷水抽搐中文字幕| 这个男人来自地球电影免费观看| 一级片'在线观看视频| 在线 av 中文字幕| 国产日韩欧美在线精品| 日韩欧美免费精品| 国产极品粉嫩免费观看在线| 50天的宝宝边吃奶边哭怎么回事| 亚洲成人免费电影在线观看| 一进一出好大好爽视频| 日韩大码丰满熟妇| 国产精品 欧美亚洲| 手机成人av网站| 久久毛片免费看一区二区三区| 电影成人av| 午夜久久久在线观看| 久久精品亚洲熟妇少妇任你| 啦啦啦免费观看视频1| 欧美激情高清一区二区三区| 一本—道久久a久久精品蜜桃钙片| 国产精品久久久久成人av| 精品人妻1区二区| 国产精品.久久久| 性少妇av在线| 欧美人与性动交α欧美软件| 又紧又爽又黄一区二区| 十八禁高潮呻吟视频| 亚洲七黄色美女视频| 亚洲精品国产一区二区精华液| 欧美日韩精品网址| 久久久欧美国产精品| 亚洲av国产av综合av卡| 久久影院123| 日本黄色视频三级网站网址 | 午夜福利乱码中文字幕| 一本一本久久a久久精品综合妖精| 电影成人av| 亚洲avbb在线观看| 国产精品一区二区精品视频观看| 欧美亚洲日本最大视频资源| 国产不卡av网站在线观看| 大香蕉久久网| 国产黄色免费在线视频| www.熟女人妻精品国产| 亚洲欧美日韩另类电影网站| 欧美变态另类bdsm刘玥| 国产黄色免费在线视频| 91大片在线观看| 欧美日韩黄片免| 成年人免费黄色播放视频| 国产国语露脸激情在线看| 亚洲中文日韩欧美视频| 另类精品久久| 女人久久www免费人成看片| 国产成人av教育| 亚洲午夜理论影院| 无遮挡黄片免费观看| 男女之事视频高清在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲午夜精品一区,二区,三区| 亚洲精品久久成人aⅴ小说| 国产精品 国内视频| 国产在线精品亚洲第一网站| 亚洲视频免费观看视频| 国产免费福利视频在线观看| 欧美日韩亚洲国产一区二区在线观看 | 黑丝袜美女国产一区| 狂野欧美激情性xxxx| 在线观看66精品国产| 欧美老熟妇乱子伦牲交| 亚洲国产精品一区二区三区在线| 亚洲国产中文字幕在线视频| 亚洲欧美日韩另类电影网站| 日本精品一区二区三区蜜桃| 别揉我奶头~嗯~啊~动态视频| 色播在线永久视频| 天天躁狠狠躁夜夜躁狠狠躁| 中文字幕人妻丝袜制服| 在线av久久热| 久久精品亚洲熟妇少妇任你| 国产免费av片在线观看野外av| 黄片大片在线免费观看| 日日摸夜夜添夜夜添小说| 精品亚洲成国产av| 欧美精品人与动牲交sv欧美| 国产精品一区二区免费欧美| 999久久久国产精品视频| 香蕉丝袜av| 一级毛片电影观看| 欧美成人午夜精品| 十八禁网站网址无遮挡| 美女主播在线视频| 王馨瑶露胸无遮挡在线观看| 久久国产精品男人的天堂亚洲| 最新的欧美精品一区二区| 亚洲精品av麻豆狂野| 国产在线一区二区三区精| 国产伦人伦偷精品视频| 亚洲精品国产一区二区精华液| 欧美激情久久久久久爽电影 | 俄罗斯特黄特色一大片| 国产精品美女特级片免费视频播放器 | 精品少妇黑人巨大在线播放| 后天国语完整版免费观看| 脱女人内裤的视频| 十八禁高潮呻吟视频| 99国产精品一区二区蜜桃av | 精品少妇久久久久久888优播| 伊人久久大香线蕉亚洲五| 免费高清在线观看日韩| 免费久久久久久久精品成人欧美视频| 国产精品亚洲一级av第二区| 国产午夜精品久久久久久| 一本—道久久a久久精品蜜桃钙片| 精品少妇一区二区三区视频日本电影| 啦啦啦 在线观看视频| 日韩大片免费观看网站| 老熟妇乱子伦视频在线观看| 啦啦啦 在线观看视频| 中文字幕色久视频| 超碰97精品在线观看| 成人亚洲精品一区在线观看| 最新在线观看一区二区三区| 国产日韩欧美视频二区| 免费高清在线观看日韩| 国产成人啪精品午夜网站| 黄色 视频免费看| 黑丝袜美女国产一区| 亚洲avbb在线观看| 美女视频免费永久观看网站| 中文字幕另类日韩欧美亚洲嫩草| 在线播放国产精品三级| 少妇粗大呻吟视频| 国产免费福利视频在线观看| 国产日韩一区二区三区精品不卡| 国产欧美日韩一区二区三区在线| 高清黄色对白视频在线免费看| 色视频在线一区二区三区| 国产在线一区二区三区精| 午夜福利在线观看吧| 91精品国产国语对白视频| 黑人巨大精品欧美一区二区蜜桃| 亚洲九九香蕉| 久久热在线av| 亚洲成人免费av在线播放| 一边摸一边抽搐一进一小说 | 久久青草综合色| 无遮挡黄片免费观看| 最近最新免费中文字幕在线| 久久 成人 亚洲| 考比视频在线观看| 精品熟女少妇八av免费久了| a级毛片黄视频| 高清视频免费观看一区二区| 国产av又大| 日韩免费高清中文字幕av| 国产欧美日韩一区二区三| 国产一区二区在线观看av| 国产精品99久久99久久久不卡| 女人久久www免费人成看片| av又黄又爽大尺度在线免费看| 建设人人有责人人尽责人人享有的| 少妇裸体淫交视频免费看高清 | 成年女人毛片免费观看观看9 | 精品国内亚洲2022精品成人 | 一区二区三区激情视频| 19禁男女啪啪无遮挡网站| 精品欧美一区二区三区在线| 亚洲三区欧美一区| 天天添夜夜摸| 国产精品免费大片| av免费在线观看网站| 大陆偷拍与自拍| 在线播放国产精品三级| 韩国精品一区二区三区| 啪啪无遮挡十八禁网站| 久久久久久久久免费视频了| 亚洲欧美色中文字幕在线| 日韩人妻精品一区2区三区| 亚洲av片天天在线观看| 国产精品国产av在线观看| 精品久久久久久电影网| 国产亚洲一区二区精品| 国产福利在线免费观看视频| 久久 成人 亚洲| 热99久久久久精品小说推荐| 男人操女人黄网站| 女性被躁到高潮视频| 亚洲精品粉嫩美女一区| 成年动漫av网址| 一个人免费看片子| 国产欧美日韩一区二区精品| 色婷婷久久久亚洲欧美| 视频区欧美日本亚洲| 成人18禁在线播放| 欧美+亚洲+日韩+国产| 18在线观看网站| av不卡在线播放| 亚洲精品美女久久av网站| 国产精品欧美亚洲77777| 国产在线一区二区三区精| 免费人妻精品一区二区三区视频| 欧美国产精品va在线观看不卡| 黄色视频不卡| av一本久久久久| 亚洲国产毛片av蜜桃av| 精品熟女少妇八av免费久了| 黑人巨大精品欧美一区二区mp4| 丝袜美腿诱惑在线| 国产成人av激情在线播放| av在线播放免费不卡| 亚洲人成伊人成综合网2020| 欧美成人午夜精品| 51午夜福利影视在线观看| 精品国内亚洲2022精品成人 | 日韩中文字幕欧美一区二区| 成在线人永久免费视频| 国产99久久九九免费精品| 久久久欧美国产精品| 成年女人毛片免费观看观看9 | 亚洲午夜理论影院| 国产伦理片在线播放av一区| 国产亚洲欧美精品永久| 精品人妻1区二区| 99精品久久久久人妻精品| 日本黄色视频三级网站网址 | 欧美亚洲 丝袜 人妻 在线| av不卡在线播放| 久久国产精品大桥未久av| 久久午夜综合久久蜜桃| 亚洲欧美色中文字幕在线| 午夜老司机福利片| 建设人人有责人人尽责人人享有的| 高清黄色对白视频在线免费看| 精品国产国语对白av| 亚洲熟妇熟女久久| 丰满人妻熟妇乱又伦精品不卡| 久久狼人影院| 首页视频小说图片口味搜索| www.自偷自拍.com| 亚洲色图 男人天堂 中文字幕| 国产精品亚洲一级av第二区| 国产成人精品无人区| 丰满少妇做爰视频| 国产精品九九99| 淫妇啪啪啪对白视频| 欧美午夜高清在线| 欧美成人免费av一区二区三区 | 9热在线视频观看99| 国产三级黄色录像| 久久国产精品人妻蜜桃| 欧美变态另类bdsm刘玥| 2018国产大陆天天弄谢| videos熟女内射| 日本wwww免费看| 亚洲国产欧美日韩在线播放| 又大又爽又粗| 九色亚洲精品在线播放| 久久精品国产亚洲av高清一级| 欧美乱码精品一区二区三区| 亚洲av日韩精品久久久久久密| 亚洲精品av麻豆狂野| 国产在线视频一区二区| 色视频在线一区二区三区| 亚洲精品一二三| www.熟女人妻精品国产| 久久精品国产亚洲av香蕉五月 | 亚洲欧洲精品一区二区精品久久久| 欧美精品高潮呻吟av久久| 老司机午夜十八禁免费视频| 大型黄色视频在线免费观看| av福利片在线| 一区二区三区激情视频| 一级,二级,三级黄色视频| 一边摸一边抽搐一进一出视频| 久久精品国产亚洲av高清一级| 中文字幕精品免费在线观看视频| 国产男女超爽视频在线观看| 啦啦啦视频在线资源免费观看| 亚洲精品美女久久久久99蜜臀| 精品第一国产精品| 黄片小视频在线播放| 久久影院123| kizo精华| 在线播放国产精品三级| 日韩精品免费视频一区二区三区| 色综合欧美亚洲国产小说| 丁香欧美五月| 美女扒开内裤让男人捅视频| 精品视频人人做人人爽| 久久久久国产一级毛片高清牌| 国产淫语在线视频| 自拍欧美九色日韩亚洲蝌蚪91| 极品少妇高潮喷水抽搐| 老司机午夜十八禁免费视频| 天天躁夜夜躁狠狠躁躁| 一进一出抽搐动态| 999久久久国产精品视频| 国产极品粉嫩免费观看在线| 天天躁夜夜躁狠狠躁躁| 日本一区二区免费在线视频| 三上悠亚av全集在线观看| 成年人黄色毛片网站| 久热爱精品视频在线9| 亚洲av国产av综合av卡| 亚洲五月色婷婷综合| 欧美日韩成人在线一区二区| 麻豆乱淫一区二区| 欧美亚洲 丝袜 人妻 在线| 建设人人有责人人尽责人人享有的| 又大又爽又粗| 午夜两性在线视频| 免费人妻精品一区二区三区视频| 999久久久精品免费观看国产| 一区在线观看完整版| 午夜精品国产一区二区电影| 制服诱惑二区| 12—13女人毛片做爰片一| bbb黄色大片| 国产深夜福利视频在线观看| 中文字幕人妻熟女乱码| 999久久久国产精品视频| 极品人妻少妇av视频| 亚洲伊人色综图| 久久久久久亚洲精品国产蜜桃av| 免费看a级黄色片| 首页视频小说图片口味搜索| 欧美在线黄色| 国产成人啪精品午夜网站| 国产免费av片在线观看野外av| 久久午夜综合久久蜜桃| 99re6热这里在线精品视频| 精品少妇久久久久久888优播| 亚洲成av片中文字幕在线观看| 亚洲 欧美一区二区三区| 久久久国产精品麻豆| 国产亚洲精品一区二区www | 黑丝袜美女国产一区| 欧美 亚洲 国产 日韩一| 国产福利在线免费观看视频| 欧美精品亚洲一区二区| 99国产精品一区二区蜜桃av | 黑人巨大精品欧美一区二区mp4| 又大又爽又粗| 女人被躁到高潮嗷嗷叫费观| bbb黄色大片| videos熟女内射| 欧美日韩黄片免| 国产欧美日韩一区二区精品| 亚洲 国产 在线| 国产97色在线日韩免费| 久久狼人影院| av天堂久久9| 捣出白浆h1v1| 91九色精品人成在线观看| 18禁美女被吸乳视频| 在线观看66精品国产| 欧美精品一区二区免费开放| 在线亚洲精品国产二区图片欧美| 黄色片一级片一级黄色片| 久久精品国产a三级三级三级| 国产区一区二久久| av在线播放免费不卡| 精品第一国产精品| 国产三级黄色录像| 久久精品亚洲精品国产色婷小说| 狠狠婷婷综合久久久久久88av| 美女国产高潮福利片在线看| 中亚洲国语对白在线视频| 蜜桃国产av成人99| aaaaa片日本免费| 亚洲国产毛片av蜜桃av| 欧美国产精品一级二级三级| 99精品欧美一区二区三区四区| 日日爽夜夜爽网站| 久久中文字幕人妻熟女|