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

記一次 .NET 某拍攝監(jiān)控軟件的卡死分析

安全 應(yīng)用安全
可能有些朋友有疑問,為什么 scvncctrl 后面的偏移值那么大,這是因?yàn)?scvncctrl 沒有提供公有和私有符號,所以無法對應(yīng)函數(shù)名,windbg 只能以 module 為參考點(diǎn)設(shè)置偏移,這對 dump 分析產(chǎn)生了很大的阻礙!

一、背景

1. 講故事

今天本來想寫一篇 非托管泄露 的生產(chǎn)事故分析,但想著昨天就上了一篇非托管文章,連著寫也沒什么意思,換個(gè)口味吧,剛好前些天有位朋友也找到我,說他們的拍攝監(jiān)控軟件卡死了,讓我?guī)兔Ψ治鱿聻槭裁磿ㄋ溃牭竭@種軟件,讓我不禁想起了前些天 在程序員桌子上安裝監(jiān)控 的新聞,參考如下:

圖片圖片

我在想我這不是尼瑪作惡嗎... ?????? 和朋友確認(rèn)了下還好不是干這個(gè)事的。

二、WinDbg 分析

1. 為什么會卡死

因?yàn)檫@種監(jiān)控軟件是窗體程序,所以它的卡死理應(yīng)看主線程的調(diào)用棧即可, 在windbg中有一個(gè) k 命令。

0:000:x86> kb 8
 # ChildEBP RetAddr      Args to Child              
00 00dbedc0 77835329     0fd54c08 00000000 0fd54c08 ntdll_777d0000!NtWaitForAlertByThreadId+0xc
01 00dbedc0 7783505c     00000000 00000000 0fd54c08 ntdll_777d0000!RtlpWaitOnAddressWithTimeout+0x64
02 00dbee60 77813fd8     0fd543f0 0fd54c04 0000000c ntdll_777d0000!RtlpWaitOnCriticalSection+0x1ac
03 00dbeea8 77813d99     00000000 00dbef04 09d72f87 ntdll_777d0000!RtlpEnterCriticalSectionContended+0x228
04 00dbeeb4 09d72f87     0fd54c04 09d38131 ee66de6e ntdll_777d0000!RtlEnterCriticalSection+0x49
WARNING: Stack unwind information not available. Following frames may be wrong.
05 00dbef04 09d38036     ee66de46 000001fd 00000111 scvncctrl!DllUnregisterServer+0x4ed7
06 00dbef2c 09d3304d     00000111 000001fd 00000111 scvncctrl+0x48036
07 00dbef50 09d341f3     00000111 000001fd 00000001 scvncctrl+0x4304d

從卦象來看,程序在 scvncctrl!DllUnregisterServer+0x4ed7 方法中等待 臨界區(qū)鎖,即 RtlEnterCriticalSection 處。

可能有些朋友有疑問,為什么 scvncctrl 后面的偏移值那么大,這是因?yàn)?scvncctrl 沒有提供公有和私有符號,所以無法對應(yīng)函數(shù)名,windbg 只能以 module 為參考點(diǎn)設(shè)置偏移,這對 dump 分析產(chǎn)生了很大的阻礙!

接下來繼續(xù)看,既然主線程在等待鎖,那必然有人在持有鎖,那到底是誰在持有呢?

2. 尋找持有線程

要想找到持有者,可以提取 RtlEnterCriticalSection 方法中的第一個(gè)參數(shù) 0fd54c04 ,我們使用 dt _RTL_CRITICAL_SECTION 命令即可。

0:000:x86> dt _RTL_CRITICAL_SECTION 0fd54c04
ntdll_777d0000!_RTL_CRITICAL_SECTION
   +0x000 DebugInfo        : 0x07ba4428 _RTL_CRITICAL_SECTION_DEBUG
   +0x004 LockCount        : 0n-6
   +0x008 RecursionCount   : 0n1
   +0x00c OwningThread     : 0x0000621c Void
   +0x010 LockSemaphore    : 0xffffffff Void
   +0x014 SpinCount        : 0x200064a

