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

DEX文件格式分析

移動開發(fā) Android
前段時間忙于破解移動和電信的 apk ,挺久沒有更新博客了,最近在寫個工具,主要功能是通過配置對 dex 文件中的類型、函數(shù)、屬性進(jìn)行隱藏,達(dá)到防止被靜態(tài)分析的效果。所以在寫工具前必須對 dex 的文件格式有個清晰的認(rèn)識,相對于 elf 文件格式 dex 文件格式會簡單一些。

前段時間忙于破解移動和電信的 apk ,挺久沒有更新博客了,最近在寫個工具,主要功能是通過配置對 dex 文件中的類型、函數(shù)、屬性進(jìn)行隱藏,達(dá)到防止被靜態(tài)分析的效果。所以在寫工具前必須對 dex 的文件格式有個清晰的認(rèn)識,相對于 elf 文件格式 dex 文件格式會簡單一些。

原文鏈接: DEX文件格式分析

0x00 前言

分析 dex 文件格式最好的方式是找個介紹文檔,自己再寫一個簡單的 demo 然后用 010Editor 對照著分析。文檔可以參考官方文檔http://source.android.com/devices/tech/dalvik/dex-format.html,英文差的也可以找個中文的,比如說我。。。。。。

010Editor 這個工具比較好用,之前分析 elf 文件也是用的它。其實(shí)只要裝了模板,可以分析很多文件。雖然是收費(fèi)軟件,有30天免費(fèi)試用。但是如果你用的是 mac 😏 試用期到了, 刪一下這個文件 🙄 ~/.config/SweetScape/010 Editor.ini。

0x01 文件布局

dex 文件可以分為3個模塊,頭文件(header)、索引區(qū)(xxxx_ids)、數(shù)據(jù)區(qū)(data)。頭文件概況的描述了整個 dex 文件的分布,包括每一個索引區(qū)的大小跟偏移。索引區(qū)的ids 是 identifiers 的縮寫,表示每個數(shù)據(jù)的標(biāo)識,索引區(qū)主要是指向數(shù)據(jù)區(qū)的偏移。 

 

010Editor 中除了數(shù)據(jù)區(qū)(data)沒有顯示出來,其他區(qū)段都有顯示,另外 link_data 在模板中被定為 map_list 

 

 

 

0x02 header

header 描述了 dex 文件信息,和其他各個區(qū)的索引。010Editor(寫010Editor 有點(diǎn)麻煩下面直接寫010)中用結(jié)構(gòu)體 struct header_item 來描述 header。 

 

 

 

其中用到了兩種數(shù)據(jù)類型char、uint。這里的 char 是 C/C++ 中的char 占 8-bit, java 中的 char 是占 16-bit 有點(diǎn)區(qū)別,但是我們可以他來表示 short/ushort 這個以后介紹最近寫的工具會介紹。官方文檔是用 ubyte來定義的,那還是按官方的來吧。結(jié)構(gòu)體描述:

  1. ubyte 8-bit unsinged int 
  2. uint  32-bit unsigned int, little-endian 
  3.  
  4. struct header_item  
  5.     ubyte[8]  magic; 
  6.     unit      checksum;  
  7.     ubyte[20] signature;  
  8.     uint      file_size;  
  9.     uint      header_size;  
  10.     unit      endian_tag;  
  11.     uint      link_size;  
  12.     uint      link_off;  
  13.     uint      map_off; 
  14.     uint      string_ids_size;  
  15.     uint      string_ids_off;  
  16.     uint      type_ids_size;  
  17.     uint      type_ids_off;  
  18.     uint      proto_ids_size;  
  19.     uint      proto_ids_off;  
  20.     uint      method_ids_size;  
  21.     uint      method_ids_off;  
  22.     uint      class_defs_size;  
  23.     uint      class_defs_off;  
  24.     uint      data_size; 
  25.     uint      data_off;  

 除了 magic、checksum、signature、file_size、endian_tag、map_off 其他元素都是成對出現(xiàn)的。_off 表示元素的偏移量,_size 表示元素的個數(shù)。其余的6個描述主要是 dex 文件的信息。

  • magic: 這個是固定值,用于識別 dex 文件。轉(zhuǎn)化為字符串為:
  1. {0x64, 0x65, 0x78, 0x0A, 0x30, 0x33, 0x35, 0x00} = "dex\n035\0" 

