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

網絡安全編程:模擬鼠標鍵盤按鍵的操作

安全
鼠標和鍵盤的操作也會被轉換為相應的系統消息,窗口過程中在接收到鼠標或鍵盤消息后會進行相應的處理。

 [[377212]]

鼠標和鍵盤的操作也會被轉換為相應的系統消息,窗口過程中在接收到鼠標或鍵盤消息后會進行相應的處理。可以通過SendMessage()和PostMessage()發送消息到指定的窗口過程中,那么使用這兩個函數來發送鼠標和鍵盤的相關消息就可以進行鼠標和鍵盤的模擬操作。除了SendMessage()和PostMessage()外,還可以通過keybd_event()和mouse_event()兩個專用的函數進行鼠標和鍵盤按鍵的模擬操作。

01 基于發送消息的模擬

Windows的應用程序是基于消息機制的,對于鼠標和鍵盤的操作也會被系統轉化為相應的消息。首先來學習如何通過發送消息進行鼠標和鍵盤的模擬操作。

1. 鼠標、鍵盤按鍵常用的消息

無論是鼠標指針(或光標)的移動、單擊,還是鍵盤的按鍵,通常在Windows應用程序中都會轉換成相應的消息。在操作鼠標時,使用最多的是移動鼠標和單擊鼠標鍵。比如,在教新手使用計算機時會告訴他,將鼠標指針(或光標)移動到“我的電腦”上,然后單擊鼠標右鍵,在彈出的快捷菜單中用鼠標左鍵單擊選擇“屬性”對話框。當移動鼠標光標的時候,系統中對應的消息是WM_MOUSEMOVE消息,按下鼠標左鍵時的對應的消息是WM_LBUTTONDOWN,釋放鼠標左鍵時,對應的消息是WM_LBUTTONUP。在系統中,鼠標的消息有很多。在MSDN中查詢到的鼠標消息如圖1所示。

圖1  鼠標相關消息

同樣,在系統中也定義了鍵盤的按下與抬起的消息。鍵盤按下的消息是WM_KEY DOWN,與之對應的鍵盤抬起的消息是WM_KEYUP。除了這兩個消息外,還有一個消息是比較常用的,就是WM_CHAR消息。鍵盤的消息相對于鼠標要少很多,在MSDN中查詢到的鍵盤消息如圖2所示。

圖2  鍵盤相關消息

2. PostMessage()函數對鍵盤按鍵的模擬

PostMessage()和SendMessage()這兩個函數可以對指定的窗口發送消息。既然鼠標和鍵盤按鍵的操作被系統轉換為相應的消息,那么就可以使用PostMessage()和SendMessage()通過按鼠標和鍵盤按鍵發送的消息來模擬它們的操作。對于模擬鍵盤按鍵消息,最好使用PostMessage()而不要使用SendMessage()。在很多情況下,SendMessage()是不會成功的。

現在編寫一個簡單的小工具,它通過PostMessage()函數模擬鍵盤發送(發送F5鍵的消息來模擬網頁的刷新)的信息來刷新網頁。首先打開VC6.0,創建一個MFC對話框工程,按照圖3所示設置界面。

圖3  模擬鍵盤刷新網頁界面布局

按照圖3所示的界面進行布局,然后為“開始”按鈕設置控件變量。這個小程序在“IE瀏覽器標題”處輸入要刷新的頁面的標題,在“刷新頻率”處輸入一個刷新的時間間隔,單位是秒。

當了解程序的功能并且將程序的界面布置好以后,就可以開始編寫程序的代碼了。程序的代碼分為兩部分,第一部分是程序要處理“開始”按鈕的事件,第二部分是要按照指定的時間間隔對指定的瀏覽器發送按F5鍵的消息來刷新網頁。

