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

如何從命令行調用Android JNI函數并傳遞Java對象參數

安全 移動安全
當我們對某個使用原生庫(native library)的惡意軟件或者應用進行分析或滲透測試時,如果能夠對庫函數進行隔離和執行是再好不過的事情,這樣做我們就可以使用其自身的代碼來調試對抗惡意軟件。

一、前言

當我們對某個使用原生庫(native library)的惡意軟件或者應用進行分析或滲透測試時,如果能夠對庫函數進行隔離和執行是再好不過的事情,這樣做我們就可以使用其自身的代碼來調試對抗惡意軟件。舉個例子,如果惡意軟件包含加密字符串,并使用原生函數完成解密過程,你可以選擇花大量時間逆向分析算法來編寫自己的解密函數,也可以選擇直接利用這個函數來處理任意輸入數據。如果使用后一種方法,即使惡意軟件作者完全改變了軟件的加密算法,你也可能不需要做任何修改即可完成任務。在這篇文章中,我將向讀者介紹如何利用并執行原生庫函數,即使調用這些函數時需要傳入JVM實例作為參數也沒問題。

[[190216]]

在之前的一篇文章中,我介紹了如何從Android原生代碼中創建一個Java虛擬機,但我沒有給出一個具體的例子。因此,我會在本文中給出一個具體的例子來說明這一點。

我們至少可以使用兩種方法來調用原生函數。第一種方法是對應用進行修改,使應用接受你的輸入數據并傳遞給原生函數。例如,你可以寫一個intent filter,將其轉化為Smali語言,將代碼添加到目標應用中,修改manifest文件,運行應用,使用adb命令將帶有參數的intent發送給目標應用即可。另一種方法更好,你可以添加一個小型socket或web服務器,使用curl向其發送請求,這種方法不需要修改manifest文件。

第二種方法的目標是創建一個通過命令行運行的小型原生可執行工具,用來加載庫文件、調用目標函數、傳遞我們輸入的任意參數。這樣我們就可以單獨運行一個可執行文件,而不需要運行整個應用程序,因此調試起來也就更為方便。

二、目標應用

我創建了一個示例應用,方便讀者按照教程學習,應用名為“native-harness-target”。你可以使用以下命令將工程文件復制到本地并完成編譯(記得修改其中的“$ANDROID_*”變量)。

  1. git clone https://github.com/CalebFenton/native-harness-target.git 
  2. cd native-harness-target 
  3. echo 'ndk.dir=$ANDROID_NDK' > local.properties 
  4. echo 'sdk.dir=$ANDROID_SDK' >> local.properties 
  5. ./gradlew build 

APK文件最終生成在“app/build/outputs/apk/”目錄。這篇文章中,我使用的是一個x86模擬器鏡像以及一個名為“app-universal-debug.apk”的應用。

