青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

道。道。道

安全特性不等于安全的特性

   :: 首頁 :: 聯系 :: 聚合  :: 管理

常用鏈接

搜索

  •  

最新評論

一、 前言

  所謂游戲外掛,其實是一種游戲外輔程序,它可以協助玩家自動產生游戲動作、修改游戲網絡數據包以及修改游戲內存數據等,以實現玩家用最少的時間和金錢去完成功力升級和過關斬將。雖然,現在對游戲外掛程序的“合法”身份眾說紛紜,在這里我不想對此發表任何個人意見,讓時間去說明一切吧。

  不管游戲外掛程序是不是“合法”身份,但是它卻是具有一定的技術含量的,在這些小小程序中使用了許多高端技術,如攔截Sock技術、攔截API技術、模擬鍵盤與鼠標技術、直接修改程序內存技術等等。本文將對常見的游戲外掛中使用的技術進行全面剖析。

  二、認識外掛

  游戲外掛的歷史可以追溯到單機版游戲時代,只不過當時它使用了另一個更通俗易懂的名字??游戲修改器。它可以在游戲中追蹤鎖定游戲主人公的各項能力數值。這樣玩家在游戲中可以達到主角不掉血、不耗費魔法、不消耗金錢等目的。這樣降低了游戲的難度,使得玩家更容易通關。

  隨著網絡游戲的時代的來臨,游戲外掛在原有的功能之上進行了新的發展,它變得更加多種多樣,功能更加強大,操作更加簡單,以至有些游戲的外掛已經成為一個體系,比如《石器時代》,外掛品種達到了幾十種,自動戰斗、自動行走、自動練級、自動補血、加速、不遇敵、原地遇敵、快速增加經驗值、按鍵精靈……幾乎無所不包。

  游戲外掛的設計主要是針對于某個游戲開發的,我們可以根據它針對的游戲的類型可大致可將外掛分為兩種大類。

  一類是將游戲中大量繁瑣和無聊的攻擊動作使用外掛自動完成,以幫助玩家輕松搞定攻擊對象并可以快速的增加玩家的經驗值。比如在《龍族》中有一種工作的設定,玩家的工作等級越高,就可以駕馭越好的裝備。但是增加工作等級卻不是一件有趣的事情,毋寧說是重復枯燥的機械勞動。如果你想做法師用的杖,首先需要做基本工作--?砍樹??硺涞姆椒ê芎唵?,在一棵大樹前不停的點鼠標就可以了,每10000的經驗升一級。這就意味著玩家要在大樹前不停的點擊鼠標,這種無聊的事情通過"按鍵精靈"就可以解決。外掛的"按鍵精靈"功能可以讓玩家擺脫無趣的點擊鼠標的工作。

  另一類是由外掛程序產生欺騙性的網絡游戲封包,并將這些封包發送到網絡游戲服務器,利用這些虛假信息欺騙服務器進行游戲數值的修改,達到修改角色能力數值的目的。這類外掛程序針對性很強,一般在設計時都是針對某個游戲某個版本來做的,因為每個網絡游戲服務器與客戶端交流的數據包各不相同,外掛程序必須要對欺騙的網絡游戲服務器的數據包進行分析,才能產生服務器識別的數據包。這類外掛程序也是當前最流利的一類游戲外掛程序。

  另外,現在很多外掛程序功能強大,不僅實現了自動動作代理和封包功能,而且還提供了對網絡游戲的客戶端程序的數據進行修改,以達到欺騙網絡游戲服務器的目的。我相信,隨著網絡游戲商家的反外掛技術的進展,游戲外掛將會產生更多更優秀的技術,讓我們期待著看場技術大戰吧......

  三、外掛技術綜述

  可以將開發游戲外掛程序的過程大體上劃分為兩個部分:

  前期部分工作是對外掛的主體游戲進行分析,不同類型的外掛分析主體游戲的內容也不相同。如外掛為上述談到的外掛類型中的第一類時,其分析過程常是針對游戲的場景中的攻擊對象的位置和分布情況進行分析,以實現外掛自動進行攻擊以及位置移動。如外掛為外掛類型中的第二類時,其分析過程常是針對游戲服務器與客戶端之間通訊包數據的結構、內容以及加密算法的分析。因網絡游戲公司一般都不會公布其游戲產品的通訊包數據的結構、內容和加密算法的信息,所以對于開發第二類外掛成功的關鍵在于是否能正確分析游戲包數據的結構、內容以及加密算法,雖然可以使用一些工具輔助分析,但是這還是一種堅苦而復雜的工作。

  后期部分工作主要是根據前期對游戲的分析結果,使用大量的程序開發技術編寫外掛程序以實現對游戲的控制或修改。如外掛程序為第一類外掛時,通常會使用到鼠標模擬技術來實現游戲角色的自動位置移動,使用鍵盤模擬技術來實現游戲角色的自動攻擊。如外掛程序為第二類外掛時,通常會使用到擋截Sock和擋截API函數技術,以擋截游戲服務器傳來的網絡數據包并將數據包修改后封包后傳給游戲服務器。另外,還有許多外掛使用對游戲客戶端程序內存數據修改技術以及游戲加速技術。

  本文主要是針對開發游戲外掛程序后期使用的程序開發技術進行探討,重點介紹的如下幾種在游戲外掛中常使用的程序開發技術

  ● 動作模擬技術:主要包括鍵盤模擬技術和鼠標模擬技術

  ● 封包技術:主要包括擋截Sock技術和擋截API技術。