首先來編寫響應“開始”按鈕事件的代碼,雙擊“開始”按鈕來編寫它的響應事件。代碼如下: 

  1. void CKeyBoardDlg::OnBtnStart()  
  2.  
  3.   // TODO: Add your control notification handler code here  
  4.   CString strBtn;  
  5.   int nInterval = 0 
  6.   // 獲取輸入的瀏覽器標題  
  7.   GetDlgItemText(IDC_EDIT_CAPTION, m_StrCaption);  
  8.   // 獲取輸入的刷新頻率  
  9.   nInterval = GetDlgItemInt(IDC_EDIT_INTERVAL, FALSE, TRUE);  
  10.   // 判斷輸入的值是否非法  
  11.   if ( m_StrCaption ==""|| nInterval == 0 )  
  12.   {  
  13.     return ;  
  14.   }  
  15.   // 獲取按鈕的標題  
  16.   m_Start.GetWindowText(strBtn);  
  17.   if ( strBtn == "開始" )  
  18.   {  
  19.     // 設置定時器  
  20.     SetTimer(1, nInterval * 1000, NULL);  
  21.     m_Start.SetWindowText("停止");  
  22.     GetDlgItem(IDC_EDIT_CAPTION)->EnableWindow(FALSE);  
  23.     GetDlgItem(IDC_EDIT_INTERVAL)->EnableWindow(FALSE);  
  24.   }  
  25.   else  
  26.   {  
  27.     // 結束定時器  
  28.     KillTimer(1);  
  29.     m_Start.SetWindowText("開始");  
  30.     GetDlgItem(IDC_EDIT_CAPTION)->EnableWindow(TRUE);  
  31.     GetDlgItem(IDC_EDIT_INTERVAL)->EnableWindow(TRUE);  
  32.   }  

在代碼中,首先判斷按鈕的文本,如果是“開始”,則通過SetTimer()函數設置一個定時器;如果按鈕的文本不是“開始”,則通過KillTimer()函數關閉定時器。

這里的SetTimer()和KillTimer()是MFC中CWnd類的兩個成員函數,不是API函數。很多MFC中的類成員函數和API函數的寫法是一樣的,但是它們還是有區別的。比較一下SetTimer()在MFC中的定義和API函數的定義的差別。

MFC中的定義如下: 

  1. UINT SetTimer(  
  2.  UINT nIDEvent,  
  3.  UINT nElapse,  
  4.  void (CALLBACK EXPORT* lpfnTimer)(  
  5.  HWND, UINT, UINT, DWORD) ); 

API函數的定義如下: 

  1. UINT_PTR SetTimer(  
  2.  HWND hWnd,  
  3.  UINT_PTR nIDEvent,  
  4.  UINT uElapse,  
  5.  TIMERPROC lpTimerFunc  
  6. ); 

從定義中可以看出,MFC中SetTimer()函數的定義比API中SetTimer()函數的定義少了一個參數,即HWND的窗口句柄的參數。在MFC中,窗口相關的成員函數都不需要指定窗口句柄,在MFC的內部已經維護了一個m_hWnd的句柄變量(如果想要查看或使用MFC內部維護的m_hWnd成員變量,可以直接使用它,也可以通過調用GetSafeHwnd()成員函數來得到它,推薦使用第二種方法)。

在按鈕事件中添加定時器,那么定時器會按照指定的時間間隔進行相應的處理。定時器部分的代碼如下: 

  1. void CKeyBoardDlg::OnTimer(UINT nIDEvent)  
  2.  
  3.   // 在此處添加處理程序代碼  
  4.   HWND hWnd = ::FindWindow(NULL, m_StrCaption.GetBuffer(0));  
  5.   // 發送鍵盤按下消息  
  6.   ::PostMessage(hWnd, WM_KEYDOWN, VK_F5, 1);  
  7.   Sleep(50);  
  8.   // 發送鍵盤抬起消息  
  9.   ::PostMessage(hWnd, WM_KEYUP, VK_F5, 1);  
  10.   CDialog::OnTimer(nIDEvent);  