該應用程序包含一個加密字符串,并會在運行時使用原生庫對字符串進行解密。以下是在Smail中字符串的解密過程:

  1. const/16 v3, 0x57 
  2. new-array v1, v3, [B 
  3. fill-array-data v1, :array_2a 
  4. .local v1, "encryptedStringBytes":[B 
  5. invoke-static {}, Lorg/cf/nativeharness/Cryptor;->getInstance()Lorg/cf/nativeharness/Cryptor; 
  6. move-result-object v0 
  7. .line 21 
  8. .local v0, "c":Lorg/cf/nativeharness/Cryptor; 
  9. # v3 contains a String made from encrypted bytes 
  10. new-instance v3, Ljava/lang/String; 
  11. invoke-direct {v3, v1}, Ljava/lang/String;-><init>([B)V 
  12. # Call the decryption method, move result back to v3 
  13. invoke-virtual {v0, v3}, Lorg/cf/nativeharness/Cryptor;->decryptString(Ljava/lang/String;)Ljava/lang/String; 
  14. move-result-object v3 

三、構建Harness工具

我使用的是Tim 'diff' Strazzere開發的一款名為“native-shim”的工具(Tim是RedNaga的一名成員)作為整套利用工具的基礎,我將這個工具命名為“Harness”。在Android中,shim就像一個中間墊片,作用是加載一個庫,并調用其“JNI_OnLoad”方法。它可以使調試工作更加簡單,我們只需要使用調試器啟動shim,并將具體路徑以參數形式傳遞給目標庫即可。我們可以設置調試器的斷點,在庫加載時觸發斷點,這樣就能進入“JNI_OnLoad”函數的處理流程。此外,native-shim還可以加載庫文件(.so文件)、獲取函數的引用并調用函數,這一切對我們來說都非常實用。

首先,我添加了部分代碼以初始化一個Java虛擬機實例,并將該實例傳遞給JNI_OnLoad函數,這樣處理可以使JNI的初始化過程更為準確。如果沒有真實的虛擬機實例,JNI庫的內部狀態看起來可能會有些奇怪。不同庫文件的JNI_OnLoad的實現可能不盡相同,但這并不重要,重要的是這些實現都會檢查JNI版本,如這段代碼所示。因此我們需要創建一個虛擬機實例。

  1. printf(" [+] Initializing JavaVM Instance\n"); 
  2. JavaVM *vm = NULL
  3. JNIEnv *env = NULL
  4. int status = init_jvm(&vm, &env); 
  5. if (status == 0) { 
  6.   printf(" [+] Initialization success (vm=%p, env=%p)\n", vm, env); 
  7. } else { 
  8.   printf(" [!] Initialization failure (%i)\n", status); 
  9.   return -1; 
  10. printf(" [+] Calling JNI_OnLoad\n"); 
  11. onLoadFunc(vm, NULL); 

我們的最終目標是通過harness工具,開啟一個socket服務器,讀取socket上傳輸的參數,使用這些參數來調用函數。這樣一來,解密函數就會變成一個服務,我們可以簡單使用一個Python腳本與其通信。

四、理解目標函數

在調用函數前,我們需要了解函數的簽名(即參數個數和參數類型)及函數的返回類型。我們可以先看一下org.cf.nativeharness.Cryptor類的反編譯代碼,類中包含decryptString原生方法的聲明,如下所示:

  1. public class Cryptor { 
  2.     private static Cryptor instance = null
  3.     public static Cryptor getInstance() { 
  4.         if (instance == null) { 
  5.             instance = new Cryptor(); 
  6.         } 
  7.         return instance; 
  8.     } 
  9.     public native String decryptString(String encryptedString); 

從這段代碼中,我們可知該方法使用了一個String對象作為參數,返回了一個String對象,看上去比較簡單。現在我們將其轉化為原生函數形式,如下所示:

  1. Java_org_cf_nativeharness_Cryptor_decryptString(JNIEnv *env, jstring encryptedString) 

每個JNI原生方法都需要將JNIEnv對象作為第一個參數。這意味著定義我們函數的typedef語句應該如下所示:

  1. typedef jstring(*decryptString_t)(JNIEnv *, jstring); 

不幸的是,如果你試圖使用上述typedef語句執行這個函數,你會得到一個錯誤信息,如下所示:

  1. E/dalvikvm: JNI ERROR (app bug): attempt to use stale local reference 0x1 
  2. E/dalvikvm: VM aborting 
  3. A/libc: Fatal signal 6 (SIGABRT) at 0x00000a9a (code=-6), thread 2714 (harness) 

這讓我困惑了好一陣子。我原先以為我可能在某個地方使用了空指針引用,因此我花了很多功夫,添加了許多printf語句,將內存中所有相關指針的位置全部打印出來。這個錯誤信息貌似在提示我某個參數出現了問題,但我排查后發現所有指針都是正常的,沒有空引用情況。

我敢肯定我傳遞的參數沒有問題,問題可能出在JNI上。為了證實這一點,我使用了javah命令,它可以生成實現原生方法所需要的C語言頭文件以及源代碼文件。

為了完成這個工作,你需要安裝dex2jar,找到正確的類路徑,將“platforms/android-19”改為你已經安裝的具體平臺,如下所示:

  1. $ d2j-dex2jar.sh app-universal-debug.apk 
  2. dex2jar app-universal-debug.apk -> ./app-universal-debug-dex2jar.jar 
  3. $ javah -cp app-universal-debug-dex2jar.jar:$ANDROID_SDK/platforms/android-19/android.jar org.cf.nativeharness.Cryptor 

上述命令可以生成“_org_cf_nativeharness_Cryptor.h_”文件,其中包含如下信息:

  1. JNIEXPORT jstring JNICALL Java_org_cf_nativeharness_Cryptor_decryptString(JNIEnv *, jobject, jstring); 

我們可以看到多了一個jobject作為第二個參數,這究竟是為什么?如果你已經知道了這個問題的答案,我敢打賭你已經花了很多時間深入學習了Smali,特別是其中的invoke-virtual方法。無論你在何時調用虛擬方法(通常都是些非靜態方法),第一個參數總是某個對象的實例,這個實例負責方法的具體實現。對于這個例子來說,此時第一個參數應該是“org.cf.nativeharness.Cryptor”類的一個實例。

當然,你可以投機取巧,比如可以查看str-crypt.c代碼,找到函數的具體調用形式。但你要知道你是個逆向分析師(或滲透測試員),你不可能拿到源代碼。

因此正確的typedef語句中應該包含Cryptor實例的一個jobject對象,如下所示:

  1. typedef jstring(*decryptString_t)(JNIEnv *, jobject, jstring); 

你可能會感到好奇,為什么我們不以靜態方法開始介紹?沒有特別的理由,主要是因為我在寫這篇博客時,所分析的原始應用中目標方法不是靜態方法,僅此而已。

這一部分內容最大的收獲就是,如果你不確定函數的具體調用形式,你可以試一下javah命令,時刻牢記虛擬方法與Java中的Method#invoke()類似,使用某個實例對象作為第一個參數。

五、構建Socket服務器

這是整個工作中最無趣的一個環節,如果你不介意的話,我會跳過這一部分。你可以自行查看具體的實現源碼,如果愿意的話也可以提出修改意見。

六、Harness工具的使用方法

你可以通過如下幾個步驟來使用Harness工具。

1、啟動模擬器

2、將harness push到設備中

3、將目標原生庫及其他依賴庫push到設備中(本文示例中不涉及到依賴庫)

4、將目標應用push到設備中

5、運行harness工具

6、將模擬器的端口轉發到宿主機上

7、運行“decrypt_string.py”,祈禱一切順利

你可以使用以下命令將應用及原生庫push到設備中。

  1. $ adb push app/build/output/apk/app-universal-debug.apk /data/local/tmp/target-app.apk 
  2. $ unzip app/build/outputs/apk/app-universal-debug.apk lib/x86/libstr-crypt.so 
  3. Archive:  app/build/outputs/apk/app-universal-debug.apk 
  4.   inflating: lib/x86/libstr-crypt.so 
  5. $ adb push lib/x86/libstr-crypt.so /data/local/tmp 
  6. lib/x86/libstr-crypt.so: 1 file pushed. 1.5 MB/s (5476 bytes in 0.004s) 

使用如下命令將harness工具push到設備中。

  1. cd harness 
  2. make && make install 

注意:以上命令會將x86庫push到設備中,如果你確實想要使用其他的模擬器鏡像,你可以使用“adb push libs//harness /data/local/tmp”命令替換“make install”命令。

現在,你可以運行harness,將目標庫路徑作為第一個參數傳入,如下所示:

  1. $ adb shell /data/local/tmp/harness /data/local/tmp/libstr-crypt.so 
  2. [*] Native Harness 
  3.  [+] Loading target: [ /data/local/tmp/libstr-crypt.so ] 
  4.  [+] Library Loaded! 
  5.  [+] Found JNI_OnLoad, good 
  6.  [+] Initializing JavaVM Instance 
  7. WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix. 
  8.  [+] Initialization success (vm=0xb8e420a0env=0xb8e420e0
  9.  [+] Calling JNI_OnLoad 
  10.  [+] Found decryptString function, good (0xb761f4f0) 
  11.  [+] Finding Cryptor class 
  12.  [+] Found Cryptor class: 0x1d2001d9 
  13.  [+] Found Cryptor.getInstance(): 0xb27bc270 
  14.  [+] Instantiated Cryptor class: 0x1d2001dd 
  15.  [+] Starting socket server on port 5001 

為了測試工具是否正常工作,你可以在另一個終端上運行如下命令:

  1. $ ./decrypt_string.py 
  2. Sending encrypted string 
  3. Decrypted string: "Seek freedom and become captive of your desires. Seek discipline and find your liberty." 

如果你在輸出結果中看到解密后的字符串,表明一切順利,非常完美。

七、總結

你可以根據實際情況,修改harness工具源碼中的目標函數。另外,實際場景中,目標程序錯綜復雜,我并不能保證這種方法100%有效。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2016-12-15 08:30:02

Linux命令

2012-02-08 16:37:36

ibmdw

2020-12-06 08:00:46

scanimage命令行Linux

2019-07-15 05:50:19

Linux命令行VirtualBox版

2019-08-27 08:00:10

OpenStack命令虛擬機

2014-06-06 10:00:56

命令行監控Nginx Web服務

2019-01-22 13:46:01

LinuxUnix系統命令行

2014-10-22 12:03:14

Linux嗅探HTTP

2023-08-01 13:31:18

模型Alpacaicuna

2020-10-31 08:20:39

curl命令命令行互聯網

2018-06-19 16:05:27

LinuxStratis存儲

2021-09-18 09:19:21

Linux

2018-05-24 14:20:01

數據庫MySQL命令行

2014-04-10 10:10:16

KVMDebianUbuntu

2022-06-30 12:19:22

Linux

2022-10-20 16:51:44

Linux命令行IP 地址

2010-11-24 15:33:59

mysql命令行參數

2010-03-10 17:23:37

Python 命令行參

2020-12-11 06:44:16

命令行工具開發

2020-12-10 16:16:08

工具代碼開發
點贊
收藏

51CTO技術棧公眾號

亚洲黄色片免费看| 一区二区三区四区欧美| 天天操夜夜操视频| 精品视频久久| 日韩欧美一级二级三级久久久| 成人免费a级片| 欧美日本网站| 国产一区二区成人久久免费影院| 久久免费观看视频| 卡一卡二卡三在线观看| 日本一区二区三区播放| 日本高清不卡aⅴ免费网站| 热这里只有精品| 青青视频在线观| 国模大尺度一区二区三区| 97成人精品视频在线观看| 亚洲女人毛茸茸高潮| 澳门久久精品| 欧美福利一区二区| 久章草在线视频| 欧美xxxx做受欧美88bbw| 国产免费观看久久| 国产在线精品一区二区三区| 亚洲一区中文字幕在线| 亚洲美女一区| 欧美国产亚洲视频| 小早川怜子一区二区的演员表| 性人久久久久| 欧美成人精品3d动漫h| 日本激情综合网| 625成人欧美午夜电影| 亚洲一区二区四区蜜桃| 爱爱爱视频网站| 你懂的好爽在线观看| 福利一区在线观看| 亚洲xxxxx| 在线免费观看高清视频| 亚洲欧美日韩一区在线观看| 久久久久久久国产| 妺妺窝人体色www聚色窝仙踪| 日韩免费在线| 夜夜嗨av色一区二区不卡| 亚洲国产精品无码久久久久高潮| 亚洲国产一区二区三区网站| 在线不卡中文字幕| 九色porny自拍| 亚洲www啪成人一区二区| 日韩欧美国产成人| 无码人妻丰满熟妇区96| 后进极品白嫩翘臀在线播放| 亚洲美女在线一区| 玖玖精品在线视频| 成人片在线看| 中文字幕一区二区三区不卡在线 | 超碰在线97观看| av成人毛片| 国产91精品久久久久久| 国产午夜激情视频| 亚洲夜间福利| 韩国19禁主播vip福利视频| 免费中文字幕视频| 亚洲日韩成人| 88国产精品欧美一区二区三区| 日本一区二区不卡在线| 日韩午夜一区| 日韩**中文字幕毛片| 一级片免费在线播放| 久久综合九色| 国产精品吴梦梦| 96日本xxxxxⅹxxx17| 精品一区二区免费在线观看| 亚洲va电影大全| 精品女同一区二区三区| 国产a区久久久| 国产综合第一页| 精品美女视频在线观看免费软件| 国产欧美一区二区三区鸳鸯浴| 亚洲黄色成人久久久| 97电影在线| 亚洲美女在线一区| 草b视频在线观看| 成人勉费视频| 在线不卡的av| 中国特级黄色大片| 国产日产精品一区二区三区四区的观看方式 | 欧美激情一级二级| 国产在线观看黄色| 麻豆精品在线看| www.久久草| 你懂的在线看| 亚洲男人的天堂av| 国产69精品久久久久999小说| 成人一区福利| 制服丝袜亚洲色图| 中文字幕日韩三级片| 日韩影院二区| 亚洲91av视频| 国产又大又黄又爽| 99久久99久久精品国产片果冻 | 国产自摸综合网| 高h放荡受浪受bl| 久久久久久亚洲综合影院红桃 | 国内精品久久久久国产| 精品国产1区2区| 爱豆国产剧免费观看大全剧苏畅| 国产欧美一区二区三区米奇| 最近2019年日本中文免费字幕| 精品在线视频观看| 美女任你摸久久| 精品亚洲一区二区三区四区五区高| 91精品专区| 精品国产91久久久久久| 99精品视频国产| 精品av一区二区| 国模精品一区二区三区色天香| 中文字幕日韩三级| 91影院在线观看| 日韩精品久久一区二区| 99久久精品一区二区成人| 亚洲黄色www| 久久久久性色av无码一区二区| 三级一区在线视频先锋| 国产日韩在线一区二区三区| 日本激情在线观看| 欧美性猛交xxxx乱大交蜜桃| av在线天堂网| 91综合久久| 国产精品爱啪在线线免费观看| 男人天堂网在线视频| 日本一区二区成人在线| 午夜精品久久久内射近拍高清| 视频一区日韩| 久久中文字幕在线视频| 亚洲天堂手机版| 国产日韩影视精品| 最近免费中文字幕中文高清百度| 国产亚洲成av人片在线观黄桃| 免费不卡欧美自拍视频| 91精品国产乱码久久久久| 久久久另类综合| 日本黄网站免费| 婷婷综合福利| 国产91成人在在线播放| 日本黄视频在线观看| 亚洲一区二区三区四区在线观看| 美女被艹视频网站| 亚洲国产精品久久久天堂| 国产日韩中文在线| 乱人伦中文视频在线| 欧美精品粉嫩高潮一区二区| 国产又粗又长又黄的视频| 日韩avvvv在线播放| 日韩亚洲视频| www.26天天久久天堂| 在线观看欧美成人| 亚洲天堂视频网| 中文字幕日韩一区二区| 免费人成视频在线播放| 亚洲视频日本| 精品免费视频123区| 在线人成日本视频| 亚洲欧洲在线看| 天堂免费在线视频| 国产精品久久久久永久免费观看| 日韩在线一区视频| 欧美国产综合| 成人免费在线看片| 黄视频免费在线看| 国产午夜精品全部视频播放| 一区二区视频网站| 一区免费观看视频| 熟女人妻一区二区三区免费看| 亚洲电影成人| 欧美重口乱码一区二区| av久久网站| 色综合久久悠悠| 无码国产色欲xxxx视频| 欧美午夜精品在线| 少妇愉情理伦三级| 国产精品一区二区x88av| 老太脱裤让老头玩ⅹxxxx| 国产精选一区| 亚洲在线观看视频| 国产色播av在线| 国产一区二区三区在线视频 | 成人中文字幕在线| 精品视频无码一区二区三区| 婷婷伊人综合| 久久国产精品 国产精品| 日本美女久久| 国产69精品99久久久久久宅男| 视频二区在线| 91精品国产综合久久香蕉的特点| 亚洲自拍av在线| 拍真实国产伦偷精品| 精品久久一区二区三区| 五月天激情四射| 亚洲欧美一区二区不卡| 中文字幕影片免费在线观看| 老色鬼精品视频在线观看播放| 国产成人亚洲综合无码| 国产最新精品| 国产成人av一区二区三区| 精品日本视频| 久久久久久国产精品三级玉女聊斋| 超碰97在线免费观看| 亚洲第一av网| 国产伦精品一区二区三区四区| 天天色图综合网| 欧美日韩大片在线观看| 国产欧美精品一区| 亚洲av成人精品一区二区三区| 捆绑紧缚一区二区三区视频| 国产91美女视频| 亚洲性人人天天夜夜摸| 一区二区三区不卡在线| 亚洲精华一区二区三区| 成人免费视频网站| 好吊色在线视频| 伊人久久一区二区| 亚洲色图欧美视频| eeuss影院www在线播放| 91欧美一区二区| 久久精品无码一区二区三区毛片| 视频一区二区三区入口| 国产人妻777人伦精品hd| 99久久亚洲精品蜜臀| 日本一区不卡| 亚洲性视频大全| 国产日韩久久| 一区二区三区国产好| 91日本在线视频| 成人一级视频| 国产精品久久久久久超碰| 成人欧美大片| 国产91网红主播在线观看| 欧美男男激情videos| 欧美国产日韩一区二区三区| 呦呦在线视频| 欧美老女人在线视频| 黄色片网站在线观看| 色综合伊人色综合网站| av免费观看一区二区| 国产一区二区三区在线观看网站 | 日韩激情电影免费看| 免费成人高清视频| 影音先锋中文在线视频| 欧美国产激情18| 黑人精品视频| 97婷婷大伊香蕉精品视频| 国内高清免费在线视频| 欧美激情区在线播放| 精灵使的剑舞无删减版在线观看| 欧美黑人一级爽快片淫片高清| 久久电影网站| 26uuu亚洲国产精品| 国产高清不卡| 国产精品看片资源| 色综合久久久| 91美女福利视频高清| 日韩一二三区| 国产一区不卡在线观看| 亚洲国产合集| 一区二区三区电影| 欧美激情1区2区3区| 91成人综合网| 嫩草成人www欧美| 欧美日韩在线观看不卡| 国产又粗又猛又爽又黄91精品| 欧美xxxxxbbbbb| 不卡高清视频专区| 人人妻人人藻人人爽欧美一区| 国产精品视频线看| 久久久精品视频免费观看| 亚洲成人资源在线| 精品一区二区无码| 这里只有精品电影| 免费av网站观看| 亚洲日本aⅴ片在线观看香蕉| 91亚洲欧美| 欧美精品videosex极品1| 欧美理论影院| 成人在线视频网站| 好吊妞国产欧美日韩免费观看网站 | 97人人爽人人爽人人爽| 精品日韩99亚洲| 激情综合闲人网| 久久手机精品视频| 三级在线观看视频| 91精品视频大全| 欧美挤奶吃奶水xxxxx| 亚洲国产高清国产精品| 黄页网站一区| 激情五月俺来也| 波多野结衣在线一区| 国产18无套直看片| 亚洲在线视频网站| 在线观看毛片视频| 亚洲精品wwwww| 国产淫片在线观看| 日韩免费观看网站| 亚洲视频一起| 亚洲不卡1区| 国产综合亚洲精品一区二| www.日本xxxx| av成人免费在线| 国产高潮国产高潮久久久91 | 欧美精品激情视频| 人人玩人人添人人澡欧美| 九色综合日本| 欧美久久视频| 天堂中文av在线| 久久精品欧美一区二区三区麻豆 | 在线视频你懂得一区| 成人精品在线播放| 日韩视频精品在线| 日本一区二区电影| 蜜桃av噜噜一区二区三| 国产一区久久| 一二三级黄色片| 国产精品视频第一区| 亚洲黄色小说图片| 精品国产凹凸成av人网站| 久久77777| 国产美女直播视频一区| 精品日韩免费| 波多野结衣天堂| 国产日韩一级二级三级| 久久免费激情视频| 亚洲国产精彩中文乱码av在线播放| 老司机在线视频二区| 国产精品偷伦免费视频观看的| 亚洲色图丝袜| 成人观看免费完整观看| 成人动漫中文字幕| 久一视频在线观看| 日韩免费成人网| 亚洲精品白浆| 91免费版黄色| 国产精品vip| 麻豆av免费看| 亚洲一区在线观看视频| www国产在线| 精品视频9999| 一区二区三区视频播放| 91网站在线观看免费| 丰满亚洲少妇av| 国产午夜福利精品| 亚洲国产精品人久久电影| 台湾佬中文娱乐网欧美电影| 好看的日韩精品视频在线| 99精品国产一区二区青青牛奶| 黑人玩弄人妻一区二区三区| 午夜一区二区三区视频| 日韩精品视频无播放器在线看 | 日批视频免费播放| 久久久久亚洲精品| 欧美调教在线| 男女曰b免费视频| 久久久精品国产免费观看同学| 中文字幕69页| 最近2019年日本中文免费字幕| 99久久久成人国产精品| 男女裸体影院高潮| 成人av在线资源网| 精品国产免费观看| 在线播放精品一区二区三区 | 国内精品久久久久影院色| 亚洲av鲁丝一区二区三区 | 男人的天堂在线视频| 国产精品777| 香蕉综合视频| 精品少妇人妻av一区二区三区| 日韩欧美亚洲国产一区| 搞黄视频免费在线观看| 成人美女免费网站视频| 亚洲高清免费| 人妻精品久久久久中文| 7777精品久久久大香线蕉| www555久久| 日韩欧美99| 国产91丝袜在线观看| 亚洲综合久久网| 久久韩国免费视频| 久久精品国产亚洲blacked| 亚洲最大综合网| 一区二区三区欧美久久| 男人天堂网在线| 99久久自偷自偷国产精品不卡| 国产模特精品视频久久久久| 成人黄色短视频| 日韩精品中文字幕视频在线| 国产亚洲精彩久久| 久激情内射婷内射蜜桃| 中文字幕av不卡| 五月婷婷狠狠干| 91综合免费在线| 日韩不卡一区二区三区| 国产无遮挡免费视频| 色悠悠久久久久|