四、動作模擬技術

  我們在前面介紹過,幾乎所有的游戲都有大量繁瑣和無聊的攻擊動作以增加玩家的功力,還有那些數不完的迷宮,這些好像已經成為了角色游戲的代名詞?,F在,外掛可以幫助玩家從這些繁瑣而無聊的工作中擺脫出來,專注于游戲情節的進展。外掛程序為了實現自動角色位置移動和自動攻擊等功能,需要使用到鍵盤模擬技術和鼠標模擬技術。下面我們將重點介紹這些技術并編寫一個簡單的實例幫助讀者理解動作模擬技術的實現過程。

  1. 鼠標模擬技術
  
  幾乎所有的游戲中都使用了鼠標來改變角色的位置和方向,玩家僅用一個小小的鼠標,就可以使角色暢游天下。那么,我們如何實現在沒有玩家的參與下角色也可以自動行走呢。其實實現這個并不難,僅僅幾個Windows API函數就可以搞定,讓我們先來認識認識這些API函數。

  (1) 模擬鼠標動作API函數mouse_event,它可以實現模擬鼠標按下和放開等動作。

    VOID mouse_event(
      DWORD dwFlags, // 鼠標動作標識。
      DWORD dx, // 鼠標水平方向位置。
      DWORD dy, // 鼠標垂直方向位置。
      DWORD dwData, // 鼠標輪子轉動的數量。
      DWORD dwExtraInfo // 一個關聯鼠標動作輔加信息。
    );

  其中,dwFlags表示了各種各樣的鼠標動作和點擊活動,它的常用取值如下:

   MOUSEEVENTF_MOVE 表示模擬鼠標移動事件。

   MOUSEEVENTF_LEFTDOWN 表示模擬按下鼠標左鍵。

   MOUSEEVENTF_LEFTUP 表示模擬放開鼠標左鍵。

   MOUSEEVENTF_RIGHTDOWN 表示模擬按下鼠標右鍵。

   MOUSEEVENTF_RIGHTUP 表示模擬放開鼠標右鍵。

   MOUSEEVENTF_MIDDLEDOWN 表示模擬按下鼠標中鍵。

   MOUSEEVENTF_MIDDLEUP 表示模擬放開鼠標中鍵。

  (2)、設置和獲取當前鼠標位置的API函數。獲取當前鼠標位置使用GetCursorPos()函數,設置當前鼠標位置使用SetCursorPos()函數。

    BOOL GetCursorPos(
     LPPOINT lpPoint // 返回鼠標的當前位置。
    );
    BOOL SetCursorPos(
    int X, // 鼠標的水平方向位置。
      int Y //鼠標的垂直方向位置。
    );

  通常游戲角色的行走都是通過鼠標移動至目的地,然后按一下鼠標的按鈕就搞定了。下面我們使用上面介紹的API函數來模擬角色行走過程。

   CPoint oldPoint,newPoint;
   GetCursorPos(&oldPoint); //保存當前鼠標位置。
   newPoint.x = oldPoint.x+40;
   newPoint.y = oldPoint.y+10;
   SetCursorPos(newPoint.x,newPoint.y); //設置目的地位置。
   mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);//模擬按下鼠標右鍵。
   mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);//模擬放開鼠標右鍵。

  2. 鍵盤模擬技術

  在很多游戲中,不僅提供了鼠標的操作,而且還提供了鍵盤的操作,在對攻擊對象進行攻擊時還可以使用快捷鍵。為了使這些攻擊過程能夠自動進行,外掛程序需要使用鍵盤模擬技術。像鼠標模擬技術一樣,Windows API也提供了一系列API函數來完成對鍵盤動作的模擬。

  模擬鍵盤動作API函數keydb_event,它可以模擬對鍵盤上的某個或某些鍵進行按下或放開的動作。

   VOID keybd_event(
     BYTE bVk, // 虛擬鍵值。
     BYTE bScan, // 硬件掃描碼。
     DWORD dwFlags, // 動作標識。
     DWORD dwExtraInfo // 與鍵盤動作關聯的輔加信息。
   );

  其中,bVk表示虛擬鍵值,其實它是一個BYTE類型值的宏,其取值范圍為1-254。有關虛擬鍵值表請在MSDN上使用關鍵字“Virtual-Key Codes”查找相關資料。bScan表示當鍵盤上某鍵被按下和放開時,鍵盤系統硬件產生的掃描碼,我們可以MapVirtualKey()函數在虛擬鍵值與掃描碼之間進行轉換。dwFlags表示各種各樣的鍵盤動作,它有兩種取值:KEYEVENTF_EXTENDEDKEY和KEYEVENTF_KEYUP。

  下面我們使用一段代碼實現在游戲中按下Shift+R快捷鍵對攻擊對象進行攻擊。

   keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下CTRL鍵。
   keybd_event(0x52,MapVirtualKey(0x52,0),0,0);//鍵下R鍵。
   keybd_event(0x52,MapVirtualKey(0x52,0), KEYEVENTF_KEYUP,0);//放開R鍵。
   keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),
   KEYEVENTF_KEYUP,0);//放開CTRL鍵。

  3. 激活外掛

  上面介紹的鼠標和鍵盤模擬技術實現了對游戲角色的動作部分的模擬,但要想外掛能工作于游戲之上,還需要將其與游戲的場景窗口聯系起來或者使用一個激活鍵,就象按鍵精靈的那個激活鍵一樣。我們可以用GetWindow函數來枚舉窗口,也可以用Findwindow函數來查找特定的窗口。另外還有一個FindWindowEx函數可以找到窗口的子窗口,當游戲切換場景的時候我們可以用FindWindowEx來確定一些當前窗口的特征,從而判斷是否還在這個場景,方法很多了,比如可以GetWindowInfo來確定一些東西,比如當查找不到某個按鈕的時候就說明游戲場景已經切換了等等辦法。當使用激活鍵進行關聯,需要使用Hook技術開發一個全局鍵盤鉤子,在這里就不具體介紹全局鉤子的開發過程了,在后面的實例中我們將會使用到全局鉤子,到時將學習到全局鉤子的相關知識。


  4. 實例實現

  通過上面的學習,我們已經基本具備了編寫動作式游戲外掛的能力了。下面我們將創建一個畫筆程序外掛,它實現自動移動畫筆字光標的位置并寫下一個紅色的“R”字。以這個實例為基礎,加入相應的游戲動作規則,就可以實現一個完整的游戲外掛。這里作者不想使用某個游戲作為例子來開發外掛(因沒有游戲商家的授權?。。?,如讀者感興趣的話可以找一個游戲試試,最好僅做測試技術用。

  首先,我們需要編寫一個全局鉤子,使用它來激活外掛,激活鍵為F10。創建全局鉤子步驟如下:

  (1).選擇MFC AppWizard(DLL)創建項目ActiveKey,并選擇MFC Extension DLL(共享MFC拷貝)類型。

  (2).插入新文件ActiveKey.h,在其中輸入如下代碼:

   #ifndef _KEYDLL_H
   #define _KEYDLL_H

   class AFX_EXT_CLASS CKeyHook:public CObject
   {
    public:
 CKeyHook();
 ~CKeyHook();
 HHOOK Start(); //安裝鉤子
 BOOL Stop(); //卸載鉤子
   };
   #endif

  (3).在ActiveKey.cpp文件中加入聲明"#include ActiveKey.h"。

  (4).在ActiveKey.cpp文件中加入共享數據段,代碼如下:

   //Shared data section
   #pragma data_seg("sharedata")
   HHOOK glhHook=NULL; //鉤子句柄。
   HINSTANCE glhInstance=NULL; //DLL實例句柄。
   #pragma data_seg()

  (5).在ActiveKey.def文件中設置共享數據段屬性,代碼如下:

   SETCTIONS
   shareddata READ WRITE SHARED

  (6).在ActiveKey.cpp文件中加入CkeyHook類的實現代碼和鉤子函數代碼:

   //鍵盤鉤子處理函數。
   extern "C" LRESULT WINAPI KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
   {
   if( nCode >= 0 )
   {
   if( wParam == 0X79 )//當按下F10鍵時,激活外掛。
 {
  //外掛實現代碼。
CPoint newPoint,oldPoint;
   GetCursorPos(&oldPoint);
   newPoint.x = oldPoint.x+40;
   newPoint.y = oldPoint.y+10;
   SetCursorPos(newPoint.x,newPoint.y);
   mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模擬按下鼠標左鍵。
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模擬放開鼠標左鍵。
  keybd_event(VK_SHIFT,MapVirtualKey(VK_SHIFT,0),0,0); //按下SHIFT鍵。
  keybd_event(0x52,MapVirtualKey(0x52,0),0,0);//按下R鍵。
  keybd_event(0x52,MapVirtualKey(0x52,0),KEYEVENTF_KEYUP,0);//放開R鍵。
  keybd_event(VK_SHIFT,MapVirtualKey(VK_SHIFT,0),KEYEVENTF_KEYUP,0);//放開SHIFT鍵。
      SetCursorPos(oldPoint.x,oldPoint.y);
 }
   }
   return CallNextHookEx(glhHook,nCode,wParam,lParam);
   }

   CKeyHook::CKeyHook(){}
   CKeyHook::~CKeyHook()
   { 
   if( glhHook )
Stop();
   }
   //安裝全局鉤子。
   HHOOK CKeyHook::Start()
   {
glhHook = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,glhInstance,0);//設置鍵盤鉤子。
return glhHook;
}
   //卸載全局鉤子。
   BOOL CKeyHook::Stop()
   {
   BOOL bResult = TRUE;
 if( glhHook )
   bResult = UnhookWindowsHookEx(glhHook);//卸載鍵盤鉤子。
   return bResult;
   }

  (7).修改DllMain函數,代碼如下:

   extern "C" int APIENTRY
   DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
   {
//如果使用lpReserved參數則刪除下面這行
UNREFERENCED_PARAMETER(lpReserved);

if (dwReason == DLL_PROCESS_ATTACH)
{
  TRACE0("NOtePadHOOK.DLL Initializing!\n");
   //擴展DLL僅初始化一次
  if (!AfxInitExtensionModule(ActiveKeyDLL, hInstance))
return 0;
  new CDynLinkLibrary(ActiveKeyDLL);
      //把DLL加入動態MFC類庫中
  glhInstance = hInstance;
  //插入保存DLL實例句柄
}
else if (dwReason == DLL_PROCESS_DETACH)
{
  TRACE0("NotePadHOOK.DLL Terminating!\n");
  //終止這個鏈接庫前調用它
  AfxTermExtensionModule(ActiveKeyDLL);
}
return 1;
   }

  (8).編譯項目ActiveKey,生成ActiveKey.DLL和ActiveKey.lib。

  接著,我們還需要創建一個外殼程序將全局鉤子安裝了Windows系統中,這個外殼程序編寫步驟如下:

  (1).創建一個對話框模式的應用程序,項目名為Simulate。

  (2).在主對話框中加入一個按鈕,使用ClassWizard為其創建CLICK事件。

  (3).將ActiveKey項目Debug目錄下的ActiveKey.DLL和ActiveKey.lib拷貝到Simulate項目目錄下。

  (4).從“工程”菜單中選擇“設置”,彈出Project Setting對話框,選擇Link標簽,在“對象/庫模塊”中輸入ActiveKey.lib。

  (5).將ActiveKey項目中的ActiveKey.h頭文件加入到Simulate項目中,并在Stdafx.h中加入#include ActiveKey.h。

  (6).在按鈕單擊事件函數輸入如下代碼:

   void CSimulateDlg::OnButton1()
   {
// TODO: Add your control notification handler code here
if( !bSetup )
{
m_hook.Start();//激活全局鉤子。
}
else
{
m_hook.Stop();//撤消全局鉤子。
}
bSetup = !bSetup;

   }

  (7).編譯項目,并運行程序,單擊按鈕激活外掛。

  (8).啟動畫筆程序,選擇文本工具并將筆的顏色設置為紅色,將鼠標放在任意位置后,按F10鍵,畫筆程序自動移動鼠標并寫下一個紅色的大寫R。圖一展示了按F10鍵前的畫筆程序的狀態,圖二展示了按F10鍵后的畫筆程序的狀態。