關于定時器的處理非常簡單,通過FindWindow()函數得到要刷新窗口的句柄,然后發送WM_KEYDOWN和WM_KEYUP消息來模擬鍵盤按鍵即可。其實在模擬的過程中,可以省去WM_KEYUP消息的發送,但是為了模擬效果更接近真實性,建議在模擬時將消息成對發送。

將寫好的程序編譯連接后運行起來看效果,在“IE瀏覽器標題”處輸入瀏覽器的標題,這個標題可以通過Spy++獲得,然后在“刷新頻率”處輸入1。然后單擊“開始”按鈕,觀察瀏覽器每個1秒進行刷新一次。當單擊“停止”按鈕后,程序不再對瀏覽器進行刷新按鍵模擬。

到此,通過PostMessage()函數發送按F5鍵進行鍵盤按鍵模擬的程序就完成了。使用PostMessage()函數的好處是目標窗口可以在后臺,而不需要窗口處于激活狀態。可以將被刷新的瀏覽器最小化,然后運行刷新網頁的小程序,在任務欄可以看到瀏覽器仍然在不斷刷新。

02 通過API函數模擬鼠標鍵盤按鍵的操作

在開發程序時,總是依靠發送消息是非常辛苦的事情,因為消息的類型非常多,并且不同消息的附件參數也因不同的消息類型而異。Windows幾乎為每個常用的消息都提供了相應的API函數。為了不必記憶過多的消息,使用API函數進行開發是相對比較直觀的。

1. 鼠標鍵盤按鍵模擬函數

在使用Windows的系統消息進行模擬鼠標或鍵盤按鍵操作時,可能顯得不直觀,也不方便。微軟公司在進行設計時已經考慮到了這點,因此在Windows下的大部分消息都可以直接使用對應的等價API函數,不必直接通過發送消息。比如可以用WM_GETTEXT消息去獲取文本的內容,對應的函數有GetWindowText()。試想一下,如果程序中一眼看去都是SendMessage()與PostMessage()之類的函數,豈不是很嚇人。

下面介紹兩個函數,分別用來模擬鼠標和鍵盤的輸入,它們分別是keybd_event()和mouse_event(),定義如下: 

  1. VOID keybd_event(  
  2.  BYTE bVk,  
  3.  BYTE bScan,  
  4.  DWORD dwFlags,  
  5.  ULONG_PTR dwExtraInfo  
  6. );  
  7. VOID mouse_event(  
  8.  DWORD dwFlags,  
  9.  DWORD dx,  
  10.  DWORD dy,  
  11.  DWORD dwData,  
  12.  ULONG_PTR dwExtraInfo  
  13. ); 

從函數的名稱就能看出,這兩個API函數分別對應的是鍵盤事件和鼠標事件,在程序里使用時,對于閱讀代碼的人來說就比較直觀了。下面使用keybd_event()和mouse_event()兩個函數來完成上面刷新網頁的小工具。

2. 網頁刷新工具

keybd_event()和 mouse_event()這兩個 API 函數,從函數的參數上來看,不需要給它們傳遞窗口句柄當作參數。那么這兩個函數在進行鼠標和鍵盤的模擬時就必須將目標窗口激活并處于所有窗口的最前端。因此在程序中首先要完成的是將目標窗口設置到最前面,并且處于激活狀態。先來看一下程序的界面部分,如圖4所示。

圖4  模擬鼠標鍵盤

這次的窗口相比上個程序的窗口要簡單些。在界面上有兩個按鈕,第1個按鈕“模擬鍵盤”是通過keybd_event()來模擬按F5鍵從而刷新網頁,第2個按鈕“模擬鼠標”是通過mouse_event()來模擬鼠標右鍵,從而彈出瀏覽器的快捷菜單,再通過keybd_event()模擬按R鍵來刷新網頁。