中間是一個換行,后面035是版本號。

  • checksum: 文件校驗(yàn)碼,使用 alder32 算法校驗(yàn)文件除去 maigc、checksum 外余下的所有文件區(qū)域,用于檢 查文件錯誤。
  • signature: 使用 SHA-1 算法 hash 除去 magic、checksum 和 signature 外余下的所有文件區(qū)域, 用于唯一識別本文件 。
  • file_size: dex 文件大小
  • header_size: header 區(qū)域的大小,目前是固定為 0x70
  • endian_tag: 大小端標(biāo)簽,dex 文件格式為小端,固定值為 0x12345678 常量
  • map_off: map_item 的偏移地址,該 item 屬于 data 區(qū)里的內(nèi)容,值要大于等于 data_off 的大小,處于 dex 文件的末端。

0x03 string_ids

string_ids 區(qū)段描述了 dex 文件中所有的字符串。格式很簡單只有一個偏移量,偏移量指向了 string_data 區(qū)段的一個字符串: 

 

 

 

上述描述里提到了 LEB128 ( little endian base 128 ) 格式,是基于 1 個 byte 的一種不定長度的編碼方式。若第一個 byte 的最高位為1,則表示還需要下一個 byte 來描述,直至最后一個 byte 的最高位為 0。每個 byte 的其余 bit 用來表示數(shù)據(jù),如下表所示。實(shí)際中 LEB128 最大只能達(dá)到 32-bit 可以閱讀 dalvik 中的Leb128.h源碼看出來。 

 

 

 

數(shù)據(jù)結(jié)構(gòu)為:

  1. ubyte    8-bit unsinged int 
  2. uint     32-bit unsigned int, little-endian 
  3. uleb128  unsigned LEB128, valriable length 
  4.  
  5. struct string_ids_item 
  6.     uint string_data_off; 
  7.  
  8. struct string_data_item  
  9.     uleb128 utf16_size; 
  10.     ubyte   data;  

 其中 data 保存的就是字符串的值。string_ids 是比較關(guān)鍵的,后續(xù)的區(qū)段很多都是直接指向 string_ids 的 index。在寫工具進(jìn)行比較的時候也需要提取到 string_id

0x04 type_ids

type_ids 區(qū)索引了 dex 文件里的所有數(shù)據(jù)類型,包括 class 類型,數(shù)組類型(array types)和基本類型(primitive types)。區(qū)段里的元素格式為 type_ids_item,結(jié)構(gòu)描述如下 :

  1. uint 32-bit unsigned int, little-endian 
  2.  
  3. struct type_ids_item 
  4.     uint descriptor_idx;  //-->string_ids 

 type_ids_item 里面 descriptor_idx 的值的意思,是 string_ids 里的 index 序號,是用來描述此 type 的字符串。

0x05 proto_ids

proto 的意思是 method prototype 代表 java 語言里的一個 method 的原型 。proto_ids 里的元素為 proto_id_item,結(jié)構(gòu)如下:

  1. uint 32-bit unsigned int, little-endian  
  2.  
  3. struct proto_id_item 
  4.     uint shorty_idx;        //-->string_ids 
  5.     uint return_type_idx;    //-->type_ids 
  6.     uint parameters_off; 
  7.  
  • shorty_idx: 跟 type_ids 一樣,它的值是一個 string_ids 的 index 號 ,最終是一個簡短的字符串描述,用來說明該 method 原型。
  • return_type_idx: 它的值是一個 type_ids 的 index 號 ,表示該 method 原型的返回值類型。
  • parameters_off: 指向 method 原型的參數(shù)列表 type_list,若 method 沒有參數(shù),值為0。參數(shù)列表的格式是 type_list,下面會有描述。

0x06 field_ids

filed_ids 區(qū)里面有 dex 文件引用的所有的 field。區(qū)段的元素格式是 field_id_item,結(jié)構(gòu)如下:

  1. ushort 16-bit unsigned int, little-endian  
  2. uint   32-bit unsigned int, little-endian  
  3.  
  4. struct filed_id_item 
  5.     ushort class_idx;  //-->type_ids 
  6.     ushort type_idx;   //-->type_ids 
  7.     uint   name_idx;   //-->string_ids 
  8.  
  • class_idx: 表示 field 所屬的 class 類型,class_idx 的值是 type_ids 的一個 index,并且必須指向一個 class 類型。
  • type_idx: 表示本 field 的類型,它的值也是 type_ids 的一個 index 。
  • name_idx: 表示本 field 的名稱,它的值是 string_ids 的一個 index 。

