精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為MacOS構(gòu)建自定義Mach-O內(nèi)存加載器

系統(tǒng) 其他OS
為了配合蘋果向ARM架構(gòu)的遷移,這篇文章將重點介紹MacOS Ventura的AARCH64版本和針對MacOS 12.0及更高版本的XCode。

在上一篇文章中,我們介紹了如何修復(fù)dyld以恢復(fù)內(nèi)存執(zhí)行。這種方法的優(yōu)點之一是,我們將加載Mach-O二進制文件的許多復(fù)雜工作委托給macOS。但如果我們在不使用dyld的情況下,創(chuàng)建我們自己的加載器呢?所有這些字節(jié)映射是如何工作的?

接下來,我們將介紹如何在不使用dyld的情況下在MacOS Ventura中為Mach-O包構(gòu)建內(nèi)存加載器,以及Mach-O文件的組成,dyld如何處理加載命令以將區(qū)域映射到內(nèi)存中。

為了配合蘋果向ARM架構(gòu)的遷移,這篇文章將重點介紹MacOS Ventura的AARCH64版本和針對MacOS 12.0及更高版本的XCode。

什么是Mach-O文件?

首先介紹一下Mach-O文件的架構(gòu),建議先閱讀一下Aidan Steele的Mach-O文件格式參考。

當(dāng)我們在處理ARM版本的MacOS時,會假設(shè)正在查看的Mach-O沒有被封裝在Universal 2格式中,因此在文件開頭我們首先會遇到的是Mach_header_64:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

要構(gòu)造加載器,我們需要檢查以下幾個字段:

magic-此字段應(yīng)包含MH_magic_64的值;

Cputype-對于M1,應(yīng)為CPU_TYPE_ARM64。

filetype -我們將檢查這篇文章的MH_BUNDLE類型,但加載不同類型也應(yīng)該很容易。

如果Mach-O是正常的,我們可以立即處理mach_header_64結(jié)構(gòu)體后面的load命令。

加載命令

顧名思義,load命令是一種數(shù)據(jù)結(jié)構(gòu),用于指示dyld如何加載Mach-O區(qū)域。

每個load命令由load_command結(jié)構(gòu)表示:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

cmd字段最終決定load_command實際表示的內(nèi)容,以LC_UUID的一個非常簡單的load_command為例,該命令用于將UUID與二進制數(shù)據(jù)關(guān)聯(lián)起來。其結(jié)構(gòu)如下:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

如上所述,這與load_command結(jié)構(gòu)重疊,這就是為什么我們有匹配字段的原因。以下就是我們將看到的各種負(fù)載命令所支持的情況。

Mach-O段

加載Mach-O時,我們要處理的第一個load_command是LC_SEGMENT_64。

segment命令告訴dyld如何將Mach-O的一個區(qū)域映射到虛擬內(nèi)存中,它應(yīng)該有多大,應(yīng)該有什么樣的保護,以及文件的內(nèi)容在哪里。讓我們來看看它的結(jié)構(gòu):

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

出于本文的目的,我們將關(guān)注:

segname -段的名稱,例如__TEXT;

vmaddr -應(yīng)該加載段的虛擬地址。例如,如果它被設(shè)置為0x4000,那么我們將在分配的內(nèi)存基數(shù)+ 0x4000處加載段;

vmsize -要分配的虛擬內(nèi)存的大小;

fileoff -從文件開始到應(yīng)復(fù)制到虛擬內(nèi)存的Mach-O內(nèi)容的偏移量;

filesize -要從文件中復(fù)制的字節(jié)數(shù);

maxprot-應(yīng)分配給虛擬內(nèi)存區(qū)域的最大內(nèi)存保護值;

initprot -應(yīng)分配給虛擬內(nèi)存區(qū)域的初始內(nèi)存保護;

nsects -遵循此段結(jié)構(gòu)的節(jié)數(shù)。