知道了程序要實現的功能,先來完成將目標窗口設置到最前面并處于激活狀態的部分,代碼如下: 

  1. VOID CSimInputDlg::FindAndFocus()  
  2.  
  3.   GetDlgItemText(IDC_EDIT_CAPTION, m_StrCaption);  
  4.   // 判斷輸入是否為空 
  5.   if ( m_StrCaption == "" )  
  6.   {  
  7.     return ;  
  8.   }  
  9.   m_hWnd = ::FindWindow(NULL, m_StrCaption.GetBuffer(0));  
  10.   // 該函數將創建指定窗口的線程設置到前臺  
  11.   // 并且激活該窗口  
  12.   ::SetForegroundWindow(m_hWnd);  

這個自定義函數非常簡單,分別調用了FindWindow()和SetForegroundWindow()兩個API函數。SetForegroundWindow()函數的使用比較簡單,它會將指定的窗口設置到最前面并處于激活狀態,該函數只有1個參數,是目標窗口的窗口句柄(這里的窗口句柄變量m_hWnd就是由MFC提供的變量,該值也可以使用GetSafeHwnd()函數來進行獲取。)

“模擬鍵盤”按鈕對應的代碼如下: 

  1. void CSimInputDlg::OnBtnSimkeybd()  
  2.  
  3.   // 在此處添加處理程序代碼  
  4.   // 找到窗口  
  5.   // 將其設置到前臺并激活  
  6.   FindAndFocus();  
  7.   Sleep(1000);  
  8.   // 模擬 F5 三次  
  9.   keybd_event(VK_F5, 0, 0, 0);  
  10.   Sleep(1000);  
  11.   keybd_event(VK_F5, 0, 0, 0);  
  12.   Sleep(1000);  
  13.   keybd_event(VK_F5, 0, 0, 0);  

在進行模擬鍵盤按鍵前,首先要調用自定義函數FindAndFocus()將瀏覽器設置到最前面并處于激活狀態(在“模擬鼠標”按鈕中同樣要先調用FindAndFocus()自定義函數)。通過調用keybd_event()函數來模擬F5鍵進行了3次網頁的刷新。

“模擬鼠標”按鈕對應的代碼如下: 

  1. void CSimInputDlg::OnBtnSimmouse()  
  2.  
  3.   // 在此處添加處理程序代碼  
  4.   FindAndFocus();  
  5.   // 得到窗口在屏幕的坐標(x, y) 
  6.   POINT pt = { 0 };  
  7.   ::ClientToScreen(m_hWnd, &pt);  
  8.   // 設置鼠標位置  
  9.   SetCursorPos(pt.x + 36, pt.y + 395);  
  10.   // 模擬單擊鼠標右鍵  
  11.   // 單擊鼠標右鍵后,瀏覽器會彈出快捷菜單  
  12.   mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);  
  13.   Sleep(100);  
  14.   mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);  
  15.   Sleep(1000);  
  16.   // 0x52 = R  
  17.   // 在彈出右鍵菜單后按下 R 鍵  
  18.   // 會刷新頁面  
  19.   keybd_event(0x52, 0, 0, 0);  

代碼中用到了兩個陌生的API函數,分別是ClientToScreen ()和SetCursorPos()。它們的定義如下: 

  1. BOOL ClientToScreen(  
  2.  HWND hWnd, // handle to window  
  3.  LPPOINT lpPoint // screen coordinates  
  4. ); 

ClientToScreen()函數的作用是將窗口區域的坐標轉換為屏幕的坐標。更直接的解釋是,得到指定窗口在屏幕中的坐標位置。 

  1. BOOL SetCursorPos(  
  2.  int X, // horizontal position  
  3.  int Y // vertical position  
  4. ); 

SetCursorPos()函數的作用是將鼠標光標移動到指定的坐標位置。