上面的 OwningThread 就是當(dāng)前的持有線程,找到了之后切過去看下它的線程棧,它到底在干嘛?

0:005:x86> ~~[0x0000621c]s
ntdll_777d0000!NtWaitForSingleObject+0xc:
7784619c c20c00          ret     0Ch
0:005:x86> kb
CvRegToMachine(x86) conversion failure for 0x14f
X86MachineInfo::SetVal: unknown register 0 requested
 # ChildEBP RetAddr      Args to Child              
00 0a8cf1ac 747ccfd5     00000924 00000001 00000000 ntdll_777d0000!NtWaitForSingleObject+0xc
01 0a8cf1ac 747ddb12     00000002 00000006 ae23e128 mswsock!SockWaitForSingleObject+0x125
02 0a8cf220 75c05fe5     000007e8 0a8cf258 00000001 mswsock!WSPRecv+0x232
03 0a8cf26c 09ddd32f     000007e8 011a5a30 00002000 ws2_32!recv+0x95
WARNING: Stack unwind information not available. Following frames may be wrong.
04 0a8cf3b4 09ddd0a6     011a5a30 00002000 00000003 scvncctrl!DllUnregisterServer+0x6f27f
05 0a8cf4d4 09ddd625     00000001 00000001 07ac4ae0 scvncctrl!DllUnregisterServer+0x6eff6
06 0a8cf5f0 09ddd72f     0fd1f350 07ac4ae0 00000000 scvncctrl!DllUnregisterServer+0x6f575
07 0a8cf708 09d70626     00000003 00000001 0fd543f0 scvncctrl!DllUnregisterServer+0x6f67f
08 0a8cf958 09d71b56     00000075 000001f7 0000070b scvncctrl!DllUnregisterServer+0x2576
09 0a8cf9a4 09d3140c     00000075 000001f7 0000070b scvncctrl!DllUnregisterServer+0x3aa6
0a 0a8cfa18 09d35b89     e431cbea 0fd5fbf0 0fd543f0 scvncctrl+0x4140c
0b 0a8cfa80 09d73189     00000000 09d73120 0a8cfacc scvncctrl+0x45b89
0c 0a8cfa90 09e09434     0fd543f0 e431cba6 09e093dd scvncctrl!DllUnregisterServer+0x50d9
0d 0a8cfacc 75c77ba9     0fd5fbf0 75c77b90 0a8cfb34 scvncctrl!DllUnregisterServer+0x9b384
0e 0a8cfadc 7783b79b     0fd5fbf0 c738a5e9 00000000 kernel32!BaseThreadInitThunk+0x19
0f 0a8cfb34 7783b71f     ffffffff 778689f7 00000000 ntdll_777d0000!__RtlUserThreadStart+0x2b

卦中的 ws2_32!recv 是一個(gè)win32體系內(nèi)的方法,用于 接收客戶端發(fā)送數(shù)據(jù),可能有些朋友對 recv 方法不是很清楚,方法簽名大概如下:

int recv(
  SOCKET s,
  char *buf,
  int len,
  int flags
);

因?yàn)槭侵骺囟耍以诰W(wǎng)上找了一段 win32 實(shí)現(xiàn)的 server 版的 recv 完整代碼。

#define _WINSOCK_DEPRECATED_NO_WARNINGS

//1.頭文件
#include <stdio.h>
#include <Winsock2.h>
#pragma comment (lib,"ws2_32.lib")