要注意,雖然dyld依賴mmap將Mach-O的片段拉入內(nèi)存,但如果我們的初始進程是作為一個加固進程執(zhí)行的(并且沒有com.apple.security.cs. c . data . data之類的文件)。使用mmap是不可能的,除非我們提供的bundle是使用與代理應(yīng)用程序相同的開發(fā)人員證書進行簽名的。此外,我們正在嘗試構(gòu)建一個內(nèi)存加載器,因此在這種情況下從磁盤拉二進制文件沒有多大意義。

為了解決這個問題,在此POC中,我們將預(yù)先分配我們的blob內(nèi)存并復(fù)制它,例如:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

與之前的dyld文章一樣,我們需要在主機二進制文件中使用正確的授權(quán)來允許無符號可執(zhí)行內(nèi)存。

節(jié)

從上面的字段中可以看到,段加載命令中存在另一個引用,這就是一個節(jié)(section)。

由于節(jié)位于段中,雖然它將繼承其內(nèi)存保護,但它有自己的大小和要加載的文件內(nèi)容。每個段的數(shù)據(jù)結(jié)構(gòu)附加到segment命令中,其結(jié)構(gòu)為:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

同樣,我們將只關(guān)注其中幾個字段,這些字段對于我們構(gòu)建加載器的直接目的很有幫助:

sectname -節(jié)的名稱,例如__text;

segname -與此節(jié)關(guān)聯(lián)的段的名稱;

addr -用于此節(jié)的虛擬地址偏移量;

size -文件中(以及虛擬內(nèi)存中的)節(jié)的大小;

offset - Mach-O文件中部分內(nèi)容的偏移量;

flags - flags可以分配給一個節(jié),這個節(jié)幫助確定reserved1,reserved2和reserved3中的值。

由于我們已經(jīng)分配了每個段,所以加載器將遍歷每個段描述符,確保將正確的文件內(nèi)容復(fù)制到虛擬內(nèi)存中。需要注意的是,在復(fù)制時可能需要更新內(nèi)存保護。MacOS for ARM不允許讀/寫/執(zhí)行內(nèi)存頁(除非com.apple.security.cs. c。allow-jit授權(quán)與MAP_JIT一起使用),因此我們需要在復(fù)制時適應(yīng)這一點:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

符號

隨著我們的加載器開始成型,接下來需要看看如何處理符號(Symbol)。符號在Mach-O二進制文件的加載過程中扮演著重要的角色,它將名稱和序數(shù)關(guān)聯(lián)到內(nèi)存區(qū)域,以供我們稍后參考。

符號是通過LC_SYMTAB的加載命令來處理的,如下所示:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

同樣,我們將關(guān)注構(gòu)建加載器所需的字段:

symoff -從文件開始到包含每個符號信息的nlist結(jié)構(gòu)數(shù)組的偏移量;

nsyms -符號(或nlist結(jié)構(gòu))的數(shù)量;

stroff -符號查找所使用的字符串的文件偏移量。

顯然,接下來我們需要知道nlist是什么:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

此結(jié)構(gòu)為我們提供了有關(guān)命名符號的信息:

n_strx -從符號字符串字段到該符號字符串的偏移量;

n_value -包含符號的值,例如地址。

因為我們稍后需要引用符號,所以我們的加載器需要存儲這些信息以備以后使用:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

dylib’s

接下來是LC_LOAD_DYLIB加載命令,該命令引用在運行時加載的額外dylib’s。

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

我們需要的項在dylib結(jié)構(gòu)成員中找到,特別是dylib.name.offset,它是從這個加載命令的開頭到包含要加載的dylib的字符串的偏移量。

稍后,當(dāng)涉及到重定位時,我們將需要這些信息,其中dylib’s的導(dǎo)入順序起著重要作用,因此我們將構(gòu)建一個dylib’s數(shù)組,供以后使用:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

遷移