在程序中為什么不使用mouse_event()來移動鼠標光標的位置,而是使用SetCursorPos()的位置呢?在API函數中,與SetCursorPos()對應的一個函數是GetCursorPos(),而SetCursorPos()函數往往會與GetCursorPos()函數一起使用。因為在很多情況下,程序設置鼠標光標位置進行一系列操作后,仍需要將鼠標光標的位置設置回原來的位置,那么在調用SetCursorPos()前,就需要調用GetCursorPos()得到鼠標光標的當前位置,這樣才可以在操作完成后把鼠標光標設置為原來的位置。由此也可以看出,很多API函數是成對出現的,有Set也有Get,這樣在記憶的時候非常的方便。

在程序中調用SetCursorPos()函數時,參數中的x坐標和y坐標分別加了兩個整型的常量,這里可能比較費解。這兩個整型常量的作用是通過ClientToScreen()函數得到的是瀏覽器左上角的x和y坐標,而瀏覽器的鼠標右鍵菜單必須在瀏覽器的客戶區中才能激活,因此需要在左上角坐標的基礎上增加兩個偏移,代碼里的兩個整型常量就是一個偏移(這里的偏移值可以自己隨意修改,只要保證鼠標能夠落在瀏覽器窗口中即可)。

對于鼠標和鍵盤按鍵的模擬在很多地方都會使用,比如有的病毒用模擬鼠標單擊殺毒軟件的警告提示,比如游戲輔助工具通過模擬鼠標進行快速單擊……對于鼠標和鍵盤按鍵的模擬并不簡單。在常規的情況下,可以通過上面介紹的內容來進行鼠標和鍵盤按鍵的模擬操作。但是對于有些情況就不行了,比如有些游戲過濾了PostMessage()函數發送來的消息,有些游戲hook了keybd_event()和mouse_event()函數,有些游戲使用了DX來響應鼠標和鍵盤…… 

 

責任編輯:龐桂玉 來源: 計算機與網絡安全
相關推薦

2021-03-03 12:20:42

網絡安全DLL編程

2021-02-07 10:55:01

網絡安全文件API

2009-09-02 18:11:24

C#鼠標

2021-03-05 13:46:56

網絡安全遠程線程

2021-01-26 13:45:03

網絡安全Winsock編程

2021-02-23 10:20:07

網絡安全進程代碼

2021-02-21 18:19:43

網絡安全網絡安全編程創建進程

2016-10-10 00:18:27

2021-02-15 15:23:03

網絡安全注冊表API

2009-06-04 09:05:59

2021-06-18 09:55:09

網絡安全目錄監控

2021-03-01 11:38:15

網絡安全進程代碼

2021-06-11 13:40:17

網絡安全專殺工具病毒

2021-02-05 15:20:06

網絡安全套接字命令

2011-03-17 13:32:45

2022-08-01 06:52:23

數據中心網絡安全

2021-05-12 14:57:13

網絡安全密碼代碼

2021-06-24 08:37:34

網絡安全內核代碼

2021-04-19 10:26:41

網絡安全PE文件

2021-06-15 11:16:24

網絡安全U盤軟件
點贊
收藏

51CTO技術棧公眾號