int main()
{
 WSADATA wsaData;
 WSAStartup(MAKEWORD(2, 2), &wsaData); 

 if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
 {
  printf("請求版本失敗!\n");
  return -1;
 }
 printf("請求版本成功!\n");
 SOCKET serverScoket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 if (INVALID_SOCKET == serverScoket)
 {
  printf("創(chuàng)建套接字失敗!\n");
  WSACleanup();            
  return -1;
 }
 printf("創(chuàng)建套接字成功!\n");

 SOCKADDR_IN serverAddr = { 0 };  
 serverAddr.sin_family = AF_INET;  

 serverAddr.sin_port = htons(8888);
 serverAddr.sin_addr.S_un.S_addr = inet_addr("192.168.0.107"); 

 if (SOCKET_ERROR == bind(serverScoket, (SOCKADDR*)&serverAddr, sizeof(serverAddr)))
 {
  printf("綁定失敗!\n");
  closesocket(serverScoket);
  WSACleanup();             
  return -1;
 }
 printf("綁定成功!\n");

 if (SOCKET_ERROR == listen(serverScoket, 10))
 {
  printf("監(jiān)聽失敗!\n");
  closesocket(serverScoket);
  WSACleanup();            
  return -1;
 }
 printf("監(jiān)聽成功!\n");

 SOCKADDR_IN clientAddr = { 0 }; 
 int len = sizeof(clientAddr);
 SOCKET clientSocket = accept(serverScoket, (sockaddr*)&clientAddr, &len);
 if (INVALID_SOCKET == clientSocket)
 {
  printf("接受鏈接失敗!\n");
  closesocket(serverScoket);
  WSACleanup();            
  return -1;
 }
 printf("接受客戶鏈接成功!\n");
 printf("客戶ip為:%s", inet_ntoa(clientAddr.sin_addr));

 //8.開始通訊
 char recvbuff[1024] = {}; 
 char sendbuff[1024] = {}; 

 //參數(shù)一:代表客戶端的socket,表示從客戶端進(jìn)行收取數(shù)據(jù)
 //參數(shù)二:接受的數(shù)據(jù)存放地址
 //參數(shù)三:接受數(shù)據(jù)的長度
 //參數(shù)四:表示收發(fā)方式,0表示默認(rèn),一次收完
 while (true)
 {
  //保存數(shù)據(jù)清空
  memset(recvbuff, 0, sizeof(recvbuff));
  //從客戶端接受數(shù)據(jù)
  if (recv(clientSocket, recvbuff, sizeof(recvbuff) - 1, 0) > 0)
  {
   printf("客戶說:%s\n", recvbuff);
  }
  else
  {
   break;
  }
  memset(sendbuff, 0, sizeof(sendbuff));
  printf("我說:");
  scanf_s("%s", sendbuff, sizeof(sendbuff) - 1);
  //發(fā)送數(shù)據(jù)給客戶端
  send(clientSocket, sendbuff, strlen(sendbuff), 0);
 }

 //9.關(guān)閉鏈接
 closesocket(clientSocket);//關(guān)閉客戶端socket
 closesocket(serverScoket);//關(guān)閉服務(wù)端socket
 WSACleanup();             //關(guān)閉套接字請求

 return 0;
}

結(jié)合上面的完整代碼,業(yè)務(wù)邏輯應(yīng)該是 while (true) 里的 send 和 recv 區(qū)間內(nèi)的某句代碼持有了鎖,但因?yàn)槟撤N異常導(dǎo)致持有的 臨界區(qū)鎖 沒有釋放,出現(xiàn)了一種 鎖污染 的情況。

朋友提供的信息也進(jìn)一步佐證了這種說法。

  • 大截圖
  • 受控端偶發(fā)斷網(wǎng)

這些情況組合在一起導(dǎo)致了 send 和 recv 之間的某處代碼異常污染了 臨界區(qū)鎖。

本來想提取下 recv 中的 socket 信息,結(jié)果發(fā)現(xiàn)是一個(gè)網(wǎng)絡(luò)句柄號,真正的socket信息在內(nèi)核層,沒法提出來只能作罷,截圖如下:

圖片圖片

也即線程棧上的 000007e8 字段。