現(xiàn)在就要介紹Mach-O更復(fù)雜的部分——遷移。

Mach-O是用XCode構(gòu)建的,目標(biāo)是macOS 12.0和更高版本,使用LC_DYLD_CHAINED_FIXUPS的加載命令。關(guān)于這一切是如何工作的,沒有太多的文檔,但Noah Martin對iOS 15查找鏈的研究值得參考,我們還可以在這里找到蘋果XNU repo中使用的結(jié)構(gòu)體的詳細(xì)信息。

Dyld’s的源代碼告訴我們,該加載命令以結(jié)構(gòu)linkedit_data_command開始:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

使用dataoff便能找到標(biāo)頭:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

我們需要做的第一件事是收集所有導(dǎo)入并構(gòu)造一個稍后將引用的有序數(shù)組。為此,我們將使用以下字段:

symbols_offset -從該結(jié)構(gòu)開始到導(dǎo)入所使用的符號字符串的偏移量;

imports_count -導(dǎo)入項的數(shù)量;

imports_format -任何導(dǎo)入符號的格式。

imports_offset -從該結(jié)構(gòu)開始到導(dǎo)入表的偏移量。

每個導(dǎo)入項的數(shù)據(jù)結(jié)構(gòu)都依賴于imports_format字段,但通常我看到的是DYLD_CHAINED_IMPORT格式:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

可以看出這是一個32位數(shù)組項,有l(wèi)ib_ordinal字段,它是我們之前從LC_LOAD_DYLIB加載命令構(gòu)建的有序dylib數(shù)組的索引。索引從1開始,而不是0,這意味著第一個索引是1,然后是2……

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

如果索引值為0或253,則該項引用this-image(當(dāng)前正在執(zhí)行的二進制文件)。這就是我們之前構(gòu)造符號字典的原因,因為現(xiàn)在我們可以簡單地將自己二進制文件中引用的符號名稱解析為其地址:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

name_offset是從dyld_chained_fixups_header收集的symbols_offset字符串的偏移量。

使用這些信息,我們需要構(gòu)建一個有序的導(dǎo)入數(shù)組,因為我們需要馬上引用這個有序數(shù)組。

構(gòu)建了一個導(dǎo)入列表后,將開始鏈?zhǔn)絾樱@可以從dyld_chained_fixups_header結(jié)構(gòu)的starts_offset標(biāo)頭字段中找到。

鏈?zhǔn)絾拥慕Y(jié)構(gòu)是:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

為了導(dǎo)航,我們需要遍歷seg_info_offset中的每個項,這為我們提供了指向dyld_chained_starts_in_segment的指針列表:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

首先要注意這個結(jié)構(gòu),有時segment_offset是0,但不知道為什么,看起來dyld也識別了這個,只是忽略了它們。

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

我們需要找到每個reloc鏈的開始位置的字段如下:

pointer_format-鏈?zhǔn)褂玫腄YLD_CHAINED_PTR_結(jié)構(gòu)的類型;

segment_offset-段起始地址在內(nèi)存中的絕對偏移量;

page_count-page_start成員數(shù)組中的頁數(shù);

page_start-從頁面到鏈開始的偏移量。

當(dāng)我們在一個段中有一個有效的偏移量時,我們可以開始遵循reloc鏈。遍歷每個項,我們需要檢查第一位,以確定該項是一個rebase(設(shè)置為0)還是一個bind(設(shè)置為1):

在rebase的情況下,將該項轉(zhuǎn)換為dyld_chained_ptr_64_rebase,并使用目標(biāo)偏移量更新該項到已分配內(nèi)存的基數(shù)。

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

在綁定的情況下,我們使用dyld_chained_ptr_64_bind,序數(shù)字段是我們前面構(gòu)建的導(dǎo)入數(shù)組的偏移量。

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

然后,我們需要移動到下一個bind或rebase,這是通過執(zhí)行next*4(4字節(jié)是步長)來完成的。我們重復(fù)此操作,直到下一個字段為0,表示鏈已結(jié)束。