国产日韩在线观看视频| 天堂地址在线www| 国产欧美91| 亚洲美女喷白浆| 三年中国国语在线播放免费| 在线观看麻豆| 成人在线综合网站| 日韩美女毛茸茸| 中文字幕电影av| 亚洲欧洲av| 91精品啪在线观看国产60岁| 黄色一级在线视频| 色网站在线看| av亚洲精华国产精华精| 国产精品高精视频免费| 欧美精品成人久久| 国产亚洲精品美女久久久久久久久久| 欧美福利一区二区| 久草资源站在线观看| 欧美日韩视频在线播放| 91丨九色丨蝌蚪富婆spa| 国产日韩av在线| 免费日韩一级片| 91亚洲国产成人久久精品| 亚洲韩国日本中文字幕| 在线视频观看一区二区| 欧美国产大片| 亚洲成人免费看| 不卡中文字幕在线| 九色视频在线观看免费播放| 粉嫩av亚洲一区二区图片| 国产精品激情自拍| 久久国产视频播放| 亚洲欧美一区在线| 欧美国产在线观看| 成人xxxxx色| 一道本无吗一区| 久久黄色网页| 国内外成人免费激情在线视频网站 | 亚洲一区免费网站| 亚洲av无码不卡| 日韩午夜一区| 欧美激情一区二区三级高清视频 | 黄色永久免费网站| 欧美黑人粗大| 偷窥少妇高潮呻吟av久久免费| 亚洲精品少妇一区二区| 福利视频在线| 最好看的中文字幕久久| 亚洲va久久久噜噜噜久久狠狠| 午夜视频免费看| 成人av免费在线| 国产传媒一区| 欧美 日韩 国产 精品| 国产精品99久久久久久久vr| 国产日韩精品在线观看| 伊人亚洲综合网| 美女mm1313爽爽久久久蜜臀| 国产精品欧美激情| 特级西西444www高清大视频| 日韩不卡手机在线v区| 日韩美女视频免费看| 欧美性猛交xxxx乱大交hd| 香蕉成人久久| 日韩av免费在线播放| 久久久精品视频网站| 蜜桃av综合| 国产精品男女猛烈高潮激情| 亚洲视频一区在线播放| 黄色精品一二区| 7777奇米亚洲综合久久 | 国产乱人伦偷精品视频免下载| 成人天堂噜噜噜| 99久久精品国产一区二区成人| 国产精品资源网| 成人情视频高清免费观看电影| 免费成人在线看| 久久一夜天堂av一区二区三区| 欧美人xxxxx| 爱爱爱免费视频在线观看| 国产精品人妖ts系列视频| 国产精品av免费| 欧美xxxx做受欧美88bbw| 亚洲成av人片一区二区| 久久国产乱子伦免费精品| 欧亚一区二区| 欧美一区二区三区性视频| 岛国精品一区二区三区| 亚洲香蕉视频| xxxxx91麻豆| 日韩成人高清视频| 日产欧产美韩系列久久99| 91久久国产婷婷一区二区| 欧日韩在线视频| 欧美国产国产综合| 成人免费看片'免费看| 性感女国产在线| 欧美电影影音先锋| 一区二区免费在线观看视频| 欧美日韩高清| 久久久久久久久久久免费精品 | 午夜伦理在线| 亚洲福利一二三区| 男女男精品视频站| 6080亚洲理论片在线观看| 亚洲天堂网站在线观看视频| 澳门黄色一级片| 久久中文欧美| 国产福利久久精品| 欧美黄色激情| 狠狠色香婷婷久久亚洲精品| 中文字幕国产高清| 精品在线手机视频| 久久久久久久999| 亚洲中文字幕在线一区| 97久久超碰国产精品电影| 一区二区在线观| 一本大道色婷婷在线| 欧美一区二区人人喊爽| 三年中国中文观看免费播放| 亚洲一级电影| 成人精品久久久| www 日韩| 色久综合一二码| 中国xxxx性xxxx产国| 亚洲精彩视频| 国产欧美精品在线| 黄色网址在线播放| 精品国产鲁一鲁一区二区张丽| www.久久com| 久久激情电影| 国产精品a久久久久久| 无码国产精品一区二区色情男同| 亚洲色图清纯唯美| 亚洲一级片网站| 欧美一区二区三| 日本精品免费一区二区三区| 日韩中文字幕观看| 亚洲一区二区欧美| 波多野结衣三级视频| 91精品国产91久久久久久黑人| 国产精品福利久久久| 黄色av网站在线免费观看| 欧美性极品少妇精品网站| 男人网站在线观看| 伊人久久亚洲热| 国产精品乱码视频| 国产探花视频在线观看| 日韩欧美国产一区在线观看| 精品一区在线观看视频| 国产在线观看一区二区| 久久久久亚洲av无码专区喷水| 四虎视频在线精品免费网址| www.日韩不卡电影av| 中文字幕 视频一区| 亚洲国产精品成人综合| 一路向西2在线观看| 色婷婷一区二区三区| 国产欧美一区二区三区在线看| 天天影视久久综合| 777奇米成人网| 欧美精品一级片| 不卡视频一二三| 成人在线免费在线观看| 精品高清在线| 成人黄色免费网站在线观看| 好吊日视频在线观看| 日韩免费看网站| 天天操天天爽天天干| 久久伊99综合婷婷久久伊| 在线视频日韩一区| 91精品99| 黄色一区三区| 91九色综合| 久久综合电影一区| 日本xxxxxwwwww| 91传媒视频在线播放| 美女网站视频色| 国产福利视频一区二区三区| 国产极品粉嫩福利姬萌白酱| 国产伦精品一区二区三区视频| 国产精品自拍网| 国产精品—色呦呦| 国产午夜精品一区二区三区| 国产三级漂亮女教师| 天天综合日日夜夜精品| 91视频免费在观看| 国产成人av影院| 黄色一级一级片| 亚洲国产一区二区三区在线播放| 久久成人资源| 日韩久久99| 91精品国产高清自在线 | 美女一区2区| 国产精品视频yy9099| 日本片在线看| 一区二区欧美亚洲| www.香蕉视频| 色吊一区二区三区| 国产精品成人免费观看| 久久理论电影网| 中国老熟女重囗味hdxx| 久久九九国产| 亚洲国产精品无码观看久久| re久久精品视频| 精品久久久久久亚洲| 成人在线日韩| 国产91精品网站| 美女精品导航| 精品国产一区av| 蜜桃视频在线观看网站| 日韩欧美一级二级三级久久久| 久久精品五月天| 亚洲国产精品久久人人爱| 国产精品1区2区3区4区| 95精品视频在线| 女王人厕视频2ⅴk| 全部av―极品视觉盛宴亚洲| 欧美日韩性生活片| 欧美日韩1区| 中文字幕色一区二区| 国产一区二区观看| 久久精精品视频| 999久久久精品一区二区| 国产区精品在线观看| 欧美成人精品三级网站| 97视频在线观看播放| 日本在线观看高清完整版| 久久精品国产清自在天天线| 东热在线免费视频| 亚洲精品一区二区三区婷婷月| 黄色av网站免费在线观看| 欧美一区二区三区四区久久 | 青草影视电视剧免费播放在线观看| 在线精品国产成人综合| 久久99久久| 亚洲另类图片色| 日韩成人黄色| 国产视频在线一区二区| 天堂v视频永久在线播放| 精品国产乱码久久| 亚洲奶汁xxxx哺乳期| 日韩欧美一区在线| 超碰在线人人干| 日韩精品一区二区三区中文精品| 国产精品自产拍| 91精品国产一区二区人妖| 国产男男gay网站| 91精品久久久久久久91蜜桃| 91中文字幕在线视频| 精品视频在线视频| 国产一区二区网站| 欧美精品在线观看一区二区| 一区二区精品视频在线观看| 欧美巨大另类极品videosbest | 欧美精品一区二区三区四区 | 国产成人啪午夜精品网站男同| 色欲无码人妻久久精品| 国产成人免费视频网站高清观看视频| 91热视频在线观看| 国产乱码精品1区2区3区| 波多野结衣免费观看| 国产成人自拍在线| 337p日本欧洲亚洲大胆张筱雨 | 成人免费视屏| 久久伊人色综合| www红色一片_亚洲成a人片在线观看_| 美女撒尿一区二区三区| 在线观看中文| 久久人人爽人人爽人人片av高请 | 国产精品白嫩美女在线观看 | 久久bbxx| 欧美床上激情在线观看| 高h视频在线播放| 91国内精品久久| 一区二区视频免费完整版观看| 国产精品户外野外| 亚洲精品第一| 99在线首页视频| 亚洲图片久久| 一级黄色免费在线观看| 欧美日韩一区自拍| 欧美v在线观看| 精品一区二区三区在线观看| 丰满饥渴老女人hd| 黄页视频在线91| 波多野结衣视频播放| 国产欧美精品一区二区色综合| 免费黄色激情视频| 精品国产鲁一鲁一区二区张丽| 中文字幕久久网| 精品精品国产高清一毛片一天堂| 男操女在线观看| 欧美成人精品在线| 免费亚洲电影| 91黄色精品| 亚洲成a人片77777在线播放| 在线成人性视频| 国产日韩欧美一区| 午夜一级免费视频| 91在线观看污| 日本精品人妻无码77777| 欧美日韩精品中文字幕| 国产美女永久免费| 亚洲欧美国产一本综合首页| 四季久久免费一区二区三区四区| 日本欧美精品在线| 欧美区一区二区| 色播五月综合| 国产欧美在线| 又色又爽又黄18网站| 国产精品乱人伦| 国产精品suv一区| 日韩视频不卡中文| 成年人在线观看| 555www成人网| 亚洲五码在线| 一区二区视频在线播放| 免费永久网站黄欧美| 国模大尺度视频| 国产精品欧美久久久久无广告 | 国产精成人品免费观看| 亚洲观看高清完整版在线观看| 91成人国产综合久久精品| 国产视频在线一区二区| 国模雨婷捆绑高清在线| 91传媒在线免费观看| 99成人超碰| 麻豆三级在线观看| 久久久99久久精品欧美| 毛片视频网站在线观看| 欧美mv日韩mv亚洲| 国产黄色在线网站| 成人黄色在线观看| 日韩精品诱惑一区?区三区| 日韩欧美精品在线观看视频| 不卡欧美aaaaa| 国产一级特黄毛片| 日韩一级二级三级精品视频| 老司机福利在线视频| 国产欧美一区二区三区视频| 欧美手机在线| 91制片厂毛片| 欧美高清在线视频| 天天综合久久综合| 国产一区二区日韩精品欧美精品| 天堂中文av在线资源库| 久久精品中文字幕一区二区三区| 激情综合视频| 一级黄色电影片| 亚洲国产婷婷综合在线精品| 国产18精品乱码免费看| 高清一区二区三区日本久| 北条麻妃在线一区二区免费播放| www.国产二区| 成人免费高清在线观看| 精品在线视频免费| 日韩精品视频在线| 亚洲精华液一区二区三区| 欧美二级三级| 免费观看在线色综合| 小嫩苞一区二区三区| 日韩一区二区三区高清免费看看| 青春草在线免费视频| 国产乱码精品一区二区三区日韩精品| 亚洲精品1区2区| 欧美老熟妇乱大交xxxxx| 在线一区二区三区做爰视频网站| 永久免费在线观看视频| 91精品视频在线播放| 欧美私人啪啪vps| 国产麻豆xxxvideo实拍| 色婷婷一区二区三区四区| bbbbbbbbbbb在线视频| 成人羞羞国产免费| 黄色欧美成人| www.自拍偷拍| 欧美日韩国产大片| 欧美理论片在线播放| 九九99玖玖| 美腿丝袜亚洲三区| 青青草手机在线观看| 日韩精品视频免费在线观看| 欧美黄色网络| 日韩一区二区高清视频| 久久久亚洲精品石原莉奈| 中文字幕乱码一区二区| 欧美巨猛xxxx猛交黑人97人| 青草久久视频| 欧美日韩中文不卡| 亚洲成av人片| 日本暖暖在线视频| 国产欧美一区二区在线播放| 久久看片网站| 四虎免费在线视频| 精品一区电影国产| 精品精品视频| 精品一卡二卡三卡| 亚洲综合在线五月| 国产无套粉嫩白浆在线2022年|