0x07 method_ids

method_ids 是索引區(qū)的最后一個條目,描述了 dex 文件里的所有的 method。method_ids 的元素格式是 method_id_item,結(jié)構(gòu)跟 fields_ids 很相似:

  1. ushort 16-bit unsigned int, little-endian  
  2. uint   32-bit unsigned int, little-endian  
  3.  
  4. struct filed_id_item 
  5.     ushort class_idx;  //-->type_ids 
  6.     ushort proto_idx;   //-->proto_ids 
  7.     uint   name_idx;   //-->string_ids 
  8.  
  • class_idx: 表示 method 所屬的 class 類型,class_idx 的值是 type_ids 的一個 index,并且必須指向一個 class 類型。<font color=red>ushort類型也是為什么我們說一個 dex 只能有 65535 個方法的原因,多了必須分包</font>。
  • proto_idx: 表示 method 的類型,它的值也是 type_ids 的一個 index。
  • name_idx: 表示 method 的名稱,它的值是 string_ids 的一個 index。

0x08 class_defs

class_def 區(qū)段主要是對 class 的定義,它的結(jié)構(gòu)很復(fù)雜,看的我有點(diǎn)暈,一層套一層。先看一張 010 的結(jié)構(gòu)圖: 

 

 

 

看著都暈,別說解析的時候了。

class_def_item

class_def_item 結(jié)構(gòu)描述如下:

  1. uint   32-bit unsigned int, little-endian 
  2.  
  3. struct class_def_item 
  4.     uint class_idx;         //-->type_ids    
  5.     uint access_flags;         
  6.     uint superclass_idx;    //-->type_ids 
  7.     uint interface_off;     //-->type_list 
  8.     uint source_file_idx;    //-->string_ids 
  9.     uint annotations_off;    //-->annotation_directory_item 
  10.     uint class_data_off;    //-->class_data_item 
  11.     uint static_value_off;    //-->encoded_array_item 
  12.  
  • class_idx: 描述具體的 class 類型,值是 type_ids 的一個 index 。值必須是一個 class 類型,不能是數(shù)組類型或者基本類型。
  • access_flags: 描述 class 的訪問類型,諸如 public , final , static 等。在 dex-format.html 里 "access_flags Definitions" 有具體的描述 。
  • superclass_idx: 描述 supperclass 的類型,值的形式跟 class_idx 一樣 。
  • interfaces_off: 值為偏移地址,指向 class 的 interfaces,被指向的數(shù)據(jù)結(jié)構(gòu)為 type_list 。class 若沒有 interfaces 值為 0。
  • source_file_idx: 表示源代碼文件的信息,值是 string_ids 的一個 index。若此項(xiàng)信息缺失,此項(xiàng)值賦值為 NO_INDEX=0xffff ffff。
  • annotions_off: 值是一個偏移地址,指向的內(nèi)容是該 class 的注釋,位置在 data 區(qū),格式為 annotations_direcotry_item。若沒有此項(xiàng)內(nèi)容,值為 0 。
  • class_data_off: 值是一個偏移地址,指向的內(nèi)容是該 class 的使用到的數(shù)據(jù),位置在 data 區(qū),格式為 class_data_item。若沒有此項(xiàng)內(nèi)容值為 0。該結(jié)構(gòu)里有很多內(nèi)容,詳細(xì)描述該 class 的 field、method, method 里的執(zhí)行代碼等信息,后面會介紹class_data_item。
  • static_value_off: 值是一個偏移地址 ,指向 data 區(qū)里的一個列表 (list),格式為 encoded_array_item。若沒有此項(xiàng)內(nèi)容值為 0。

type_list

type_list 在 data 區(qū)段,class_def_item->interface_off 就是指的這里的數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)如下:

  1. uint   32-bit unsigned int, little-endian 
  2.  
  3. struct type_list 
  4.     uint       size
  5.     type_item  list [size]  
  6.  
  7. struct type_item 
  8.     ushort type_idx   //-->type_ids 
  9.  
  • size: 表示類型個數(shù)
  • type_idx: 對應(yīng)一個 type_ids 的 index