構(gòu)建加載器

現(xiàn)在一切就緒,開始構(gòu)建加載器。步驟如下:

1.分配內(nèi)存區(qū)域;

2.根據(jù)LC_SEGMENT_64命令將每個段加載到虛擬內(nèi)存中;

3.將每個節(jié)加載到每個段中;

4.從LC_LOAD_DYLIB命令構(gòu)建dylib的有序集合;

5.從LC_SYMTAB命令構(gòu)建一個符號集合。

6.遍歷LC_DYLD_CHAINED_FIXUPS鏈并對每個reloc進行bind或rebase。

一旦完成,我們就可以使用LC_SYMTAB中的數(shù)據(jù)來引用我們想要輸入的符號并傳遞執(zhí)行。如果一切順利,我們將看到Mach-O被加載到內(nèi)存中并開始執(zhí)行:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

這個POC的所有代碼都已添加到Dyld-DeNeuralyzer項目。

雖然你可以使用其中的代碼加載C/ c++包,但如果你嘗試加載Objective-C包,你會看到如下的內(nèi)容:

為macOS構(gòu)建自定義Mach-O內(nèi)存加載器

這是因為在加載Objective-C Mach-O時dyld中發(fā)生了一些事情,具體原因我們下一部分再講。

本文翻譯自:https://blog.xpnsec.com/building-a-mach-o-memory-loader-part-1/

責(zé)任編輯:武曉燕 來源: 嘶吼網(wǎng)
相關(guān)推薦

2022-08-11 16:47:32

Mach-OAPP

2024-04-09 08:41:41

JVM類加載Java

2022-06-24 07:08:24

OHOS自定義服務(wù)

2022-08-08 08:17:43

類隔離加載器自定義類

2022-09-30 13:40:23

masOS 系統(tǒng)執(zhí)行命令行工具

2023-10-19 09:14:34

Java開發(fā)

2015-02-12 15:33:43

微信SDK

2019-09-06 14:51:40

Python數(shù)據(jù)庫腳本語言

2015-02-12 15:38:26

微信SDK

2024-12-04 09:01:55

引導(dǎo)類加載器C++

2011-05-04 10:40:02

網(wǎng)頁加載進度標(biāo)題欄lephone

2009-02-10 12:55:39

自定義控件AJAX.NET

2024-01-08 08:30:05

光標(biāo)圖形編輯器開發(fā)游標(biāo)

2022-07-12 16:56:48

自定義組件鴻蒙

2024-11-18 09:18:21

Gin框架驗證器

2011-03-17 09:45:01

Spring

2022-06-23 07:23:34

自定義組件計時器

2016-12-26 15:25:59

Android自定義View

2025-03-10 01:00:00

Spring參數(shù)解析器

2016-11-16 21:55:55

源碼分析自定義view androi
點贊
收藏

51CTO技術(shù)棧公眾號

