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

    基于全局偏移表進行通用動態(tài)鏈接庫函數(shù)跟蹤的方法

    2020-06-11 13:46:44張木梁王國慶張磊
    電子技術(shù)與軟件工程 2020年3期
    關(guān)鍵詞:進程

    張木梁 王國慶 張磊

    (1.武漢深之度科技有限公司技術(shù)部 北京市 100080)

    (2武漢深之度科技有限公司研發(fā)中心 北京市 100080)

    1 簡介

    為了能夠向用戶提供一個通用的、高性能的方法進行動態(tài)鏈接庫函數(shù)跟蹤。本文引入了“一種基于全局偏移表進行通用動態(tài)鏈接庫函數(shù)跟蹤的方法”技術(shù)。

    本發(fā)明技術(shù)受到基于PRELOAD的同名庫函數(shù)跟蹤與基于ptrace的斷點式程序調(diào)試跟蹤的啟發(fā),通過新的方法對進程執(zhí)行過程中GOT表的修改與掛鉤,能提供高性能的、通用的動態(tài)鏈接庫函數(shù)的跟蹤分析。

    2 動態(tài)鏈接庫函數(shù)跟蹤設(shè)計

    2.1 簡要分析

    Linux操作系統(tǒng)下的可執(zhí)行程序普遍使用ELF格式,為了提高軟件的模塊化、運行性能與可維護性,減少軟件啟動時間與整體系統(tǒng)的內(nèi)存占用,動態(tài)鏈接的技術(shù)被廣泛使用。動態(tài)鏈接指的是軟件運行所依賴的功能被存儲在軟件以外的動態(tài)鏈接庫中,動態(tài)鏈接庫暴露出字符串形式的函數(shù)接口,在運行期間,軟件、動態(tài)鏈接器與動態(tài)鏈接庫都被載入到軟件的進程空間中。軟件在調(diào)用某個動態(tài)鏈接庫中的某個函數(shù)前,動態(tài)鏈接器會根據(jù)此函數(shù)的字符串名稱解析得到動態(tài)鏈接庫中函數(shù)的具體位置,并跳轉(zhuǎn)到此函數(shù)的位置處執(zhí)行代碼,從而開始函數(shù)調(diào)用。由于此函數(shù)名解析定位以及調(diào)用的整個過程是在軟件運行期間發(fā)生的,而不是在軟件編譯鏈接生成可執(zhí)行程序的過程中發(fā)生的,因此此項技術(shù)被稱為動態(tài)鏈接。

    更具體的,在ELF文件中存在多個節(jié)(section),與動態(tài)鏈接密切相關(guān)的節(jié)包括全局偏移表(GOT,Global Offset Table)、過程鏈接表(PLT,Procedure Linkage Table)等。程序調(diào)用庫函數(shù)時實際上會調(diào)用PLT中的代碼,PLT中的代碼會跳轉(zhuǎn)到GOT表中存儲的地址處,而GOT表中的地址應(yīng)該是程序所需要調(diào)用的外部動態(tài)鏈接庫函數(shù)的地址,由于在靜態(tài)鏈接時相應(yīng)的地址是未知的,因此其初始值實際上此地址填寫的是指向PLT中的另一段代碼,這段代碼配合動態(tài)鏈接器負(fù)責(zé)在程序運行時解析對應(yīng)的動態(tài)鏈接庫函數(shù)地址,并最終修改GOT表中相應(yīng)的地址為此地址,然后再跳轉(zhuǎn)到此地址去執(zhí)行庫函數(shù)。這樣,當(dāng)以后程序再次調(diào)用此庫函數(shù)時,即可直接跳轉(zhuǎn)到庫函數(shù)處執(zhí)行代碼,而不用再進行解析查找了。

    一般GOT節(jié)的名稱為.got.plt,其它動態(tài)鏈接相關(guān)的節(jié)還包括.dynsym節(jié)(動態(tài)符號),里面包含了動態(tài)鏈接所需要的符號信息,.dynstr節(jié)(動態(tài)鏈接符號所對應(yīng)的字符串),.rela.plt節(jié)(重定位表節(jié),里面包含了每個動態(tài)鏈接項在動態(tài)符號表中的下標(biāo)、鏈接項的虛擬內(nèi)存地址等信息)等。

    本發(fā)明基于ELF文件與進程中GOT表的修改與掛鉤的設(shè)計與實現(xiàn),以及動態(tài)生成跳轉(zhuǎn)代碼表(trampoline)的技術(shù)方案的設(shè)計與實現(xiàn)。

    跟蹤庫函數(shù)主要的技術(shù)包括兩種,分別是基于PRELOAD的同名庫函數(shù)跟蹤與基于ptrace的斷點式程序調(diào)試跟蹤。

    總的來說,本發(fā)明設(shè)計思路通用,性能高主要是因為:

    (1)相比于基于PRELOAD的同名庫函數(shù)跟蹤的方法,針對每個待跟蹤的函數(shù),都需要進行手工函數(shù)聲明,無法以通用的方式對未知的動態(tài)鏈接庫函數(shù)進行跟蹤的問題進行改進。

    (2)相比較于基于ptrace的斷點式程序調(diào)試跟蹤的方法,在Linux操作系統(tǒng)下非常復(fù)雜的系統(tǒng)調(diào)用,牽涉到進程間通信、信號處理、進程狀態(tài)查看與修改等,因此在國產(chǎn)處理器上的實現(xiàn)往往不完整或者有缺陷,會導(dǎo)致功能缺失或者性能下降的問題提高了性能。

    2.2 與本發(fā)明相關(guān)的現(xiàn)有技術(shù)一

    2.2.1 現(xiàn)有技術(shù)一的技術(shù)方案

    在現(xiàn)有環(huán)境下,跟蹤庫函數(shù)主要的技術(shù)包括兩種,分別是基于PRELOAD的同名庫函數(shù)跟蹤與基于ptrace的斷點式程序調(diào)試跟蹤。

    為了調(diào)整程序運行時的行為,動態(tài)鏈接器提供了PRELOAD機制,系統(tǒng)管理員或者用戶可以通過修改/etc/ld.so.preload文件或者設(shè)置LD_PRELOAD環(huán)境變量,以告之動態(tài)鏈接器,在軟件啟動之后首先載入上述文件或環(huán)境變量指定的動態(tài)鏈接庫L。如果希望跟蹤程序?qū)討B(tài)鏈接庫函數(shù)(如func1)的調(diào)用,開發(fā)人員可以在此動態(tài)鏈接庫L中聲明一個外部可調(diào)用的,與func1完全一樣的函數(shù)簽名(function signature)即可。這樣,在程序調(diào)用func1函數(shù)時,實際上將調(diào)用L中的func1函數(shù),而不是原來的func1函數(shù)。通過此方法,即可對感興趣的動態(tài)鏈接庫函數(shù)進行跟蹤。

    這種技術(shù)經(jīng)常被用在對特定程序的跟蹤上,而沒有通用工具可以支持。

    2.2.2 現(xiàn)有技術(shù)一的缺點

    使用PRELOAD方法進行動態(tài)鏈接庫函數(shù)的跟蹤無法解決通用性問題。

    從上述PRELOAD的技術(shù)方案可以看出,如果需要跟蹤某個庫函數(shù),例如glibc中寫入文件數(shù)據(jù)的函數(shù)write,則需要首先開發(fā)一個動態(tài)鏈接庫,并在其中聲明與write完全一樣的函數(shù)簽名(ssize_t write(int fd,const void *buf,size_t count)),然后再在自行開發(fā)的write函數(shù)內(nèi)部實現(xiàn)函數(shù)的跟蹤處理,并最終調(diào)用glibc實現(xiàn)的write函數(shù)(不然程序的邏輯顯然會出現(xiàn)問題)。

    因此,針對每個待跟蹤的函數(shù),都需要進行手工函數(shù)聲明,無法以通用的方式對未知的動態(tài)鏈接庫函數(shù)進行跟蹤,而在實際情況中,我們常常需要對一系列的庫函數(shù)進行分析,這樣帶來的開發(fā)量與維護量就會非常巨大。

    這種缺陷是上述技術(shù)方案本身所無法避免的。因為此方案實際上是利用了動態(tài)鏈接器在解析庫函數(shù)的時候,同名函數(shù)在更先載入的動態(tài)鏈接庫中被首先解析到的原理,因此為了使用PRELOAD技術(shù)跟蹤庫函數(shù),就需要一一實現(xiàn)同樣名稱的庫函數(shù),并編譯生成待PRELOAD的動態(tài)鏈接庫。

    2.3 與本發(fā)明相關(guān)的現(xiàn)有技術(shù)二

    2.3.1 現(xiàn)有技術(shù)二的技術(shù)方案

    Linux內(nèi)核提供了ptrace系統(tǒng)調(diào)用,第三方程序P可以通過ptrace調(diào)試應(yīng)用軟件S,包括暫停S,查看S的狀態(tài)(內(nèi)存與寄存器等數(shù)據(jù)),修改S的狀態(tài),恢復(fù)S的運行等。

    如果P希望跟蹤S的動態(tài)鏈接庫函數(shù)調(diào)用,P可以在調(diào)用ptrace的時候使用PTRACE_POKETEXT參數(shù),修改S的PLT中的代碼,加入軟中斷指令(在x86下為int 3),這樣在PLT解析動態(tài)鏈接庫函數(shù)之后會觸發(fā)這條軟中斷,從而使得內(nèi)核開始處理來自于S的中斷,并通知S的調(diào)試進程P,而P在收到了通知以后就可以查看S的進程狀態(tài),得知S將要調(diào)用的動態(tài)鏈接庫函數(shù),從而能對其進行跟蹤了。在跟蹤處理完畢后,P還需要再次調(diào)用ptrace,傳入PTRACE_POKETEXT參數(shù),刪除修改后的軟中斷指令,恢復(fù)原有指令,以便程序繼續(xù)正常運行。

    這種技術(shù)在通用動態(tài)鏈接庫跟蹤軟件ltrace被使用到了。2.3.2 現(xiàn)有技術(shù)二的缺點

    基于ptrace的斷點式程序調(diào)試跟蹤有三個問題,第一個問題是它在程序運行過程中需要不斷地中斷程序的運行,以修改程序的指令(加入軟中斷指令或者刪除軟中斷指令),并且中間還牽涉到內(nèi)核態(tài)到用戶態(tài)的狀態(tài)轉(zhuǎn)換,會帶來相當(dāng)大的性能開銷。第二個問題是ptrace系統(tǒng)調(diào)用是Linux操作系統(tǒng)下非常復(fù)雜的系統(tǒng)調(diào)用,牽涉到進程間通信、信號處理、進程狀態(tài)查看與修改等,因此在國產(chǎn)處理器上的實現(xiàn)往往不完整或者有缺陷,會導(dǎo)致功能缺失或者性能下降。第三個問題同樣也是因為ptrace接口特別復(fù)雜,而且又牽涉到PLT表的修改,因此應(yīng)用開發(fā)與調(diào)試跟蹤的人員很難使用此項技術(shù)定制自己的動態(tài)鏈接庫函數(shù)跟蹤,最常用的仍然是更為簡單,但是無法通用化的基于PRELOAD的同名函數(shù)替代跟蹤技術(shù)方案。

    3 本發(fā)明技術(shù)方案的詳細(xì)闡述

    3.1 本發(fā)明所要解決的技術(shù)問題

    本發(fā)明解決了Linux操作系統(tǒng)下動態(tài)鏈接庫函數(shù)跟蹤的下列技術(shù)問題:缺乏通用的、高性能的方法進行動態(tài)鏈接庫函數(shù)跟蹤。

    3.2 本發(fā)明提供的完整技術(shù)方案

    在本發(fā)明中,庫函數(shù)跟蹤的模塊形式一般為動態(tài)鏈接庫,此動態(tài)鏈接庫通過修改/etc/ld.so.preload或者LD_PRELOAD環(huán)境變量的方式,在程序主體以及動態(tài)鏈接庫被內(nèi)核載入進程空間后,即被動態(tài)鏈接庫載入進程空間。被載入之后,即采取下列措施(下面匯編代碼示例均采用x86匯編,實際可以外推到其它處理器的指令集):

    (1)聲明并實現(xiàn)一個函數(shù)trace_fn作為實際的動態(tài)鏈接庫函數(shù)跟蹤函數(shù),可以被用戶靈活定制,例如打印出當(dāng)前時間戳與將要被調(diào)用的動態(tài)鏈接庫函數(shù)的名稱。它接受一個整數(shù)類型(int)的參數(shù),是庫函數(shù)的下標(biāo),返回長整數(shù)類型的值,應(yīng)該是對應(yīng)庫函數(shù)的地址。

    (2)聲明并實現(xiàn)一個函數(shù)fn_hook作為跳板函數(shù)。此函數(shù)為匯編語言編寫,它首先彈出(pop)棧頂數(shù)據(jù)至rax寄存器中,再依次將rbx、rcx、rdx、rsi、rdi、r8、r9、r10等寄存器的值壓棧(push),繼而將rax的值復(fù)制到rdi寄存器中,接著調(diào)用(call)trace_fn,進而依次彈出棧頂數(shù)據(jù)因此至r10、r9、r8、rdi、rsi、rdx、rcx、rbx等寄存器,最后跳轉(zhuǎn)(jmp)到rax寄存器保存的地址處開始執(zhí)行。

    圖1

    (3)設(shè)置庫的初始化函數(shù)(constructor),動態(tài)鏈接器會首先載入PRELOAD庫,最后(與其它動態(tài)鏈接庫比較)運行PRELOAD的初始化函數(shù),因此庫初始化時其它庫的符號解析已經(jīng)完成了。

    (4)在庫初始化時調(diào)用memalign函數(shù)分配一塊32KB大小,頁地址對齊頁邊界的內(nèi)存,對應(yīng)全局變量trampoline。

    (5)在上述內(nèi)存空間中,從0開始循環(huán)(循環(huán)變量為ndx),從前向后反復(fù)填充兩條匯編指令。第一條匯編指令為push ndx,即將當(dāng)前的ndx值壓棧,第二條匯編指令為jmp fn_hook,即跳轉(zhuǎn)到fn_hook函數(shù)去,每次循環(huán)ndx加一。

    (6)將上述內(nèi)存空間填滿指令后,記錄下總循環(huán)次數(shù)total,并調(diào)用mprotect將上述內(nèi)存空間的屬性修改為可讀可執(zhí)行,以使得上述代碼可以被執(zhí)行。

    (7)聲明結(jié)構(gòu)體struct lib_func {long addr; char* name;},并初始化長度為total的lib_func數(shù)組全局變量libfuncs為全零。

    (8)讀取當(dāng)前進程(即待跟蹤程序)的進程空間虛擬文件/proc/self/maps,獲得當(dāng)前進程各個段(segment)的地址與范圍。

    (9)由于進程的內(nèi)存內(nèi)容由對應(yīng)程序ELF文件中各個段一一映射而來,而ELF文件中的段又由節(jié)組成,下面即可根據(jù)ELF的規(guī)范解析可以得到.got.plt、.rela.plt、.dynsym、.dynstr節(jié)在進程空間中的具體地址。

    (10)接著對.rela.plt節(jié)中的每個重定位表項進行如下循環(huán),循環(huán)變量為i,從0開始:

    1.調(diào)用ELF64_R_INFO宏通過重定位表項的r_info成員獲得動態(tài)鏈接符號表中對應(yīng)的下標(biāo),并根據(jù)上述.dynsym節(jié)的地址得到相應(yīng)的動態(tài)鏈接符號;

    2.通過動態(tài)鏈接符號的st_name成員,以及上述.dynstr節(jié)的地址得到此庫函數(shù)的名稱fn_name;

    3.通過重定位表項的r_offset成員獲得GOT表中的下標(biāo),并根據(jù)上述.got.plt節(jié)的地址得到GOT表中保存的對應(yīng)庫函數(shù)的地址fn_addr;

    4.設(shè)置libfuncs[i]的addr成員的值為fn_addr,設(shè)置name成員的值為fn_name(通過strdup復(fù)制一個值);

    5.將GOT表中對應(yīng)庫函數(shù)的地址從fn_addr修改為trampoline加上i乘以第5步中兩條匯編指令的長度(以字節(jié)為單位)。

    (11)在程序運行時,若調(diào)用到了庫函數(shù),則由于庫函數(shù)的地址在GOT表中已經(jīng)被修改為了trampoline中相應(yīng)的地址,因此對應(yīng)的執(zhí)行流程會被修改為:

    1.trampoline中相應(yīng)的代碼會被執(zhí)行,即首先壓棧庫函數(shù)的下標(biāo),其次跳轉(zhuǎn)到fn_hook;

    2.fn_hook從棧中獲得trampoline中壓入的庫函數(shù)下標(biāo),將其保存到rax寄存器中,繼而將各個寄存器的值保存到棧中,調(diào)用trace_fn,傳入的參數(shù)為rax的值(即庫函數(shù)的下標(biāo));

    3.trace_fn根據(jù)傳入的庫函數(shù)下標(biāo)在libfuncs中得到庫函數(shù)的名稱與真實地址,并進行相應(yīng)的跟蹤分析處理,最后返回庫函數(shù)的真實地址;

    4.fn_hook恢復(fù)各個寄存器的值,從rax得到trace_fn的返回值,并跳轉(zhuǎn)到庫函數(shù)的真實地址處開始執(zhí)行;

    對應(yīng)對被跟蹤進程進行修改的流程如圖1所示。

    根據(jù)上述流程對被跟蹤進程進行修改后,被跟蹤程序在調(diào)用庫函數(shù)時的流程如圖2所示。

    其中的虛線表示的是當(dāng)沒有本專利的程序運行時,庫函數(shù)調(diào)用發(fā)生的路徑。

    在上述步驟中,有幾個需要注意的技術(shù)點:

    (1)第1步中的trace_fn函數(shù)中調(diào)用任何庫函數(shù)(如printf、malloc、strstr等)都需要要么查找libfuncs中的地址進行調(diào)用,要么自行實現(xiàn)。如果直接使用原函數(shù)調(diào)用,由于trace_fn是在庫函數(shù)被調(diào)用之前被調(diào)用的,則可能導(dǎo)致無限循環(huán)死鎖。

    (2)第2步的fn_hook函數(shù)中需要將棧上的庫函數(shù)下標(biāo)首先彈出到rax寄存器中,這是因為其它的寄存器,即rbx、rcx、…r10等在x86架構(gòu)下都可能被函數(shù)調(diào)用用來保存調(diào)用參數(shù),因此不能破壞這些寄存器的內(nèi)容。但是由于調(diào)用trace_fn需要傳遞參數(shù),call指令調(diào)用C語言的函數(shù)缺省使用rdi寄存器保存第一個參數(shù)的值,而且在trace_fn運行的過程中可能會使用到不同的寄存器,因此需要將rdi等寄存器的值保存在棧上,再將rax寄存器的值(保存著庫函數(shù)的下標(biāo))復(fù)制給rdi寄存器,再調(diào)用trace_fn函數(shù)。而缺省情況下,函數(shù)的返回值(庫函數(shù)的真實地址)保存在rax寄存器中,因此需要最后跳轉(zhuǎn)到rax寄存器保存的值對應(yīng)的地址處開始執(zhí)行。

    (3)第3步中的時機很巧妙,PRELOAD庫是第一個被載入的動態(tài)鏈接庫,在所有的動態(tài)鏈接庫中,它的初始化函數(shù)也是最后一個被執(zhí)行的。在其初始化函數(shù)開始執(zhí)行的時候,主程序所依賴的動態(tài)鏈接庫函數(shù)應(yīng)該已經(jīng)有一部分被解析填充了,因此可以獲得真實的庫函數(shù)地址。如果希望所有的庫函數(shù)在此階段都被解析填充,還可以設(shè)置環(huán)境變量LD_BIND_NOW進行完整的庫函數(shù)解析。

    (4)在第4步中須使用memalign或者valloc函數(shù)進行trampoline內(nèi)存塊的內(nèi)存分配,不能使用常見的malloc或者mmap函數(shù)。這是因為malloc無法保證分配的內(nèi)存在內(nèi)存頁邊界上,但是第6步需要將此內(nèi)存通過mprotect函數(shù)設(shè)置為可執(zhí)行內(nèi)存,而mprotect要求內(nèi)存地址頁邊界對齊。而mmap分配的內(nèi)存距離程序的主體太遠(yuǎn),在64位操作系統(tǒng)上一般都會超出4G(即32位)的距離,從而導(dǎo)致jmp指令后面緊跟的32位地址溢出,memalign與valloc分配的內(nèi)存在堆(heap)中,距離程序主體最近,因此需要選擇這些函數(shù)。Linux下進程空間的內(nèi)存地址分布參見圖3。

    (5)第10步中對庫函數(shù)的掛鉤處理能對所有的庫函數(shù)進行處理,也能根據(jù)要求僅跟蹤部分庫函數(shù),因此具有通用性,也具有可定制性。

    圖2

    圖3

    3.3 本發(fā)明技術(shù)方案帶來的有益效果

    本發(fā)明技術(shù)方案通過對進程執(zhí)行過程中GOT表的修改與掛鉤,能提供高性能的、通用的動態(tài)鏈接庫函數(shù)的跟蹤分析。此解決方案依賴性小,通用性強,運行性能高,可廣泛用于Linux操作系統(tǒng)下應(yīng)用程序動態(tài)鏈接庫的跟蹤與分析中。

    猜你喜歡
    進程
    債券市場對外開放的進程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    改革開放進程中的國際收支統(tǒng)計
    中國外匯(2019年8期)2019-07-13 06:01:06
    快速殺掉頑固進程
    社會進程中的新聞學(xué)探尋
    我國高等教育改革進程與反思
    Linux僵死進程的產(chǎn)生與避免
    講效率 結(jié)束進程要批量
    電腦迷(2012年24期)2012-04-29 00:44:03
    男女平等進程中出現(xiàn)的新矛盾和新問題
    俄羅斯現(xiàn)代化進程的阻礙
    論文萊的民族獨立進程
    日韩欧美一区视频在线观看| 国产亚洲欧美精品永久| av网站免费在线观看视频| 国产 一区精品| av一本久久久久| 国产成人免费无遮挡视频| 99热这里只有是精品在线观看| 午夜影院在线不卡| 国产有黄有色有爽视频| 亚洲综合色惰| 久久国内精品自在自线图片| 午夜影院在线不卡| videosex国产| 永久免费av网站大全| 日韩av在线免费看完整版不卡| 高清黄色对白视频在线免费看| 我的老师免费观看完整版| 七月丁香在线播放| 欧美 亚洲 国产 日韩一| 91精品国产九色| 91精品一卡2卡3卡4卡| 制服丝袜香蕉在线| 国产亚洲欧美精品永久| 亚洲欧美日韩另类电影网站| 亚洲精品一二三| 亚洲精品aⅴ在线观看| www.色视频.com| 日韩成人av中文字幕在线观看| 2021少妇久久久久久久久久久| 99久久精品国产国产毛片| 水蜜桃什么品种好| 黑人巨大精品欧美一区二区蜜桃 | 97在线人人人人妻| 精品一品国产午夜福利视频| 18+在线观看网站| av视频免费观看在线观看| 国产不卡av网站在线观看| 免费看光身美女| 日本黄大片高清| 国产免费一级a男人的天堂| 久久99蜜桃精品久久| 久久精品久久久久久噜噜老黄| 婷婷色综合大香蕉| 各种免费的搞黄视频| 一级二级三级毛片免费看| 人人妻人人添人人爽欧美一区卜| 久久国内精品自在自线图片| 秋霞在线观看毛片| 国产黄色视频一区二区在线观看| 99热这里只有是精品在线观看| 91成人精品电影| 国产不卡av网站在线观看| 看十八女毛片水多多多| 日本黄色日本黄色录像| 国产白丝娇喘喷水9色精品| 国产高清不卡午夜福利| 欧美精品一区二区大全| 91国产中文字幕| 草草在线视频免费看| 亚洲内射少妇av| 亚洲综合色网址| 91在线精品国自产拍蜜月| 精品久久久精品久久久| 欧美xxxx性猛交bbbb| 老熟女久久久| 97在线人人人人妻| kizo精华| 黄色配什么色好看| 久久久久久久久久人人人人人人| 精品熟女少妇av免费看| 在线天堂最新版资源| 免费看不卡的av| 成人综合一区亚洲| 久久久国产欧美日韩av| 在线观看一区二区三区激情| 亚洲三级黄色毛片| 欧美人与善性xxx| 熟女电影av网| 国产精品成人在线| 亚洲一级一片aⅴ在线观看| 国产日韩一区二区三区精品不卡 | 乱码一卡2卡4卡精品| av专区在线播放| av有码第一页| 久久热精品热| 最新中文字幕久久久久| 男女国产视频网站| 日韩免费高清中文字幕av| 性色av一级| 夜夜爽夜夜爽视频| 波野结衣二区三区在线| 日韩人妻高清精品专区| 精品国产乱码久久久久久小说| 精品一区二区免费观看| 黑人猛操日本美女一级片| 男女边吃奶边做爰视频| 欧美性感艳星| 国产成人a∨麻豆精品| 国产成人a∨麻豆精品| 一级毛片我不卡| 免费观看的影片在线观看| 一边摸一边做爽爽视频免费| 老熟女久久久| 欧美老熟妇乱子伦牲交| 狠狠婷婷综合久久久久久88av| 母亲3免费完整高清在线观看 | 色视频在线一区二区三区| 国内精品宾馆在线| 久久久久久久大尺度免费视频| 啦啦啦在线观看免费高清www| 中文字幕最新亚洲高清| 国产爽快片一区二区三区| 久久女婷五月综合色啪小说| 久久久国产一区二区| 一级毛片我不卡| 亚洲美女搞黄在线观看| 秋霞伦理黄片| 久久久国产精品麻豆| 久久99精品国语久久久| 国产精品人妻久久久影院| 久久97久久精品| 亚洲欧美日韩另类电影网站| 久久久a久久爽久久v久久| 国产成人精品福利久久| 亚洲精品自拍成人| 亚洲综合色网址| 日韩欧美精品免费久久| 欧美 日韩 精品 国产| 欧美精品高潮呻吟av久久| 岛国毛片在线播放| av播播在线观看一区| 色哟哟·www| 免费日韩欧美在线观看| 国产在线一区二区三区精| 欧美+日韩+精品| 国产欧美亚洲国产| 国产熟女欧美一区二区| 三级国产精品欧美在线观看| 日韩伦理黄色片| 男女边吃奶边做爰视频| 热99国产精品久久久久久7| 免费黄色在线免费观看| av在线app专区| 少妇高潮的动态图| 蜜臀久久99精品久久宅男| 精品一区二区免费观看| 亚洲国产精品一区三区| 一本一本综合久久| 亚洲国产欧美日韩在线播放| 免费黄网站久久成人精品| 热99久久久久精品小说推荐| 亚洲成人av在线免费| 免费人妻精品一区二区三区视频| 国产国语露脸激情在线看| 国产男女内射视频| 能在线免费看毛片的网站| 99热6这里只有精品| av在线老鸭窝| 一个人看视频在线观看www免费| 满18在线观看网站| 久久久久久伊人网av| 人人澡人人妻人| 狂野欧美激情性bbbbbb| 久久久国产欧美日韩av| 性高湖久久久久久久久免费观看| 日本与韩国留学比较| 午夜久久久在线观看| 久久午夜福利片| 99热全是精品| 精品视频人人做人人爽| 黄色配什么色好看| 国产精品国产三级专区第一集| 精品久久国产蜜桃| 欧美日韩av久久| 久久精品国产a三级三级三级| 亚洲国产精品999| 欧美精品人与动牲交sv欧美| 免费大片18禁| 青春草视频在线免费观看| 国产午夜精品久久久久久一区二区三区| 男男h啪啪无遮挡| 一级爰片在线观看| 亚洲欧洲国产日韩| 99热6这里只有精品| videosex国产| 人人澡人人妻人| 91成人精品电影| 亚洲精品久久久久久婷婷小说| 一区二区三区四区激情视频| 成人午夜精彩视频在线观看| 我的女老师完整版在线观看| 韩国高清视频一区二区三区| 亚洲精品aⅴ在线观看| 久久99热这里只频精品6学生| 乱码一卡2卡4卡精品| 18在线观看网站| 好男人视频免费观看在线| 亚洲精品久久成人aⅴ小说 | 国产片特级美女逼逼视频| 国产精品不卡视频一区二区| 久久人人爽人人爽人人片va| 久久精品国产鲁丝片午夜精品| 日韩人妻高清精品专区| 夜夜骑夜夜射夜夜干| 国产毛片在线视频| 精品久久久久久久久av| 新久久久久国产一级毛片| 亚洲激情五月婷婷啪啪| 男男h啪啪无遮挡| 国产午夜精品一二区理论片| 十分钟在线观看高清视频www| 国产乱来视频区| 国产男女超爽视频在线观看| 最近中文字幕高清免费大全6| 国产成人精品一,二区| 91aial.com中文字幕在线观看| av电影中文网址| 国产伦理片在线播放av一区| 大码成人一级视频| 香蕉精品网在线| 男女免费视频国产| 18禁在线无遮挡免费观看视频| 80岁老熟妇乱子伦牲交| 精品午夜福利在线看| 亚洲精品中文字幕在线视频| 亚洲精品aⅴ在线观看| 国产成人免费无遮挡视频| 久久这里有精品视频免费| 少妇被粗大猛烈的视频| 青春草国产在线视频| 国产有黄有色有爽视频| 男男h啪啪无遮挡| 18+在线观看网站| 桃花免费在线播放| 中文字幕免费在线视频6| 午夜福利网站1000一区二区三区| 日日摸夜夜添夜夜爱| 两个人免费观看高清视频| 极品人妻少妇av视频| 国产乱来视频区| 日本-黄色视频高清免费观看| 校园人妻丝袜中文字幕| 日韩电影二区| 日韩三级伦理在线观看| av线在线观看网站| 观看av在线不卡| 午夜激情av网站| 中文字幕精品免费在线观看视频 | 汤姆久久久久久久影院中文字幕| 男男h啪啪无遮挡| 91精品一卡2卡3卡4卡| 日韩三级伦理在线观看| 精品人妻一区二区三区麻豆| 视频区图区小说| 韩国av在线不卡| 成年美女黄网站色视频大全免费 | 午夜福利在线观看免费完整高清在| 日本av手机在线免费观看| 一级毛片aaaaaa免费看小| 精品国产一区二区久久| 美女视频免费永久观看网站| 国产黄频视频在线观看| 日韩 亚洲 欧美在线| 大陆偷拍与自拍| 黄色怎么调成土黄色| 久久这里有精品视频免费| 美女国产视频在线观看| 999精品在线视频| 亚洲人成77777在线视频| 搡女人真爽免费视频火全软件| 国产亚洲最大av| 老司机影院成人| 国产免费又黄又爽又色| 国产成人精品无人区| 777米奇影视久久| 亚洲精品456在线播放app| 成人毛片a级毛片在线播放| 亚洲国产最新在线播放| 成人亚洲精品一区在线观看| 天堂8中文在线网| 秋霞伦理黄片| 亚洲内射少妇av| 精品亚洲成a人片在线观看| 国产精品无大码| 亚洲国产色片| 欧美日韩综合久久久久久| 伦理电影免费视频| 在线观看www视频免费| 看十八女毛片水多多多| 亚洲伊人久久精品综合| 女性被躁到高潮视频| 国产不卡av网站在线观看| 免费观看a级毛片全部| 婷婷色综合www| 精品视频人人做人人爽| 欧美精品人与动牲交sv欧美| 成人影院久久| 飞空精品影院首页| 狠狠婷婷综合久久久久久88av| 免费久久久久久久精品成人欧美视频 | 伦精品一区二区三区| 国产国语露脸激情在线看| 一本大道久久a久久精品| 免费人成在线观看视频色| 交换朋友夫妻互换小说| 青春草亚洲视频在线观看| 亚洲精品国产av蜜桃| 成人毛片60女人毛片免费| 免费观看无遮挡的男女| 国产又色又爽无遮挡免| 一级毛片 在线播放| 久热久热在线精品观看| 人成视频在线观看免费观看| 毛片一级片免费看久久久久| 日韩成人伦理影院| 又粗又硬又长又爽又黄的视频| 熟妇人妻不卡中文字幕| 欧美日韩成人在线一区二区| 五月天丁香电影| 日韩熟女老妇一区二区性免费视频| 日韩强制内射视频| 欧美一级a爱片免费观看看| 亚洲精品自拍成人| 午夜福利视频精品| 男人添女人高潮全过程视频| 日韩av不卡免费在线播放| 啦啦啦视频在线资源免费观看| 日日啪夜夜爽| 国产永久视频网站| 免费大片18禁| 黑人巨大精品欧美一区二区蜜桃 | 2022亚洲国产成人精品| 日本av手机在线免费观看| 老女人水多毛片| 男女边摸边吃奶| 久久 成人 亚洲| 精品视频人人做人人爽| 国产一区二区三区av在线| 春色校园在线视频观看| 97超碰精品成人国产| 国产精品秋霞免费鲁丝片| 午夜激情av网站| 国产探花极品一区二区| 搡女人真爽免费视频火全软件| 人妻少妇偷人精品九色| 老司机影院毛片| 欧美性感艳星| 在线观看一区二区三区激情| 欧美精品一区二区免费开放| 国产老妇伦熟女老妇高清| 国产在线视频一区二区| 久久久久视频综合| 国产日韩欧美视频二区| 人妻一区二区av| 国产午夜精品久久久久久一区二区三区| 91在线精品国自产拍蜜月| 亚洲欧美成人精品一区二区| 美女xxoo啪啪120秒动态图| 午夜免费男女啪啪视频观看| 美女xxoo啪啪120秒动态图| 欧美激情 高清一区二区三区| 国产精品一区二区在线不卡| 欧美+日韩+精品| 欧美日韩视频高清一区二区三区二| 日韩在线高清观看一区二区三区| 在线观看美女被高潮喷水网站| 高清视频免费观看一区二区| 亚洲色图综合在线观看| 国产精品.久久久| 国产成人免费无遮挡视频| 伦理电影大哥的女人| 免费观看无遮挡的男女| 久久久久久久久久人人人人人人| 高清不卡的av网站| 在线播放无遮挡| 国产精品国产三级国产av玫瑰| 亚洲精品第二区| 99视频精品全部免费 在线| 日韩成人av中文字幕在线观看| 精品亚洲成国产av| 久久免费观看电影| 丝袜美足系列| 中国美白少妇内射xxxbb| 黑人高潮一二区| 亚洲精品456在线播放app| 亚洲精品aⅴ在线观看| 久久 成人 亚洲| 久久毛片免费看一区二区三区| 精品国产乱码久久久久久小说| 狂野欧美激情性bbbbbb| 99视频精品全部免费 在线| 在线观看美女被高潮喷水网站| 老女人水多毛片| 成人黄色视频免费在线看| a级毛片黄视频| 五月开心婷婷网| 成人影院久久| 少妇精品久久久久久久| 观看av在线不卡| 久久精品夜色国产| 老司机影院毛片| 午夜免费鲁丝| 久久这里有精品视频免费| 亚洲综合色惰| 亚洲欧美色中文字幕在线| 一级,二级,三级黄色视频| 热re99久久国产66热| 日日摸夜夜添夜夜添av毛片| 国产精品人妻久久久影院| 黑人巨大精品欧美一区二区蜜桃 | 日本黄大片高清| 国产精品久久久久久av不卡| kizo精华| 欧美精品国产亚洲| 亚洲精品乱码久久久v下载方式| 18在线观看网站| 久久久久网色| 国产白丝娇喘喷水9色精品| 色视频在线一区二区三区| 日韩一区二区视频免费看| 又大又黄又爽视频免费| 国产乱来视频区| 日本黄大片高清| 丝袜美足系列| 亚洲无线观看免费| 美女国产视频在线观看| 欧美3d第一页| 国产精品 国内视频| 最后的刺客免费高清国语| 久久久久国产网址| 97在线视频观看| 久久久国产欧美日韩av| 少妇被粗大猛烈的视频| 三级国产精品片| 成人毛片a级毛片在线播放| 久久午夜福利片| 亚洲精品美女久久av网站| 欧美国产精品一级二级三级| 久久精品国产鲁丝片午夜精品| 免费观看a级毛片全部| 一边摸一边做爽爽视频免费| 亚洲欧美精品自产自拍| 精品卡一卡二卡四卡免费| 成人免费观看视频高清| 亚洲精品久久午夜乱码| 97超碰精品成人国产| 日韩av免费高清视频| 国产日韩欧美亚洲二区| 久久精品国产自在天天线| 天堂俺去俺来也www色官网| 在线天堂最新版资源| 黄色怎么调成土黄色| 精品久久久噜噜| 欧美日韩视频精品一区| 水蜜桃什么品种好| 两个人的视频大全免费| 99久国产av精品国产电影| 欧美激情极品国产一区二区三区 | 久久人人爽人人爽人人片va| 久久精品夜色国产| 在线看a的网站| 免费观看的影片在线观看| 亚洲中文av在线| 一级二级三级毛片免费看| 久热这里只有精品99| 日本猛色少妇xxxxx猛交久久| 日韩视频在线欧美| 亚洲美女视频黄频| 特大巨黑吊av在线直播| 国产精品国产三级专区第一集| 国产 精品1| 亚洲国产精品一区二区三区在线| 一级毛片我不卡| 亚洲成色77777| 久久久久久久精品精品| 考比视频在线观看| 国产精品免费大片| 亚洲av成人精品一区久久| 日日撸夜夜添| 亚洲精品中文字幕在线视频| 我的老师免费观看完整版| 我要看黄色一级片免费的| 大香蕉久久网| 黄色毛片三级朝国网站| a级片在线免费高清观看视频| 欧美精品国产亚洲| 在线观看一区二区三区激情| 亚洲精品乱久久久久久| 精品人妻一区二区三区麻豆| 久久久久久伊人网av| 国产日韩欧美亚洲二区| 国产欧美日韩综合在线一区二区| 欧美成人精品欧美一级黄| 成人手机av| 婷婷色av中文字幕| 这个男人来自地球电影免费观看 | 久久久国产欧美日韩av| 日韩大片免费观看网站| 丝袜喷水一区| 免费不卡的大黄色大毛片视频在线观看| 中文字幕人妻熟人妻熟丝袜美| 亚洲国产精品专区欧美| 久久久久久久久久久丰满| 亚洲综合色惰| videos熟女内射| www.色视频.com| 极品少妇高潮喷水抽搐| 亚洲综合色惰| 涩涩av久久男人的天堂| 国产熟女午夜一区二区三区 | 欧美精品一区二区免费开放| 国产日韩欧美视频二区| 久久热精品热| 97精品久久久久久久久久精品| 亚洲精品乱码久久久久久按摩| a级毛色黄片| 欧美精品一区二区免费开放| 亚洲成人一二三区av| 国产精品一国产av| 国产精品国产三级国产专区5o| 国产精品成人在线| 亚洲精品中文字幕在线视频| 91aial.com中文字幕在线观看| 亚洲精品456在线播放app| 国产精品无大码| 亚洲成人一二三区av| 日本色播在线视频| 欧美 日韩 精品 国产| 五月伊人婷婷丁香| 熟妇人妻不卡中文字幕| 极品人妻少妇av视频| 丁香六月天网| 日韩三级伦理在线观看| 免费黄频网站在线观看国产| 亚洲怡红院男人天堂| av黄色大香蕉| 99热网站在线观看| 久久精品国产a三级三级三级| 亚洲国产av新网站| 久久久久久人妻| 日本vs欧美在线观看视频| 丝袜喷水一区| 九色成人免费人妻av| h视频一区二区三区| 97在线视频观看| 国产不卡av网站在线观看| 综合色丁香网| 成人免费观看视频高清| 久久 成人 亚洲| 国产高清不卡午夜福利| 婷婷色综合www| 永久网站在线| 老司机影院成人| 人体艺术视频欧美日本| 午夜老司机福利剧场| 国产精品久久久久久久电影| 国产亚洲精品久久久com| 日本黄大片高清| 精品人妻熟女av久视频| 免费人妻精品一区二区三区视频| 99热这里只有精品一区| 七月丁香在线播放| 亚洲第一av免费看| 精品久久国产蜜桃| 国产av一区二区精品久久| 亚洲欧洲日产国产| 18+在线观看网站| 天堂8中文在线网| 女人久久www免费人成看片| 欧美日韩国产mv在线观看视频| 精品国产露脸久久av麻豆| 亚洲av免费高清在线观看| 亚洲精品视频女| 久热久热在线精品观看| 黄片无遮挡物在线观看| 免费黄网站久久成人精品| 亚洲精品乱久久久久久| 午夜免费观看性视频| 色哟哟·www| 午夜福利,免费看| 精品少妇久久久久久888优播| 国产在线免费精品| 国模一区二区三区四区视频| 国产有黄有色有爽视频| 精品一区二区三区视频在线| 日韩一本色道免费dvd| 免费黄色在线免费观看| 街头女战士在线观看网站| 18禁动态无遮挡网站| 色吧在线观看| av视频免费观看在线观看| 色视频在线一区二区三区| 亚洲经典国产精华液单| 2021少妇久久久久久久久久久| 国产精品 国内视频| 免费看av在线观看网站| av福利片在线| av在线app专区| 2018国产大陆天天弄谢| 少妇被粗大的猛进出69影院 | 人妻制服诱惑在线中文字幕| 国产男女内射视频| 日韩成人伦理影院| 国产免费视频播放在线视频| 国产成人精品久久久久久| 欧美xxxx性猛交bbbb| 欧美日韩成人在线一区二区| 国产精品蜜桃在线观看| 一级毛片 在线播放| 久久久精品免费免费高清| 最近中文字幕高清免费大全6| 国产av码专区亚洲av| 欧美精品亚洲一区二区| 国产一区二区三区av在线| 新久久久久国产一级毛片|