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

iOS符號表恢復&逆向支付寶

移動開發 iOS
本文介紹了恢復符號表的技巧,并且利用該技巧實現了在 Xcode 中對目標程序下符號斷點調試,該技巧可以顯著地減少逆向分析時間。在文章的最后,作者以支付寶為例,展示出通過在 UIAlertView 的 show 方法處下斷點,從而獲得支付寶的調用棧的過程。

推薦序

本文介紹了恢復符號表的技巧,并且利用該技巧實現了在 Xcode 中對目標程序下符號斷點調試,該技巧可以顯著地減少逆向分析時間。在文章的***,作者以支付寶為例,展示出通過在 UIAlertView 的 show 方法處下斷點,從而獲得支付寶的調用棧的過程。

本文涉及的代碼也開源在:https://github.com/tobefuturer/restore-symbol,歡迎 Star 和提 Issue。感謝作者授權發表。

作者介紹:楊君,中山大學計算機系研究生,iOS 開發者,擅長領域 iOS 安全和逆向工程,個人博客:http://blog.imjun.net 。

前言

符號表歷來是逆向工程中的 “必爭之地”,而 iOS 應用在上線前都會裁去符號表,以避免被逆向分析。

本文會介紹一個自己寫的工具,用于恢復 iOS 應用的符號表。

直接看效果 , 支付寶恢復符號表后的樣子:   

 

文章有點長,請耐心看到***,亮點在***。

為什么要恢復符號表

逆向工程中,調試器的動態分析是必不可少的,而 Xcode + lldb 確實是非常好的調試利器 , 比如我們在 Xcode 里可以很方便的查看調用堆棧,如上面那張圖可以很清晰的看到支付寶登錄的 RPC 調用過程。

實際上,如果我們不恢復符號表的話,你看到的調試頁面應該是下面這個樣子: 

 

同一個函數調用過程,Xcode 的顯示簡直天差地別。

原因是,Xcode 顯示調用堆棧中符號時,只會顯示符號表中有的符號。為了我們調試過程的順利,我們有必要把可執行文件中的符號表恢復回來。

符號表是什么

我們要恢復符號表,首先要知道符號表是什么,他是怎么存在于 Mach-O 文件中的。

符號表儲存在 Mach-O 文件的 __LINKEDIT 段中,涉及其中的符號表(Symbol Table)和字符串表(String Table)。

這里我們用 MachOView 打開支付寶的可執行文件,找到其中的 Symbol Table 項。 

 

符號表的結構是一個連續的列表,其中的每一項都是一個 struct nlist。

  1. //  位于系統庫 <macho-o/nlist.h> 頭文件中 
  2. struct nlist {   
  3.   union {   
  4.     // 符號名在字符串表中的偏移量 
  5.     uint32_t n_strx;   
  6.   } n_un; 
  7.   uint8_t n_type; 
  8.   uint8_t n_sect; 
  9.   int16_t n_desc;   
  10.   // 符號在內存中的地址,類似于函數指針 
  11.   uint32_t n_value; 
  12. };  

這里重點關注***項和***一項,***項是符號名在字符串表中的偏移量,用于表示函數名,***一項是符號在內存中的地址,類似于函數指針(這里只說明大概的結構,詳細的信息請參考官方 Mach O 文件格式的文檔)。

也就是說如果我們知道了符號名和內存地址的對應關系,我們是可以根據這個結構來逆向構造出符號表數據的。

知道了如何構造符號表,下一步就是收集符號名和內存地址的對應關系了。

獲取 OC 方法的符號表

因為 OC 語言的特性,編譯器會將類名、函數名等編譯進***的可執行文件中,所以我們可以根據 Mach-O 文件的結構逆向還原出工程里的所有類,這也就是大名鼎鼎的逆向工具 class-dump 了。class-dump 出來的頭文件里是有函數地址的: 

 

所以我們只要對 class-dump 的源碼稍作修改,即可獲取我們要的信息。

符號表恢復工具

整理完數據格式,又理清了數據來源,我們就可以寫工具了。

實現過程就不詳細說明了,工具開源在我的 Github 上了,鏈接:

https://github.com/tobefuturer/restore-symbol

我們來看看怎么用這個工具:

1. 下載源碼編譯

  1. git clone --recursive https://github.com/tobefuturer/restore-symbol.git 
  2. cd restore-symbol && make 
  3. ./restore-symbol  