wwwxxx在线观看| 无码人妻久久一区二区三区| gogo人体一区| 欧美视频在线观看 亚洲欧| 日韩av一区二区三区在线| 国产又粗又猛视频| 亚洲电影成人| 中国人与牲禽动交精品| 成人在线观看一区二区| 天天免费亚洲黑人免费| 亚洲精品网站在线观看| 欧美日韩综合另类| 性生活黄色大片| 美女尤物久久精品| 九九久久久久99精品| 成人免费网站黄| 超碰成人97| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲精品粉嫩美女一区| 一区二区在线观看不卡| 小说区图片区图片区另类灬| 狠狠躁日日躁夜夜躁av| 蜜臀av国产精品久久久久| 国内精品免费午夜毛片| 97在线观看视频免费| 欧美三级自拍| 欧美不卡一区二区三区| 在线观看国产中文字幕| 亚洲天堂av影院| 一卡二卡三卡日韩欧美| 亚洲五月六月| 国产片在线观看| 99精品黄色片免费大全| 97久久精品午夜一区二区| 中文字幕在线观看国产| 模特精品在线| 欧美在线免费观看| 国产成人精品亚洲男人的天堂| 日韩一区二区在线免费| 亚洲午夜色婷婷在线| 99久久久久久久久久| 97se亚洲| 亚洲第一页中文字幕| 超碰人人cao| 国产一区 二区| 欧美精品在线一区二区| 999在线观看| 免费在线成人激情电影| 在线亚洲精品福利网址导航| 久久久免费视频网站| а√在线中文在线新版| 天天色综合成人网| 黄网站欧美内射| 国产在线美女| 婷婷一区二区三区| 成人免费在线小视频| 久热在线观看视频| 亚洲国产精品一区二区尤物区| 伊人再见免费在线观看高清版 | 日韩伦理一区| 日韩中文字幕视频在线| 国内外成人免费激情在线视频| 高清不卡日本v二区在线| 中文字幕永久免费视频| 美腿丝袜亚洲三区| 国产视频福利一区| 国产精品无码AV| 国产一区二区三区久久悠悠色av| 91精品视频网站| 99热这里只有精品66| 国产高清久久久久| 国产精品制服诱惑| 色综合888| 国产日韩欧美不卡在线| 亚洲欧美一区二区原创| 国产色在线观看| 亚洲一区免费视频| 国产乱子伦农村叉叉叉| 免费成人直播| 欧美人与禽zozo性伦| 日本黄色大片在线观看| 欧美性生活一级片| 亚洲天堂av在线免费观看| 久久精品色妇熟妇丰满人妻| 欧美777四色影| 97香蕉久久超级碰碰高清版| 91精品国产乱码久久久张津瑜 | 久久久久久久成人| 黄色片中文字幕| 久久精品国产久精国产爱| 亚洲影院色在线观看免费| 乱色精品无码一区二区国产盗| 91欧美一区二区| 亚洲女人毛片| a级片免费在线观看| 91豆麻精品91久久久久久| 天天干天天操天天做| 成午夜精品一区二区三区软件| 国产视频精品免费播放| а天堂中文在线资源| 在线观看一区| 91精品久久久久久久| 囯产精品一品二区三区| 国产日韩三级在线| 中国一级大黄大黄大色毛片| 色偷偷色偷偷色偷偷在线视频| 欧美三级电影网站| 国产a√精品区二区三区四区| 精品精品久久| 久久全国免费视频| 97人妻人人澡人人爽人人精品| 夫妻av一区二区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 欧美v亚洲v| 欧美三级日韩三级| 9.1成人看片| 国内在线观看一区二区三区| 国产精品旅馆在线| 香蕉国产在线视频| 亚洲精品乱码久久久久久日本蜜臀| 男人操女人免费| 999久久久精品一区二区| 日韩在线激情视频| 国产中文字幕视频| 成人av手机在线观看| 熟女熟妇伦久久影院毛片一区二区| 韩国精品一区| 精品日韩99亚洲| 无码黑人精品一区二区| 日本va欧美va精品发布| 狼狼综合久久久久综合网| 欧洲黄色一区| 日韩欧美一二三四区| 国产一区二区三区视频播放| 久久精品道一区二区三区| 高清国产一区| 色a资源在线| 91精品国产免费| 日韩亚洲欧美中文字幕| 男人操女人的视频在线观看欧美| 免费在线一区二区| 美女18一级毛片一品久道久久综合| 亚洲精品久久久久中文字幕欢迎你 | 欧美精品一区二区三区精品| 日韩免费观看网站| 日韩私人影院| 色综合久久99| 免费一级做a爰片久久毛片潮| 国产欧美一级| 欧美xxxx黑人又粗又长精品| 国产精品高颜值在线观看| 精品三级av在线| 日本少妇全体裸体洗澡| av中文一区二区三区| 国产日韩欧美精品在线观看| 国产主播性色av福利精品一区| 久久69精品久久久久久久电影好| 国产三级在线观看视频| 亚洲人成小说网站色在线 | 天堂网视频在线| 91免费在线看| av无码精品一区二区三区| 欧美人与牛zoz0性行为| 国产精品xxxxx| 电影av在线| 欧美性一区二区| 国内毛片毛片毛片毛片毛片| 激情小说亚洲一区| 国产一线二线三线女| 天天躁日日躁狠狠躁欧美巨大小说| 欧美孕妇性xx| 阿v免费在线观看| 4438x亚洲最大成人网| 久久精品这里只有精品| 成人黄色av电影| 日韩亚洲在线视频| 天堂美国久久| 国产精品一区在线播放| 久久99久久99精品免观看软件| 在线视频精品一| 99久久精品国产成人一区二区| 亚洲国产三级在线| 亚洲日本精品视频| 狠狠色丁香婷综合久久| 妞干网在线视频观看| 成人综合专区| 国产三区精品| 精品久久在线| 国色天香2019中文字幕在线观看| 黄色的视频在线免费观看| 欧美乱妇一区二区三区不卡视频| 久久久久噜噜噜亚洲熟女综合| 久久人人97超碰com| 国产无遮挡猛进猛出免费软件| 亚洲手机视频| 亚洲国产精品久久久久久女王| 免费一区二区三区在线视频| 庆余年2免费日韩剧观看大牛| 久操免费在线| 精品亚洲一区二区三区在线播放 | 精品91自产拍在线观看一区| 伊人久久亚洲综合| 香蕉乱码成人久久天堂爱免费| 亚洲精品午夜视频| 成人激情视频网站| 中日韩av在线播放| 久久精品综合| 久艹在线免费观看| 欧美在线色图| 蜜桃av噜噜一区二区三| 91蜜桃臀久久一区二区| 国产精品色视频| jizz内谢中国亚洲jizz| 欧美日韩国产91| 黄a在线观看| 亚洲视频在线看| 亚欧洲精品视频| 精品剧情在线观看| 国产精品久久久久毛片| 在线一区二区三区四区| 国产精品100| 亚洲一区二区三区免费视频| 成人做爰视频网站| 国产区在线观看成人精品 | 中文字幕av一区 二区| 国产精品探花一区二区在线观看| 国产成人综合视频| 亚洲精品综合在线观看| 日韩福利视频网| 国产亚洲天堂网| 亚洲每日在线| 精品无码国产一区二区三区av| 久久精品亚洲欧美日韩精品中文字幕| 日韩免费电影一区二区| 激情综合网站| 日本成人三级电影网站| 亚洲人成网www| 久久偷窥视频| 欧美调教视频| 久久久久资源| 特黄特色欧美大片| 久久99九九| 日韩精品免费一区二区三区竹菊| 99在线看视频| 国产精品极品| 韩国一区二区三区美女美女秀 | 亚洲欧洲日夜超级视频| 精品国产不卡| 五月天亚洲综合小说网| 日韩精品不卡一区二区| 亚洲一区二区在线看| 色呦哟—国产精品| 正在播放亚洲| 欧美精品入口| 东北少妇不带套对白| 在线看片一区| 久久久免费视频网站| 日日摸夜夜添夜夜添精品视频| 国产精品wwwww| 蜜桃av噜噜一区| 国产一区二区在线观看免费视频| 国产一区二区91| 极品白嫩的小少妇| 91免费精品国自产拍在线不卡| 人人妻人人澡人人爽人人精品| 久久噜噜亚洲综合| 天天色影综合网| 一个色综合网站| 69视频免费在线观看| 欧美日精品一区视频| 国产手机视频在线| 欧美精品一区二区三区久久久| 香蕉久久国产av一区二区| 亚洲热线99精品视频| 国产视频中文字幕在线观看| 久久久久国产精品一区| 欧美xoxoxo| 91久久久久久久久久久| 国产精品一线| 日本精品免费| 91精品一区二区三区综合在线爱| 天堂8在线天堂资源bt| 久久精品日韩欧美| 亚洲精品综合在线观看| 成人av免费观看| 男女男精品视频网站| 亚洲成人在线观看视频| 啪啪小视频网站| 日韩免费视频一区二区| 人成在线免费视频| 久久中文久久字幕| 碰碰在线视频| 91中文在线视频| 美女毛片一区二区三区四区| 精品嫩模一区二区三区| 亚洲欧美日韩专区| 中文字幕国产高清| 91麻豆福利精品推荐| 国产午夜手机精彩视频| 色妹子一区二区| 国产91免费在线观看| 中日韩午夜理伦电影免费| h片在线观看视频免费| 国产欧美一区二区三区久久| 另类尿喷潮videofree| 超碰在线免费观看97| 首页国产欧美日韩丝袜| 无码人妻丰满熟妇啪啪网站| 国产精品久久久久久久久免费丝袜| 五月天综合激情网| 日韩一级免费一区| yjizz视频网站在线播放| 91精品国产91久久久久久吃药| 一区二区三区| 亚洲午夜精品一区二区三区| 国产日韩视频| 黑森林av导航| 亚洲人成网站精品片在线观看| 国产一级精品毛片| 亚洲男人天堂视频| 热三久草你在线| 成人18视频| 欧美日韩国产高清| 亚洲五月激情网| 自拍视频在线观看一区二区| 中文字幕在线观看视频免费| 亚洲精品电影久久久| 国产盗摄精品一区二区酒店| 亚洲va欧美va国产综合久久| 成人aaaa| wwww.国产| 国产日韩视频一区二区三区| 久久国产视频播放| 亚洲白拍色综合图区| 午夜小视频在线观看| 91久久国产精品| 欧美独立站高清久久| 亚洲这里只有精品| 国产精品蜜臀av| 中文字幕人成人乱码亚洲电影| 在线观看91久久久久久| 色香欲www7777综合网| 欧美精彩一区二区三区| 亚洲欧美成人综合| 强伦人妻一区二区三区| 欧美日韩亚洲一区二区| 天堂91在线| 情事1991在线| 自拍偷拍精品| 国产v亚洲v天堂无码久久久| 亚洲国产高清aⅴ视频| 久久久久久av无码免费看大片| 一区二区三区www| 成人av色网站| 一区在线电影| 国产资源在线一区| 欧美国产精品一二三| 亚洲成人av在线| 中文字幕在线官网| 欧美一区亚洲二区| 美女国产一区二区| 一区二区国产精品精华液| 日韩精品一区二区三区在线| jizz一区二区三区| 免费av一区二区三区| 日本成人超碰在线观看| 小泽玛利亚一区| 精品乱人伦小说| 日韩三区在线| av动漫免费观看| eeuss国产一区二区三区| 国产精品久久久久久久久久精爆| 在线色欧美三级视频| 久久三级中文| 国产一区二区在线视频播放| 国产性色一区二区| 国产又粗又黄又爽视频| 国内自拍欧美激情| 欧美一站二站| 人妻 丝袜美腿 中文字幕| 色综合久久中文综合久久97 | 97国产精品免费视频| 欧美日韩一二三四| 精品人妻一区二区三区免费| 欧美日韩视频在线| 免费大片在线观看www| 国产另类自拍| 久久99久久99小草精品免视看| 久热这里只有精品在线| 在线日韩日本国产亚洲| 国产精品网在线观看| 污污网站免费看| 亚洲第一av色| 91av资源在线| 美女被啪啪一区二区| 国产精品影音先锋| 波多野结衣一区二区三区在线 | 久久久久无码国产精品不卡| 亚洲系列中文字幕| 动漫3d精品一区二区三区乱码|