annotations_directory_item

class_def_item->annotations_off 指向的數(shù)據(jù)區(qū)段,定義了 annotation 相關(guān)的數(shù)據(jù)描述,數(shù)據(jù)結(jié)構(gòu)如下:

  1. uint   32-bit unsigned int, little-endian 
  2.  
  3. struct annotation_directory_item 
  4.     uint class_annotations_off;        //-->annotation_set_item 
  5.     uint fields_size; 
  6.     uint annotated_methods_size; 
  7.     uint annotated_parameters_size; 
  8.      
  9.     field_annotation field_annotations[fields_size]; 
  10.     method_annotation method_annotations[annotated_methods_size]; 
  11.     parameter_annotation parameter_annotations[annotated_parameters_size]; 
  12.  
  13. struct field_annotation 
  14.     uint field_idx; 
  15.     uint annotations_off;    //-->annotation_set_item 
  16.  
  17. struct method_annotation 
  18.     uint method_idx; 
  19.     uint annotations_off;    //-->annotation_set_item 
  20.  
  21. struct parameter_annotation 
  22.     uint method_idx; 
  23.     uint annotations_off;    //-->annotation_set_ref_list 
  24.  
  • class_annotations_off: 這個偏移指向了 annotation_set_item 具體的可以看 dex-format.html 上的介紹。
  • fields_size: 表示屬性的個數(shù)
  • annotated_methods_size: 表示方法的個數(shù)
  • annotated_parameters_size: 表示參數(shù)的個數(shù)

class_data_item

class_data_off 指向 data 區(qū)里的 class_data_item 結(jié)構(gòu),class_data_item 里存放著本 class 使用到的各種數(shù)據(jù),下面是 class_data_item 的結(jié)構(gòu) :

  1. uleb128 unsigned little-endian base 128  
  2.  
  3. struct class_data_item 
  4.     uleb128 static_fields_size; 
  5.     uleb128 instance_fields_size; 
  6.     uleb128 direct_methods_size; 
  7.     uleb128 virtual_methods_size; 
  8.  
  9.     encoded_field  static_fields[static_fields_size]; 
  10.     encoded_field  instance_fields[instance_fields_size]; 
  11.     encoded_method direct_methods[direct_methods_size]; 
  12.     encoded_method virtual_methods[virtual_methods_size]; 
  13.  
  14. struct encoded_field 
  15.     uleb128 filed_idx_diff;  
  16.     uleb128 access_flags;   
  17.  
  18. struct encoded_method 
  19.     uleb128 method_idx_diff;  
  20.     uleb128 access_flags;  
  21.     uleb128 code_off; 
  22.  

class_data_item

  • static_fields_size: 靜態(tài)成員變量的個數(shù)
  • instance_fields_size: 實(shí)例成員變量個數(shù)
  • direct_methods_size: 直接函數(shù)個數(shù)
  • virtual_methods_size: 虛函數(shù)個數(shù)

下面幾個就是對于的描述

encoded_field

  • method_idx_diff: 前綴 methd_idx 表示它的值是 method_ids 的一個 index ,后綴 _diff 表示它是于另 外一個 method_idx 的一個差值 ,就是相對于 encodeed_method [] 數(shù)組里上一個元素的 method_idx 的差值 。 其實(shí) encoded_filed - > field_idx_diff 表示的也是相同的意思 ,只是編譯出來的 Hello.dex 文件里沒有使用到 class filed 所以沒有仔細(xì)講 ,詳細(xì)的參考 dex_format.html 的官網(wǎng)文檔。
  • access_flags: 訪問權(quán)限,比如 public、private、static、final 等。
  • code_off: 一個指向 data 區(qū)的偏移地址,目標(biāo)是本 method 的代碼實(shí)現(xiàn)。被指向的結(jié)構(gòu)是code_item,有近 10 項(xiàng)元素。

code_item