0a8cf26c 09ddd32f     000007e8 011a5a30 00002000 ws2_32!recv+0x95

那這個(gè)問題怎么解決呢?通篇分析下來應(yīng)該就是 scvncctrl 的 bug,能做的就是升級到最新版本,畢竟程序里還是 2020 年的。

0:005:x86> lmvm scvncctrl
Browse full module list
start    end        module name
09cf0000 09f06000   scvncctrl   (export symbols)       scvncctrl.dll
    Loaded symbol image file: scvncctrl.dll
    Image name: scvncctrl.dll
    Browse all global symbols  functions  data
    Timestamp:        Sat Oct 10 15:14:33 2020 (5F815F59)
    CheckSum:         001CA728
    ImageSize:        00216000
    File version:     3.9.2.0
    Product version:  3.9.2.0
    File flags:       0 (Mask 3F)
    File OS:          4 Unknown Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      SmartCode Pte. Ltd.
        ProductName:      SmartCode VNC Viewer ActiveX
        OriginalFilename: scvncctrl.dll
        ProductVersion:   3.9.2.0
        FileVersion:      3.9.2.0
        FileDescription:  SmartCode VNC Viewer ActiveX
        LegalCopyright:   Copyright (c) 2003-2020 SmartCode Pte. Ltd. All rights reserved.
        Comments:         https://www.s-code.com

三、總結(jié)

這次卡死事故還是挺有教育意義的,告訴我們第三方插件盡量應(yīng)升盡升,同時(shí)也考察了對 臨界區(qū)鎖 和 socket 的基礎(chǔ)知識。

責(zé)任編輯:武曉燕 來源: 一線碼農(nóng)聊技術(shù)
相關(guān)推薦

2024-05-28 10:18:30

WPF程序數(shù)據(jù)

2023-05-15 11:15:50

.NET門診語句

2025-09-02 01:35:00

.NET光學(xué)定位軟件

2024-05-20 09:39:02

.NETurl線程池

2022-10-13 18:40:05

.NETOA后端

2022-01-17 21:28:36

管理系統(tǒng).NET

2024-07-01 13:00:24

.NET網(wǎng)絡(luò)邊緣計(jì)算

2024-11-29 10:06:59

2024-09-14 10:28:56

.NET卡死程序

2023-04-06 10:52:18

2024-12-27 13:31:18

.NETdump調(diào)試

2024-06-06 10:51:15

自動(dòng)化系統(tǒng)推測

2024-05-31 12:56:06

.NET代碼方法

2023-10-07 13:28:53

.NET軟件賬本

2024-06-13 17:09:55

2022-10-09 10:47:37

NET視覺軟件

2023-06-26 00:12:46

2024-03-28 12:56:36

2023-07-06 10:11:38

.NET模式dump

2024-07-12 11:20:34

.NET崩潰視覺程序
點(diǎn)贊
收藏

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