圖一:按F10前狀態(001.jpg)



圖二:按F10后狀態(002.jpg)
posted on 2006-11-18 16:35 獨孤九劍 閱讀(266) 評論(0)  編輯 收藏 引用 所屬分類: misc
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品美女一区二区| 国产精品视屏| 亚洲精品欧美专区| 欧美激情一区二区三区在线视频| 久久精品国产久精国产爱| 国产精品亚洲а∨天堂免在线| 亚洲欧美综合一区| 亚洲欧美综合国产精品一区| 国际精品欧美精品| 老牛国产精品一区的观看方式| 久久激情五月丁香伊人| 亚洲国产mv| 亚洲人成网站在线播| 欧美日韩1区| 欧美一区二区视频在线观看| 久久www成人_看片免费不卡| 亚洲国产高清aⅴ视频| 亚洲人人精品| 国产欧美日韩另类视频免费观看 | 久久综合久久88| 亚洲精品三级| 亚洲小说欧美另类社区| 国产日韩欧美夫妻视频在线观看| 免费成人在线观看视频| 欧美日本一区| 久久久久久亚洲综合影院红桃 | 亚洲精品在线视频观看| 国产精品乱码人人做人人爱| 麻豆精品在线视频| 欧美日韩国产一区二区三区地区| 欧美在线不卡视频| 毛片av中文字幕一区二区| 一区二区三区日韩欧美精品| 欧美一区二区精品| 亚洲美女一区| 久久九九国产| 性欧美1819sex性高清| 牛牛国产精品| 久久久免费观看视频| 欧美日韩免费在线| 美女网站久久| 国产欧美一区二区精品性色| 亚洲欧洲日本mm| 在线观看不卡| 午夜精品剧场| 先锋影音久久久| 欧美日韩国产高清视频| 欧美va亚洲va日韩∨a综合色| 欧美视频中文在线看| 亚洲国产日本| 红桃视频一区| 羞羞答答国产精品www一本| 亚洲一区二区三区四区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久高清免费观看| 国产精品区一区二区三区| 最新国产乱人伦偷精品免费网站| 一区二区在线视频播放| 欧美夜福利tv在线| 欧美一区二区三区视频在线| 国产精品电影网站| 99riav1国产精品视频| 日韩一级黄色av| 欧美日韩激情网| 亚洲精品之草原avav久久| 亚洲精品在线一区二区| 免费久久99精品国产| 欧美成人午夜免费视在线看片| 国产一区二区主播在线| 欧美一区二区三区在线看 | 136国产福利精品导航| 久久er精品视频| 老司机成人在线视频| 在线欧美一区| 免费观看久久久4p| 亚洲国产精品女人久久久| 亚洲精品视频免费观看| 欧美久久成人| 亚洲最新中文字幕| 午夜免费日韩视频| 国产区日韩欧美| 久久久久久久久久久一区| 欧美xxx在线观看| 亚洲免费av观看| 欧美视频你懂的| 欧美在线free| 亚洲国产精品va在线看黑人动漫 | 国产精品yjizz| 亚洲欧美日韩精品综合在线观看| 久久av一区| 亚洲第一网站免费视频| 欧美黄色影院| 亚洲综合精品自拍| 欧美sm视频| 亚洲一线二线三线久久久| 国产精品主播| 欧美成人在线免费观看| 一区二区免费在线观看| 久久久精品久久久久| 最新精品在线| 国产精品嫩草影院一区二区| 久久久久久久久蜜桃| 亚洲欧洲一区二区三区久久| 先锋资源久久| 亚洲国产高清在线观看视频| 欧美性猛交xxxx乱大交退制版 | 亚洲午夜高清视频| 老司机精品福利视频| 亚洲一区激情| 亚洲电影视频在线| 国产精品国产三级欧美二区| 久久天堂精品| 亚洲一二三区在线| 亚洲国产欧美日韩精品| 久久精品午夜| 亚洲一区二区三区四区视频| 伊人天天综合| 国产伦精品一区二区三区高清| 美女诱惑一区| 欧美一二区视频| 亚洲香蕉在线观看| 亚洲国产日韩一级| 麻豆成人在线播放| 性做久久久久久久免费看| 日韩视频免费| 亚洲国产片色| 伊人久久大香线蕉综合热线| 国产精品久久久久久影院8一贰佰| 女生裸体视频一区二区三区| 欧美一区二区免费视频| 正在播放欧美一区| 亚洲精品视频在线观看免费| 欧美国产专区| 欧美成人精品h版在线观看| 久久精品国产亚洲高清剧情介绍| 亚洲视频一区在线| 一区二区不卡在线视频 午夜欧美不卡'| 国外成人性视频| 国产一区二三区| 国产亚洲女人久久久久毛片| 国产精品久久久一区二区| 欧美日韩一区二区精品| 欧美人交a欧美精品| 欧美激情一区二区三区在线视频| 农夫在线精品视频免费观看| 浪潮色综合久久天堂| 葵司免费一区二区三区四区五区| 久久久综合网| 久久综合久久久久88| 久久亚洲一区二区三区四区| 久久婷婷蜜乳一本欲蜜臀| 久久久噜噜噜久噜久久 | 亚洲日本va午夜在线影院| 欧美成人伊人久久综合网| 欧美激情免费在线| 亚洲欧洲在线观看| 亚洲美女电影在线| 在线性视频日韩欧美| 亚洲少妇在线| 欧美一区二区视频观看视频| 欧美在线观看一区二区三区| 久久精品国产99国产精品澳门| 久久国产免费看| 女女同性女同一区二区三区91| 欧美精品三区| 国产精品伊人日日| 狠久久av成人天堂| 99国产麻豆精品| 午夜在线观看欧美| 欧美aⅴ99久久黑人专区| 亚洲国产午夜| 亚洲一区免费| 美女免费视频一区| 欧美性大战久久久久久久| 国产一区二区三区自拍| 亚洲欧洲精品一区| 香蕉久久夜色精品国产| 免费不卡在线观看av| 99re热这里只有精品视频| 先锋a资源在线看亚洲| 牛牛国产精品| 国产欧美一区二区精品性色| 亚洲日本成人| 欧美一二三区在线观看| 欧美激情中文字幕乱码免费| 中文有码久久| 免费在线亚洲欧美| 国产精品欧美久久久久无广告| 亚洲丁香婷深爱综合| 亚洲免费小视频| 欧美激情第六页| 欧美一级一区| 国产精品r级在线| 亚洲精品乱码久久久久久| 欧美中文在线字幕| 日韩视频一区二区在线观看 | 精品69视频一区二区三区| 夜夜嗨av一区二区三区| 蜜桃av一区二区在线观看| 亚洲午夜免费视频|