code_item 結(jié)構(gòu)里描述著某個 method 的具體實(shí)現(xiàn),它的結(jié)構(gòu)描述如下:

  1. struct code_item  
  2.     ushort                         registers_size; 
  3.     ushort                         ins_size; 
  4.     ushort                         outs_size; 
  5.     ushort                         tries_size; 
  6.     uint                         debug_info_off; 
  7.     uint                         insns_size; 
  8.     ushort                         insns [insns_size];  
  9.     ushort                         paddding;             // optional 
  10.     try_item                     tries [tyies_size]; // optional 
  11.     encoded_catch_handler_list  handlers;             // optional 
  12.  

末尾的 3 項(xiàng)標(biāo)志為 optional , 表示可能有 ,也可能沒有 ,根據(jù)具體的代碼來。

  • registers_size: 本段代碼使用到的寄存器數(shù)目。
  • ins_size: method 傳入?yún)?shù)的數(shù)目 。
  • outs_size: 本段代碼調(diào)用其它 method 時需要的參數(shù)個數(shù) 。
  • tries_size: try_item 結(jié)構(gòu)的個數(shù) 。
  • debug_off: 偏移地址,指向本段代碼的 debug 信息存放位置,是一個 debug_info_item 結(jié)構(gòu)。
  • insns_size: 指令列表的大小,以 16-bit 為單位。 insns 是 instructions 的縮寫 。
  • padding: 值為 0,用于對齊字節(jié) 。
  • tries 和 handlers: 用于處理 java 中的 exception,常見的語法有 try catch。

encoded_array_item