2. 恢復 OC 的符號表,非常簡單

  1. ./restore-symbol ./origin_AlipayWallet -o ./AlipayWallet_with_symbol 

origin_AlipayWallet 為 Clutch 砸殼后,沒有符號表的 Mach-O 文件

-o 后面跟輸出文件位置

3. 把 Mach-O 文件重簽名打包,看效果

文件恢復符號表后,多出了 20M 的符號表信息   

 

Xcode 里查看調用棧 

 

可以看到,OC 函數這部分的符號已經恢復了,函數調用棧里已經能看出大致的調用過程了,但是支付寶里,采用了 block 的回調形式,所以還有很大一部分的符號沒能正確顯示。

下面我們就來看看怎么樣恢復這部分 block 的符號。

獲取 block 的符號信息

還是同樣的思路,要恢復 block 的符號信息,我們必須知道 block 在文件中的儲存形式。

block 在內存中的結構

首先,我們先分析下運行時,block 在內存中的存在形式。block 在內存中是以一個結構體的形式存在的,大致的結構如下:

  1. struct __block_impl {   
  2.   /** 
  3.   block 在內存中也是類 NSObject 的結構體, 
  4.   結構體開始位置是一個 isa 指針 
  5.   */ 
  6.   Class isa;   
  7.   /** 這兩個變量暫時不關心 */ 
  8.   int flags;  int reserved;   
  9.   /** 
  10.   真正的函數指針??! 
  11.   */ 
  12.   void (*invoke)(...); 
  13.   ... 
  14.  

說明下 block 中的 isa 指針,根據實際情況會有三種不同的取值,來表示不同類型的 block:

  1. _NSConcreteStackBlock

棧上的 block,一般 block 創建時是在棧上分配了一個 block 結構體的空間,然后對其中的 isa 等變量賦值。

     2._NSConcreteMallocBlock

堆上的 block,當 block 被加入到 GCD 或者被對象持有時,將棧上的 block 復制到堆上,此時復制得到的 block 類型變為了 _NSConcreteMallocBlock。

     3._NSConcreteGlobalBlock

全局靜態的 block,當 block 不依賴于上下文環境,比如不持有 block 外的變量、只使用 block 內部的變量的時候,block 的內存分配可以在編譯期就完成,分配在全局的靜態常量區。

第 2 種 block 在運行時才會出現,我們只關注 1、3 兩種,下面就分析這兩種 isa 指針和 block 符號地址之間的關聯。

block isa 指針和符號地址之間的關聯

分析這部分需要用到 IDA 這個反匯編軟件 , 這里結合兩個實際的小例子來說明:

1._NSConcreteStackBlock

假設我們的源代碼是這樣很簡單的一個 block:

  1. @implementation ViewController 
  2.  
  3. - (void)viewDidLoad { 
  4.     int t = 2; 
  5.     void (^ foo)() = ^(){ 
  6.         NSLog(@"%d", t); //block 引用了外部的變量 t 
  7.     }; 
  8.     foo(); 
  9.  
  10. @end  

編譯完后,實際的匯編長這個樣子: 

 

 

 

實際運行時,block 的構造過程是這樣:

  • 為 block 開辟??臻g
  • 為 block 的 isa 指針賦值(一定會引用全局變量:_NSConcreteStackBlock)
  • 獲取函數地址,賦值給函數指針

所以我們可以整理出這樣一個特征:

重點來了 !!!

凡是代碼里用到了棧上的 block,一定會獲取__NSConcreteStackBlock作為 isa 指針,同時會緊接著獲取一個函數地址,那個函數地址就是 block 的函數地址。

結合下面這個圖,仔細理解上面這句話

(這張圖和上面那張圖是同一個文件,不過裁掉了符號表) 

 

 

 

利用這個特征,逆向分析時我們可以做如下推斷:

在一個 OC 方法里發現引用了__NSConcreteStackBlock這個變量,那么在這附近,一定會出現一個函數地址,這個函數地址就是這個 OC 方法里的一個 block。

比如上面圖中,我們發現 viewDidLoad 里,引用了__NSConcreteStackBlock, 同時緊接著加載了 sub_100049D4 的函數地址,那我們就可以認定 sub_100049D4 是 viewDidLoad 里的一個 block, sub_100049D4 函數的符號名應該是 viewDidLoad_block.

2. _NSConcreteGlobalBlock

全局的靜態 block,是那種不引用 block 外變量的 block,他因為不引用外部變量,所以他可以在編譯期就進行內存分配操作,也不用擔心 block 的復制等等操作,他存在于可執行文件的常量區里。

不太理解的話,看個例子:

我們把源代碼改成這樣:

  1. @implementation ViewController 
  2.  
  3. - (void)viewDidLoad { 
  4.  
  5.     void (^ foo)() = ^(){ 
  6.         //block 不引用外部的變量 
  7.         NSLog(@"%d", 123); 
  8.     }; 
  9.     foo(); 
  10.  
  11. @end  

那么在編譯后會變成這樣: 

 

 

 

那么借鑒上面的思路,在逆向分析的時候,我們可以這么推斷

  • 在靜態常量區發現一個 _NSConcreteGlobalBlock 的引用
  • 這個地方必然存在一個 block 的結構體數據
  • 在這個結構體第 16 個字節的地方會出現一個值,這個值是一個 block 的函數地址

3. block 的嵌套結構

實際在使用中,可能會出現 block 內嵌 block 的情況:

  1. - (void)viewDidLoad { 
  2.   dispatch_async(background_queue ,^{ 
  3.     ... 
  4.     dispatch_async(main_queue, ^{ 
  5.       ...      
  6.     }); 
  7.   }); 
  8.  

所以這里 block 就出現了父子關系,如果我們將這些父子關系收集起來,就可以發現,這些關系會構成圖論里的森林結構,這里可以簡單用遞歸的深度優先搜索來處理,詳細過程不再描述。

block 符號表提取腳本(IDA+python)

整理上面的思路,我們發現搜索過程依賴于 IDA 提供各種引用信息,而 IDA 是提供了編程接口的,可以利用這些接口來提取引用信息。

IDA 提供的是 Python 的 SDK,***完成的腳本也放在倉庫里 search_oc_block/ida_search_block.py (https://github.com/tobefuturer/restore-symbol/blob/master/search_oc_block/ida_search_block.py。

提取 block 符號表

這里簡單介紹下怎么使用上面這個腳本:

  1. 用 IDA 打開支付寶的 Mach-O 文件
  2. 等待分析完成! 可能要一個小時
  3. Alt + F7 或者 菜單欄 File -> Script file... 

 

 

 

    4.等待腳本運行完成,預計 30s 至 60s,運行過程中會有這樣的彈窗 

 

 

 

   5.彈窗消失即 block 符號表提取完成

   6.在 IDA 打開文件的目錄下 , 會輸出一份名為block_symbol.json的 json 格式 block 符號表 

 

 

  

 

 

 

恢復符號表 & 實際分析

用之前的符號表恢復工具,將 block 的符號表導入 Mach-O 文件

  1. ./restore-symbol ./origin_AlipayWallet -o ./AlipayWallet_with_symbol -j block_symbol.json 

-j 后面跟上之前得到的 json 符號表

***得到一份同時具有 OC 函數符號表和 block 符號表的可執行文件

這里簡單介紹一個分析案例 , 你就能體會到這個工具的強大之處了。

1.在 Xcode 里對 -[UIAlertView show] 設置斷點 

 

 

 

2.運行程序,并在支付寶的登錄頁面輸入手機號和 錯誤的密碼 ,點擊登錄

3.Xcode 會在 ‘密碼錯誤’ 的警告框彈出時停下,左側會顯示出這樣的調用棧

一張圖看完支付寶的登錄過程 

 

 

 

項目開源地址:

https://github.com/tobefuturer/restore-symbol

歡迎大家在上面提各種 Issues,或者有問題也可以直接 Email(tobefuturer@gmail.com)。

責任編輯:龐桂玉 來源: iOS開發by唐巧
相關推薦

2021-01-25 14:13:26

iOS支付寶支付

2021-09-09 15:30:28

鴻蒙HarmonyOS應用

2014-11-17 10:52:56

支付寶去阿里化

2009-09-17 12:15:28

互聯網

2018-02-25 11:22:14

SDK代碼接口

2018-03-27 12:02:31

央行支付寶紅包

2011-04-21 11:27:42

Firefox支付寶

2013-10-31 11:24:53

支付寶漏洞支付寶漏洞

2017-12-18 18:23:09

支付寶掃碼賺錢支付寶套路

2009-12-14 16:31:00

Linux安裝支付寶

2009-11-23 10:02:22

PHP支付寶接口

2023-11-28 08:53:15

2025-09-25 09:31:53

2013-10-11 09:41:01

Windows 8.1支付寶

2009-08-26 16:07:09

支付寶網上購物安全邁克菲

2020-08-14 11:00:41

支付寶

2018-11-30 10:40:15

Android壓縮包大小

2021-03-30 09:59:52

支付寶加密數據泄露

2015-05-28 09:52:21

光纖支付寶

2021-05-12 07:10:55

支付寶數字人民幣移動應用
點贊
收藏

51CTO技術棧公眾號

亚洲精品99| 久久91超碰青草在哪里看| 成人天堂资源www在线| 久久久久久久久久久91| 菠萝菠萝蜜网站| 天天综合网站| 一区二区三区在线视频播放| 国产精品免费一区二区三区| aaaaaa毛片| 五月天久久网站| 亚洲激情电影中文字幕| 国产成人黄色网址| av资源在线| 国产精品久久久久久妇女6080 | 精品国产乱码久久久久久图片 | 久久久久国产精品一区二区 | 你懂的视频在线一区二区| 亚洲综合精品在线| 亚洲精品影视| 久久精品国亚洲| 黄色录像a级片| 日韩成人精品一区二区三区| 精品久久久久久久久久国产 | 一本精品一区二区三区| 日韩精品欧美激情| 丰满人妻一区二区三区53视频| 欧美三级网址| 亚洲国产美国国产综合一区二区| 亚洲欧美丝袜| 欧美老女人性开放| 成人永久免费视频| 91久久久久久久一区二区| 日韩毛片一区二区三区| 午夜精品av| 日日噜噜噜夜夜爽亚洲精品| 非洲一级黄色片| 亚洲精品进入| 亚洲精品大尺度| 日本黄色大片在线观看| 国产精品成人**免费视频| 91成人免费电影| www.中文字幕在线| 高端美女服务在线视频播放| 亚洲精品国产品国语在线app| 亚洲精品国产精品国自产| 日韩欧美在线观看一区二区| 成人av免费网站| 99一区二区三区| 国内老熟妇对白xxxxhd| 精品一区二区三区香蕉蜜桃| 国产在线久久久| 欧美激情一区二区三区免费观看| 三级成人在线视频| 热门国产精品亚洲第一区在线| 欧美bbbbbbbbbbbb精品| 一区二区亚洲精品| 久久久免费在线观看| 久久免费黄色网址| 欧美日一区二区三区在线观看国产免| 久久伊人色综合| 好吊日在线视频| 亚洲国产一区二区三区在线播放 | 少妇高潮一区二区三区喷水| 成人在线免费小视频| 一区二区在线免费视频| 九九九视频在线观看| 成人激情开心网| 日韩午夜在线视频| 一级片一级片一级片| 亚洲精品成人无限看| 大胆人体色综合| 久久香蕉精品视频| 99国产精品视频免费观看一公开 | 男人的天堂一区| 国产精品久久久久久模特 | 中文字幕色一区二区| 久草免费在线观看| 依依成人综合视频| 极品粉嫩国产18尤物| 日韩伦理在线| 欧美性大战久久久久久久| 成人免费在线观看视频网站| 国产精品va视频| 精品人伦一区二区色婷婷| 国模无码视频一区| 欧美男gay| 日韩亚洲综合在线| 国产一级免费av| 欧美亚洲三区| 国产精品一区二区三区在线播放| 国产绿帽刺激高潮对白| 成年人网站91| 日韩在线电影一区| 日本乱理伦在线| 色综合一个色综合| 欧美一级免费在线| 日韩aaa久久蜜桃av| 伊人一区二区三区久久精品| a级黄色片免费看| 国产精品一国产精品k频道56| 国产精品免费久久久| 午夜精品久久久久久久99老熟妇| 91欧美一区二区| 宅男一区二区三区| 中文日产幕无线码一区二区| 欧美美女一区二区在线观看| 男人网站在线观看| 国产精品久久久乱弄| 91精品国产色综合| 在线播放精品视频| 成人h动漫精品一区二| 亚洲美女网站18| 擼擼色在线看观看免费| 91麻豆精品国产91久久久久 | 国产美女www爽爽爽视频| 99视频精品免费视频| 在线观看日本一区| 亚洲人体视频| 精品日韩一区二区| 国产精品视频一区二区在线观看| 99精品久久| av日韩中文字幕| 91ph在线| 色欧美88888久久久久久影院| 久久久精品人妻一区二区三区| 日本不卡二三区| 97不卡在线视频| 亚洲国产精品久久久久久久| 国产精品免费视频一区| 无码人妻丰满熟妇区96| 99精品中文字幕在线不卡| 俺去亚洲欧洲欧美日韩| 亚洲午夜无码久久久久| 99久免费精品视频在线观看| 天天干天天色天天爽| 制服诱惑亚洲| 日韩精品视频免费| 国产亚洲精品码| 国产一区二区三区在线观看精品 | 国产最新视频在线| 欧美性高潮在线| 黄色av网址在线观看| 影音先锋中文字幕一区| 99视频免费观看蜜桃视频| caopon在线免费视频| 欧美嫩在线观看| 貂蝉被到爽流白浆在线观看| 日韩中文欧美在线| 欧美日韩国产精品一卡| 三级在线看中文字幕完整版| 精品国产百合女同互慰| 久久久久久久极品内射| 青青草国产精品亚洲专区无| 日本不卡二区高清三区| 周于希免费高清在线观看| 亚洲精品国产综合久久| av中文在线播放| 26uuu亚洲| 日韩手机在线观看视频| 国产精品嫩模av在线| 91精品国产91久久久久福利| 日韩毛片在线一区二区毛片| 欧美日韩免费网站| 国产免费看av| 奇米影视一区二区三区| 亚洲mv在线看| 91嫩草国产线观看亚洲一区二区| 久久中文字幕在线视频| av手机免费看| 亚洲午夜视频在线| jizz欧美性20| 日本视频在线一区| 中日韩在线视频| 久久69av| 97视频网站入口| 男人的天堂在线免费视频| 在线日韩一区二区| 男女性高潮免费网站| 国产91丝袜在线播放九色| 亚洲 欧美 日韩 国产综合 在线| 亚洲97av| 91精品久久久久久久久中文字幕 | 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产综合av| 亚洲一本视频| 日韩一本精品| 伊人久久大香线蕉av超碰| 欧美又大粗又爽又黄大片视频| wwwxxx在线观看| 日韩欧美中文字幕一区| 亚洲 欧美 日韩 综合| 欧美国产日本视频| 手机在线播放av| 先锋亚洲精品| av磁力番号网| 亚洲综合图色| 91九色蝌蚪国产| 一本大道色婷婷在线| 最新69国产成人精品视频免费| 99久久精品国产一区色| 一本久久a久久免费精品不卡| 激情无码人妻又粗又大| av在线不卡网| 91看片破解版| 奶水喷射视频一区| 黄色成人在线免费观看| 日韩精品dvd| 国产嫩草一区二区三区在线观看| 精品久久在线| 欧美专区在线观看| 亚洲wwwww| xxxxxxxxx欧美| 日韩av成人| 精品欧美一区二区久久| 中文字幕日本人妻久久久免费 | 91尤物视频在线观看| 老司机午夜性大片| 久久综合九色综合欧美狠狠| 亚洲熟妇无码av在线播放| 99热国内精品永久免费观看| 久久久婷婷一区二区三区不卡| 亚洲精品在线播放| 国产日韩中文字幕| 日本不卡一二三| 午夜精品久久久久久久男人的天堂| 午夜视频在线观看免费视频| 亚洲人成五月天| 天天射天天色天天干| 日韩一区二区三区电影| 亚洲视频一区在线播放| 日本高清成人免费播放| 国产香蕉视频在线| 亚洲在线视频一区| 劲爆欧美第一页| 亚洲人成亚洲人成在线观看图片 | 婷婷激情久久| 风间由美久久久| 日韩高清在线观看一区二区| 国产男人精品视频| 美女网站视频一区| 日韩美女在线播放| 成人免费直播| 秋霞午夜一区二区| 成人av三级| 国产ts人妖一区二区三区| 国产v日韩v欧美v| 91精品国产91久久久久久吃药| av成人福利| 97视频免费在线观看| 久草免费在线视频| 欧美主播福利视频| 日本韩国欧美| 国产精品久久久久久久久免费| 国产成人免费9x9x人网站视频| 日本不卡免费高清视频| 国产不卡网站| 国产成人涩涩涩视频在线观看| 国产日韩另类视频一区| 国产精品都在这里| 婷婷久久综合九色综合99蜜桃| 91欧美视频网站| 亚洲日本va| 国产视频不卡| 亚洲人成精品久久久 | 成人一区不卡| 福利在线小视频| 精品91在线| 日本在线视频www| 麻豆一区二区99久久久久| 五月天丁香花婷婷| 成人网页在线观看| 亚洲a v网站| 国产精品欧美一区二区三区| 在线观看美女av| 亚洲国产精品一区二区尤物区| 亚洲激情视频一区| 日韩欧美一区二区在线| 最新中文字幕免费| 3atv在线一区二区三区| 老熟妇高潮一区二区高清视频| 亚洲国内高清视频| 二区在线观看| 欧美另类高清videos| 理论片午夜视频在线观看| 国产精品免费视频久久久| 久久久国产精品入口麻豆| 国产午夜精品在线| 成人羞羞网站入口| www.avtt| 日本视频中文字幕一区二区三区| 爱情岛论坛亚洲自拍| 91热门视频在线观看| 亚洲女人久久久| 亚洲成年人网站在线观看| 久久精品五月天| 欧美大黄免费观看| 九色视频在线播放| 欧美大片大片在线播放| 中文在线免费二区三区| 亚洲精品免费av| 欧美美乳视频| 亚洲精品久久久久久久蜜桃臀| 日韩黄色片在线观看| 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 天天碰免费视频| 成人午夜碰碰视频| 男人的天堂av网| 精品久久久久久久久久久久久久| 一级片一区二区三区| 日韩成人激情在线| 91三级在线| 国产精品爽爽爽| 亚洲aaa级| 国内少妇毛片视频| 国内精品在线播放| 国产aⅴ激情无码久久久无码| 亚洲成人资源在线| 国产日韩一级片| 中文字幕日韩精品在线观看| 美女高潮在线观看| 国产精品嫩草在线观看| 91精品91| 一级黄色片在线免费观看| 国产欧美日韩另类一区| www.毛片.com| 亚洲第一网站免费视频| 99视频免费在线观看| 国产日韩欧美黄色| 成人精品视频| 日日碰狠狠躁久久躁婷婷| av不卡在线观看| 精品少妇theporn| 日韩一级片网站| 久久99精品久久久久久野外| 国产精品久久色| 精品国产精品| 日本精品免费在线观看| av午夜精品一区二区三区| 麻豆一区二区三区精品视频| 欧美一区二区三区视频在线观看 | 欧美精品aaaa| 久久影院电视剧免费观看| 日韩精品一区二区av| 精品精品国产高清一毛片一天堂| 二区在线播放| 亚洲一区二区三区777| 中文字幕午夜精品一区二区三区| 亚洲精品久久久中文字幕| 国产日韩欧美精品电影三级在线| 免费黄色网址在线| 亚洲品质视频自拍网| 欧美一区国产| 台湾成人av| 免费在线观看视频一区| sm捆绑调教视频| 日韩一区二区免费在线观看| 怡红院在线播放| 97夜夜澡人人双人人人喊| 欧美久久视频| 午夜剧场免费看| 欧美午夜精品久久久久久久| 激情小说 在线视频| 国产啪精品视频网站| 欧美有码视频| 久久久男人的天堂| 丰满岳妇乱一区二区三区| 日本天堂在线| 国产精品jizz在线观看麻豆| 欧美国产一区二区三区激情无套| 中文字幕1234区| 亚洲五码中文字幕| 青梅竹马是消防员在线| 国产精品美女www爽爽爽视频| 日韩成人精品一区二区| 亚洲五月激情网| 亚洲大尺度视频在线观看| 久久久久久久久亚洲精品| 国产欧美一区二区| 欧美激情第二页| 久操视频免费看| 欧美高清性hdvideosex| 久久不射影院| 麻豆久久久9性大片| 精品在线你懂的| 狠狠躁夜夜躁人人爽天天高潮| 国产性色av一区二区| 精品视频一二| 国产精品va无码一区二区| 中文字幕在线一区免费| 女人18毛片一区二区三区| 国产精品久久久久久久久久久新郎| 亚洲女同一区| 在线观看日韩精品视频| 4438成人网| 日韩成人av电影| 国产女教师bbwbbwbbw| 国产午夜精品一区二区 | 78精品国产综合久久香蕉| 中文字幕精品在线播放| 久久色.com|