欧美色电影在线| 成人免费福利片| 色噜噜狠狠色综合网图区| xx欧美撒尿嘘撒尿xx| 免费av在线| 国产一区二区成人久久免费影院| 欧美国产日产韩国视频| 不卡一区二区在线观看| 国产精品一区免费在线| 欧美日韩一二三四五区| 亚洲一区尤物| 亚洲av成人精品一区二区三区在线播放| 久久久夜精品| 久久99久久99精品中文字幕| 国产精品成人一区二区三区电影毛片 | 豆国产96在线|亚洲| 国产成人一区二区在线| 久草免费在线视频观看| 日韩国产一区二区三区| 亚洲第一在线视频| 亚洲第一成肉网| 午夜影院在线播放| 一区二区三区在线免费观看| 日韩精品一区二区三区四区五区| 国产精品久久无码一三区| 夜夜嗨网站十八久久| 欧美伦理91i| 欧美aaa级片| 九九综合在线| 日韩毛片在线观看| 亚洲婷婷在线观看| 日韩一区二区三区高清在线观看| 欧美三级在线视频| 99爱视频在线| ririsao久久精品一区| 亚洲美女免费在线| 在线一区日本视频| 91高清在线视频| 久久精品人人做人人爽人人| 久久99久久精品国产| 黄色一级a毛片| 国产盗摄一区二区三区| 91精品视频在线免费观看| 中文字幕人妻互换av久久| 久久精品官网| 日本精品久久久久久久| 日韩精品在线免费视频| 国产视频一区三区| 国产91成人video| 天天爽夜夜爽夜夜爽精品| 亚洲精品日本| 97视频在线看| av中文在线播放| 亚洲电影av| 午夜精品福利视频| 日本天堂在线视频| 亚洲欧美日韩专区| 欧洲成人在线视频| 日韩欧美一级大片| 精油按摩中文字幕久久| 91在线免费网站| www.黄色小说.com| 99久久婷婷国产| 久久综合给合久久狠狠色| 日韩av免费观影| 久久视频一区二区| 亚洲国内在线| jizz性欧美| 亚洲成人av一区| 欧美 日韩 激情| 小黄鸭精品aⅴ导航网站入口| 91久久精品一区二区三区| 天天爱天天操天天干| 欧美高清免费| 日韩女优毛片在线| 国产熟女高潮一区二区三区 | 亚洲精品美女在线观看播放| 37p粉嫩大胆色噜噜噜| 国产精品免费大片| 久久精品中文字幕电影| 久久99久久98精品免观看软件 | 亚洲欧洲制服丝袜| 日韩 欧美 视频| 成人性生交大片免费观看网站| 欧美无乱码久久久免费午夜一区| 色噜噜狠狠永久免费| 136国产福利精品导航网址应用| 日韩av影视综合网| 夫妇露脸对白88av| 亚洲激情社区| 国产精品久久久久91| www.av在线.com| 久久久亚洲午夜电影| 亚洲AV无码成人精品一区| 黄色软件视频在线观看| 欧美日韩激情在线| 亚洲av成人无码一二三在线观看| 青青草成人影院| 欧美精品福利视频| 在线免费观看高清视频| av在线播放成人| 一区二区视频在线免费| 牛牛精品一区二区| 欧美一级久久久久久久大片| 国产福利在线观看视频| **女人18毛片一区二区| 日本道色综合久久影院| 性生活黄色大片| 欧美国产成人在线| 久久久久久久久久网| 亚洲精品大全| 国产亚洲精品久久久久动| 久久久久97国产| 久久精品国产精品亚洲综合| 精品999在线观看| 99在线视频观看| 欧美日韩精品电影| 国产调教在线观看| 欧美一级一区| 好看的日韩精品视频在线| 成年人黄视频在线观看| 欧美视频一区二区在线观看| jizz日本免费| 尤物网精品视频| 91在线播放视频| 黄av在线播放| 欧美欧美午夜aⅴ在线观看| 国产精品亚洲无码| 99在线观看免费视频精品观看| 亚洲最大av在线| 欧美jizzhd欧美| 欧美色精品在线视频| 久久久久久久毛片| 久久激情婷婷| 欧美日韩在线观看一区| 天堂av中文在线观看| 亚洲国产精品福利| 69精品久久久| 成人深夜视频在线观看| 妺妺窝人体色www看人体| 粉嫩一区二区三区在线观看| www高清在线视频日韩欧美| 波多野结衣视频在线看| 国产性做久久久久久| 日本老熟妇毛茸茸| 青青草成人影院| 国产日韩视频在线观看| 在线免费av网站| 欧美日韩免费不卡视频一区二区三区 | 黄色成人免费看| 国产成人一区二区三区影院| 国产精品9999| 18免费在线视频| 欧美精品aⅴ在线视频| 婷婷伊人五月天| 国产高清无密码一区二区三区| 青青草视频国产| baoyu135国产精品免费| 午夜精品久久久久久久男人的天堂| 丰满岳乱妇国产精品一区| 亚洲高清视频在线| 国产制服丝袜在线| 日本成人在线电影网| 在线无限看免费粉色视频| 精品一区视频| 亚洲18私人小影院| 男男激情在线| 7777精品伊人久久久大香线蕉最新版| 国产67194| 成人av在线播放网站| 欧美牲交a欧美牲交aⅴ免费真| 欧美精品momsxxx| 国产日产久久高清欧美一区| 麻豆电影在线播放| 精品国产成人系列| 欧美brazzers| 综合久久综合久久| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 成人网在线播放| 国产成人亚洲精品无码h在线| 成人综合专区| 91久久国产综合久久蜜月精品| 成人在线黄色电影| 中文一区二区视频| 亚洲高清精品视频| 在线免费亚洲电影| 免费一级a毛片夜夜看| 久久久精品欧美丰满| 一级黄色片在线免费观看| 亚洲深夜福利| 91制片厂免费观看| 亚洲精品蜜桃乱晃| 亚洲一区亚洲二区亚洲三区| 亚洲国产福利| 久久国产加勒比精品无码| 视频二区在线| 欧美一区二区网站| 精品人妻一区二区三区潮喷在线| 亚洲免费在线看| 一道本在线观看| 粉嫩欧美一区二区三区高清影视| 97公开免费视频| 亚洲青涩在线| 宅男噜噜99国产精品观看免费| 加勒比视频一区| 91丝袜美腿美女视频网站| 韩漫成人漫画| 久久人人爽人人爽人人片av高请| 婷婷激情在线| 日韩精品免费综合视频在线播放 | 在线视频不卡国产| 久操成人av| 国产亚洲欧美一区二区| 农村妇女一区二区| 日本午夜人人精品| 福利在线免费视频| 欧美日本国产在线| 毛片免费不卡| 伊人久久免费视频| 免费国产在线观看| 亚洲精品美女免费| 国产 欧美 自拍| 91精品国产综合久久精品图片| 中文字幕手机在线视频| 欧美日韩午夜剧场| 免费在线观看亚洲| 亚洲免费在线视频一区 二区| 黄色片网站在线播放| 国产欧美一区二区三区在线老狼 | 色婷婷狠狠五月综合天色拍| 亚洲一区二区在线| 9999精品| 91久久嫩草影院一区二区| 欧美日韩破处视频| 国产欧美va欧美va香蕉在| 成人精品电影在线| 国产成人精品最新| 天天综合网天天| 国产精品aaaa| 日韩色淫视频| 国产精品视频白浆免费视频| 精品免费av在线 | 丰满的少妇愉情hd高清果冻传媒 | 中文字幕 久热精品 视频在线| 亚洲av无码一区二区二三区| 91丨九色丨黑人外教| 国产精品无码一区二区三区免费| www.99精品| 亚洲av无码一区二区三区网址 | 久久精品国产综合精品| 欧美xxxx在线| 欧美13一14另类| 国产亚洲一区| 亚洲一区三区电影在线观看| 久久精品国内一区二区三区水蜜桃| 中文字幕日韩精品久久| 亚洲电影影音先锋| 免费高清一区二区三区| 亚洲激情av| av免费中文字幕| 免费视频一区二区| 日本在线观看视频一区| 国产成人综合亚洲网站| 成人区人妻精品一区二| 91网站在线观看视频| 亚洲黄色小说视频| 国产精品乱码一区二区三区软件| 丝袜 亚洲 另类 欧美 重口| 亚洲一级片在线观看| 国产99久久久| 欧美视频一区二区三区四区| 91好色先生tv| 精品99999| 免费在线黄色影片| 久久视频中文字幕| av日韩中文| 国产精品色午夜在线观看| 18国产精品| 欧美重口乱码一区二区| 久久久久久久久久久久久久久久久久| 黄色成人在线免费观看| 亚洲免费影院| 中文字幕亚洲影院| 97se亚洲国产综合自在线| youjizz亚洲女人| 亚洲国产综合91精品麻豆| 男人日女人网站| 欧美放荡的少妇| 偷拍自拍在线| 久久最新资源网| 中文字幕在线直播| 亚洲自拍欧美色图| 九九视频精品全部免费播放| 在线视频一二三区| 久久精品免费| 麻豆tv在线观看| 国产精品日产欧美久久久久| 久久免费黄色网址| 欧美日韩精品一区二区在线播放| 偷拍精品一区二区三区| 久久久99久久精品女同性| 自由日本语热亚洲人| 99国产高清| 欧美色图激情小说| 久久精品视频16| 国产精品白丝jk白祙喷水网站| 中日韩精品一区二区三区| 一区二区三区中文字幕精品精品| 波多野结衣午夜| 日韩av网址在线| 最爽无遮挡行房视频在线| 国产精品久久激情| 日韩深夜福利| 国产日韩亚洲欧美在线| 国产一区二区三区免费播放| 人人妻人人澡人人爽| 精品久久久久久久中文字幕| 国产黄色片免费| 日韩在线视频国产| 日韩成人亚洲| 免费久久一级欧美特大黄| 极品中文字幕一区| 超碰人人cao| 亚洲日本一区二区| 亚洲一区中文字幕在线| 亚洲午夜精品视频| 亚洲精品**中文毛片| 国产综合色一区二区三区| 欧美日韩亚洲一区| xxxx国产视频| 亚洲欧美日韩一区二区三区在线观看| 中文字幕永久在线视频| 亚洲一区二区黄| 91p九色成人| 亚洲欧美日韩精品在线| 蜜臀久久99精品久久久久宅男| 性欧美丰满熟妇xxxx性仙踪林| 精品成人久久av| 头脑特工队2免费完整版在线观看| 国内免费久久久久久久久久久| 超碰97久久| 欧美日韩一道本| www激情久久| 黄色av一级片| 国产亚洲成av人片在线观看桃| 免费观看成人性生生活片| 日本午夜精品一区二区三区| 久久精品道一区二区三区| 91精品人妻一区二区三区蜜桃欧美| 欧美性xxxxxxxxx| 久久电影视频| 国产乱人伦真实精品视频| 日韩欧美字幕| 亚洲综合伊人久久| 一区二区激情视频| 天堂av资源网| 国产成人av网| 久久精品国产www456c0m| 午夜视频在线网站| 亚洲精品乱码久久久久久日本蜜臀| 精品国产亚洲av麻豆| 久久久日本电影| 免费电影一区二区三区| 色婷婷狠狠18| 亚洲美女视频在线| 天天色棕合合合合合合合| 日韩av电影院| 婷婷成人基地| 亚洲欧洲国产视频| 欧美性极品xxxx娇小| 97超碰人人在线| 亚洲在线一区二区| 欧美亚洲三级| 三级在线观看免费大全| 亚洲电影av在线| 99久久亚洲国产日韩美女| 亚洲综合av一区| 成人h精品动漫一区二区三区| 狠狠人妻久久久久久综合| 精品国产一区二区三区四区在线观看| 视频精品一区| 92看片淫黄大片一级| 亚洲欧美二区三区| 欧美偷拍视频| 亚洲www永久成人夜色| 亚洲一区观看| 欧洲美女女同性互添| 亚洲精品久久在线| 欧美性www| 人妻熟妇乱又伦精品视频| 国产精品久久久久久久第一福利| 丰满人妻一区二区三区免费视频| 青青草成人在线| 欧美成人日本| 51妺嘿嘿午夜福利| 日韩精品中午字幕| 国产精品99| 久久久亚洲精品无码| 亚洲色图第一区| 国产精品久久一区二区三区不卡|