class_def_item->static_value_off 偏移指向該區(qū)段數(shù)據(jù)。

  1. uleb128  unsigned LEB128, valriable length 
  2.  
  3. struct encoded_array_item 
  4.     encoded_array value; 
  5.  
  6. struct encoded_array 
  7. {     
  8.     uleb128 size
  9.     encoded_value values[size]; 
  10.  
  • size : 表示encoded_value 個數(shù)
  • encoded_value: 這個我也沒分析出來怎么搞得🙄

0x09 map_list

map_list 中大部分 item 跟 header 中的相應(yīng)描述相同,都是介紹了各個區(qū)的偏移和大小,但是 map_list 中描述的更加全面,包括了 HEADER_ITEM 、TYPE_LIST、STRING_DATA_ITEM、DEBUG_INFO_ITEM 等信息。

010 中map_list 表示為: 

 

 

 

數(shù)據(jù)結(jié)構(gòu)為:

  1. ushort 16-bit unsigned int, little-endian 
  2. uint   32-bit unsigned int, little-endian 
  3.  
  4. struct map_list  
  5.     uint     size
  6.     map_item list [size];  
  7. struct map_item  
  8.     ushort type;  
  9.     ushort unuse;  
  10.     uint   size;  
  11.     uint   offset; 
  12.  

map_list 里先用一個 uint 描述后面有 size 個 map_item,后續(xù)就是對應(yīng)的 size 個 map_item 描述。 map_item 結(jié)構(gòu)有 4 個元素: type 表示該 map_item 的類型,Dalvik Executable Format 里 Type Code 的定義; size 表示再細(xì)分此 item,該類型的個數(shù);offset 是第一個元素的針對文件初始位置的偏移量; unuse 是用對齊字節(jié)的,無實(shí)際用處。 

 

 

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2024-03-17 19:14:28

2012-05-29 09:06:32

Hadoop文件格式

2012-05-29 09:48:21

Hadoop

2023-11-02 09:54:21

ODT文件

2021-09-29 15:52:26

計(jì)算機(jī)配置文件語言

2009-06-20 09:21:37

UNIXLINUX

2017-08-25 17:41:17

Paradox數(shù)據(jù)文件格式

2017-08-01 21:24:40

深度學(xué)習(xí)醫(yī)療影像文件格式

2010-08-03 15:40:30

NFS文件格式

2009-07-20 09:44:31

DB2外部文件格式

2017-06-16 09:58:34

Hive格式壓縮算法

2009-08-05 10:57:17

ASP.NET配置文件配置文件格式

2017-02-17 10:29:19

AndroidJava文件加密

2010-08-02 11:38:43

DB2外部文件格式

2019-11-18 09:00:10

大數(shù)據(jù)數(shù)據(jù)格式文件格式

2009-06-02 14:12:26

Hibernate配置文件格式

2022-07-02 15:06:06

Pandoc文件Markdown

2011-09-13 18:09:15

Eclipse And

2010-08-02 14:19:28

DB2數(shù)據(jù)庫

2024-04-24 08:43:06

Figmafig 文件圖形編輯器
點(diǎn)贊
收藏

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

一个色综合网站| 精品99视频| 欧美精品久久一区| 青草视频在线观看视频| 婷婷在线免费视频| 青青草视频一区| 欧美极品在线视频| 永久免费毛片在线观看| 亚洲性视频在线| 在线观看免费亚洲| 国产av熟女一区二区三区| 男女视频在线观看免费| 国产一区二区免费在线| 2018日韩中文字幕| 日韩a级片在线观看| 亚洲精品无吗| 精品欧美一区二区在线观看| 午夜免费一区二区| av剧情在线观看| 亚洲少妇最新在线视频| 日本视频一区二区不卡| 高清毛片aaaaaaaaa片| 七七婷婷婷婷精品国产| 91av在线精品| 九九视频在线观看| 97精品一区二区| 亚洲午夜色婷婷在线| 日本不卡视频一区| 日本免费一区二区三区视频| 欧美性猛交一区二区三区精品| 国产一二三在线视频| 免费不卡视频| 中文字幕一区二区三区蜜月| 日韩av在线电影观看| 午夜成人鲁丝片午夜精品| 国产在线精品国自产拍免费| 国产精品久久久久久网站| 日本在线小视频| 国产精品扒开腿做爽爽爽软件| 久久精品99久久香蕉国产色戒| 亚洲色成人网站www永久四虎| 香蕉精品久久| 亚洲精品videossex少妇| 成人免费看片载| 国产精品亚洲综合在线观看 | 中文字幕av一区二区三区四区| 欧美日韩高清不卡| 夜夜夜夜夜夜操| 日韩成人综合网站| 欧美日韩精品电影| 尤蜜粉嫩av国产一区二区三区| 欧美极品影院| 日本韩国欧美在线| 另类小说色综合| 国产精品传媒麻豆hd| 欧美日韩一卡二卡| 色天使在线观看| 24小时成人在线视频| 91麻豆精品国产综合久久久久久| 最新天堂中文在线| 亚洲精品大全| 欧美一个色资源| 国产成人精品一区二区三区在线观看| 亚洲一二三区视频| 久久久久九九视频| 国精产品99永久一区一区| 亚洲高清视频网站| 粉嫩av亚洲一区二区图片| 国产精品日韩二区| 亚洲AV第二区国产精品| 久久久久亚洲蜜桃| 亚洲高清乱码| 成人在线观看免费网站| 亚洲最大成人综合| 69堂免费视频| 粉嫩91精品久久久久久久99蜜桃| 欧美日韩三级在线| 欧美日韩理论片| 99久热这里只有精品视频免费观看| 欧美精品一区男女天堂| 老牛影视av老牛影视av| 日韩一区二区三区免费播放| 久久精品99久久久久久久久| 国产一级二级毛片| 久久亚洲精品伦理| 成人免费黄色网| 后进极品白嫩翘臀在线视频| 久久久久亚洲蜜桃| 潘金莲一级淫片aaaaa免费看| 日日夜夜天天综合入口| 日韩欧美一区二区三区久久| 天天综合网久久| 国产劲爆久久| 色哟哟亚洲精品一区二区| 国产日产精品一区二区三区的介绍| 国内久久视频| 国产国语videosex另类| 精品人妻一区二区三区麻豆91| 91网站最新网址| 最新av在线免费观看| 国产传媒在线观看| 555www色欧美视频| 亚洲午夜福利在线观看| 午夜国产欧美理论在线播放| 日韩av免费网站| 亚洲国产精品suv| 国产人妖乱国产精品人妖| www.一区二区.com| 日韩制服一区| 亚洲精品美女在线观看| 久久精品黄色片| 美女网站一区二区| 欧美连裤袜在线视频| 丰满诱人av在线播放| 欧美日韩一区二区在线视频| 男男做爰猛烈叫床爽爽小说| 欧美freesex交免费视频| 国产99在线|中文| 人妻夜夜爽天天爽| 一区二区三区中文免费| 中文字幕在线综合| 精品高清在线| 欧美亚洲视频在线观看| 亚洲精品97久久中文字幕| 国产精品久久午夜| 久久国产乱子伦免费精品| 狠狠久久伊人| 欧美精品www在线观看| 国产免费叼嘿网站免费| 国产精品毛片久久久久久久| 日韩在线xxx| 自拍偷拍欧美一区| 69久久夜色精品国产69乱青草 | 亚洲精品一区二区三区99| 99热这里只有精品4| 日韩中文字幕麻豆| 美乳视频一区二区| 中文字幕人成乱码在线观看| 亚洲国产精品va在看黑人| 欧美高清视频一区二区三区| 久久精品久久久精品美女| 日韩欧美视频一区二区三区四区| 亚洲精品成人图区| 亚洲欧美国产高清va在线播| 国产成人一区二区三区影院在线| 懂色av中文一区二区三区| 亚洲国产一二三精品无码| 国产精品亚洲欧美一级在线| 欧美成人激情图片网| 亚洲一级片免费看| 亚洲欧美乱综合| 制服下的诱惑暮生| 国产精品av一区二区| 国产精华一区| 欧产日产国产精品视频 | 91超碰rencao97精品| 成人日韩欧美| 欧美成人艳星乳罩| 日韩成人在线免费视频| 99久久亚洲一区二区三区青草| 欧美 国产 综合| 九九热线有精品视频99| 国产精品视频一| 国产淫片在线观看| 精品国产亚洲在线| 少妇太紧太爽又黄又硬又爽| 久久久激情视频| 亚洲天堂2018av| 欧美日韩国产一区精品一区| 国产伦精品一区二区三区视频免费 | 国产免费www| 国产精品久线在线观看| 日本成人在线免费| 夜夜夜久久久| 亚洲国产欧美日韩| 视频成人永久免费视频| 欧美一区深夜视频| 欧美三级理伦电影| 精品国产一区二区三区四区四 | 免费看的黄色网| 国产一区二区三区免费观看| 久久这里只有精品18| 蜜桃视频欧美| 91在线直播亚洲| 亚洲一区资源| 久久精品视频导航| 天天操天天操天天干| 欧美色电影在线| 精品肉丝脚一区二区三区| 久久久久综合网| 亚洲美女精品视频| 日本不卡一区二区三区 | av影院在线免费观看| 在线丨暗呦小u女国产精品| 精品人妻一区二区三区四区不卡| 欧美香蕉大胸在线视频观看| 欧美爱爱免费视频| 久久综合成人精品亚洲另类欧美 | 亚洲欧美一级| 91黑丝在线观看| 国产一区久久精品| 国产一区二区黑人欧美xxxx| www.污视频| 欧美日韩在线播放一区| 日韩手机在线观看| 自拍偷自拍亚洲精品播放| 久久人人妻人人人人妻性色av| 激情五月婷婷综合| 91在线视频观看免费| 亚洲午夜伦理| 正在播放91九色| 国产91精品对白在线播放| 91aaaa| 99tv成人影院| 国产精品欧美久久久| 亚洲精品国产精品国产| 久久99精品久久久久久噜噜| av电影在线观看网址| 国产视频亚洲视频| 人妻一区二区三区四区| 欧美一区午夜视频在线观看| 中国a一片一级一片| 色综合色综合色综合色综合色综合| 国产一级理论片| 又紧又大又爽精品一区二区| 少妇高潮一区二区三区喷水| 国产亚洲综合av| 老司机福利av| 97se亚洲国产综合自在线| 久久精品无码专区| 成人午夜免费视频| 好吊操视频这里只有精品| 国产一区啦啦啦在线观看| 杨幂毛片午夜性生毛片| 久久精品动漫| av免费网站观看| 天堂av在线一区| 日韩精品无码一区二区三区免费| 性色一区二区三区| 农村妇女精品一二区| 久久精品一区| 日韩毛片在线免费看| 久热精品视频| 国产精品igao| 精品一区二区综合| 九九久久久久久| 国产在线不卡一区| 亚洲一区二区图片| 粉嫩一区二区三区在线看| 一个人看的视频www| 国产成人在线观看| 国产精品日日摸夜夜爽| 成人黄色在线看| 免费a v网站| 久久久久久久久久看片| 99久久99久久精品免费看小说.| 国产精品久久久99| 欧美丰满艳妇bbwbbw| 亚洲国产综合在线| 国产免费观看av| 91久久久免费一区二区| 一级片aaaa| 欧美大胆人体bbbb| 头脑特工队2在线播放| 亚洲女人天堂网| 日本免费视频在线观看| 欧美人在线观看| 老司机深夜福利在线观看| 欧美综合国产精品久久丁香| 日韩国产网站| 亚洲qvod图片区电影| 久久资源综合| 午夜精品短视频| 欧美成人久久| 欧美v在线观看| 久久精品噜噜噜成人av农村| 超碰人人cao| 久久伊99综合婷婷久久伊| 99成人在线观看| 亚洲午夜久久久久| 免费一级a毛片| 欧美大片日本大片免费观看| 毛片免费在线| 精品综合久久久久久97| 综合日韩av| 91精品在线观| 色老板在线视频一区二区| 亚洲精品国产精品国自产| 欧美亚洲不卡| 黑森林精品导航| www.在线成人| 人人艹在线视频| 亚洲1区2区3区视频| 狠狠躁夜夜躁人人爽视频| 欧美大片日本大片免费观看| 国产精品一二三区视频| 久久久亚洲福利精品午夜| 外国电影一区二区| 久精品国产欧美| 一区二区蜜桃| 熟妇人妻无乱码中文字幕真矢织江| 国产精品69毛片高清亚洲| 妺妺窝人体色WWW精品| 亚洲一区二区三区自拍| 一级片aaaa| 国产亚洲精品美女久久久| 理论不卡电影大全神| 91在线观看免费高清完整版在线观看 | 麻豆久久久9性大片| 欧美另类亚洲| 中文字幕 日韩 欧美| 久久久久久一级片| 国产在线观看成人| 4438x亚洲最大成人网| 加勒比一区二区三区在线| 97精品在线观看| 欧美日韩午夜电影网| 亚洲欧美日韩精品综合在线观看| 国产精品久久久久久久久久妞妞 | 狠狠一区二区三区| 久久免费一级片| 久久99精品久久久| 天堂在线中文视频| 欧美性xxxxx极品娇小| 免费av网站观看| 色综合久久久888| 国产一区二区三区| 国产91av视频在线观看| 奇米四色…亚洲| 中文字幕黄色网址| 欧美吞精做爰啪啪高潮| 黄色国产在线| 国产精品99免视看9| 国产一区二区三区四区| 欧美日韩中文在线视频| 99re在线精品| 成人午夜视频在线播放| 日韩黄色在线免费观看| 日韩伦理在线一区| 女女同性女同一区二区三区91| 亚洲美女色禁图| 亚洲欧美在线不卡| 精品免费在线观看| 日韩a在线观看| 日本久久久久久久久久久| 欧美美女在线| 9久久婷婷国产综合精品性色 | 久久在线视频精品| 欧美www视频| 丁香花电影在线观看完整版| 国产精品yjizz| 国产精品毛片| 美女久久久久久久久久| 在线日韩av片| 蜜桃视频在线观看www社区| 亚洲一区中文字幕| 激情综合激情| 久久精品国产亚洲av麻豆| 在线一区二区三区四区五区| 午夜免费福利在线观看| 91免费综合在线| 一区在线视频| 日本高清www| 欧美色图片你懂的| 在线视频观看国产| 精品一区二区三区视频日产| 视频一区欧美精品| 熟女少妇a性色生活片毛片| 欧美电影精品一区二区| 亚洲综合电影| 日韩第一页在线观看| 成人丝袜高跟foot| 欧美一区免费看| 久久精品国产96久久久香蕉| av成人资源| 日本xxxxxxx免费视频| 亚洲人成人一区二区在线观看| 深爱激情五月婷婷| 国产精品精品国产| 欧美特黄一区| 久久亚洲AV无码专区成人国产| 欧美精品黑人性xxxx| 毛片在线导航| 日韩欧美精品一区二区| 国产一区二区电影| 中文字幕亚洲乱码熟女1区2区| 色视频www在线播放国产成人 | 精品爽片免费看久久| 久久青草免费| 久久国产成人精品国产成人亚洲| 国产精品高清亚洲| 婷婷综合激情网| 成人写真视频福利网| 国产精品综合| 可以直接看的黄色网址| 日韩精品一区二区三区第95| www.久久久久爱免| 中文字幕乱码人妻综合二区三区 | 日韩日韩日韩日韩日韩| 亚洲国产电影在线观看|