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

道。道。道

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

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

常用鏈接

搜索

  •  

最新評論

1)我們要起動WSA,這時個要用到的WSAStartup函數,用法如下:


   2)使用socket函數得到socket句柄,m_hSocket:=Socket(AF_INET, SOCK_RAW, IPPROTO_IP); 用法如下:


  在程序里m_hSocket為socket句柄,AF_INET,SOCK_RAW,IPPROTO_IP均為常量。

  3)定義SOCK_ADDR類型,跟據我們的網卡IP給Sock_ADDR類型附值,然后我們使用bind函數來綁定我們的網卡,Bind函

數用法如下:

4)用WSAIoctl來注冊WSA的輸入輸出組件,其用法如下:


  5)下面做死循環,在死循環塊里,來實現數據的接收。但是徇環中間要用Sleep()做延時,不然程序會出錯。

  6)在循環塊里,用recv函數來接收數據,recv函數用法如下:


  7)在buffer里就是我們接收回來的數據了,如果我們想要知道數據是什么地方發來的,那么,我們要定義一定IP包結

構,用CopyMemory()把IP信息從buffer里面讀出來就可以了,不過讀出來的是十六進制的數據需要轉換一下。

  看了封包捕獲的全過程序,對你是不是有點起發,然而在這里要告訴大家的是封包的獲得是很容易的,但是許多游戲

的封包都是加密的,如果你想搞清楚所得到的是什么內容還需要自己進行封包解密。


四種網絡游戲外掛的設計方法

[文章導讀]
?
在幾年前我看到別人玩網絡游戲用上了外掛,做為程序員的我心里實在是不爽


?

在幾年前我看到別人玩網絡游戲用上了外掛,做為程序員的我心里實在是不爽,想搞清楚這到底是怎么回事。就拿了一些

研究,小有心得,拿出來與大家共享,外掛無非就是分幾種罷了(依制作難度):


 1、動作式,所謂動作式,就是指用API發命令給窗口或API控制鼠標、鍵盤等,使游戲里的人物進行流動或者攻擊,最

早以前的“石器”外掛就是這種方式。(這種外掛完全是垃圾,TMD,只要會一點點API的人都知道該怎么做,不過這種外

掛也是入門級的好東東,雖然不能提高你的戰斗力,但是可以提高你的士氣)

  2、本地修改式,這種外掛跟傳統上的一些游戲修改器沒有兩樣,做這種外掛在編程只需要對內存地址有一點認識并

且掌握API就可以實現,“精靈”的外掛這是這種方式寫成的,它的難點在于找到那些地址碼,找地址一般地要借助于別

人的工具,有的游戲還有雙碼校驗,正正找起來會比較困難。(這種外掛,比上一種有一點點難度,但是這種外掛做起來

能夠用,也是有一定難度的啦~~,這種外掛可以很快提升你對內存地址的理解及應用,是你編程技術提高的好東東)

  3、木馬式,這種外掛的目的是幫外掛制作者偷到用戶的密碼(TMD,“爛”就一個字,不過要知已知彼所以還是要談

一下啦~~),做這種外掛有一定的難度,需要HOOK或鍵盤監視技術做底子,才可以完成,它的原理是先首截了用戶的帳號

密碼,然后發到指定郵箱。(我以前寫過這樣的東東,但是從來沒有用過,我知道這種東東很不道德,所以以后千萬別

用呀!)

  4、加速式,這種外掛可以加快游戲的速度……(對不起大家,這種東東我沒有實際做過,所以不能妄自評,慚愧)

  這幾種外掛之中,前三種可以用VB,Delphi等語言比較好實現,后兩種則要用VC等底層支持比較好的編程工具才好實

現。

  動作式外掛

  首先,先來談一下動作式的外掛,這也是我第一次寫外掛時做的最簡單的一種。

  記得還在“石器”時代的時候,我看到別人掛著一種軟件(外掛)人物就可以四外游走(當時我還不知道外掛怎么回

事),于是找了這種軟件過來研究(拿來后才聽別人說這叫外掛),發現這種東東其實實現起來并不難,仔佃看其實人物

的行走無非就是鼠標在不同的地方點來點去而已,看后就有實現這功能的沖動,隨后跑到MSDN上看了一些資料,發現這種

實現這幾個功能,只需要幾個簡單的API函數就可以搞定:

  1、首先我們要知道現在鼠標的位置(為了好還原現在鼠標的位置)所以我們就要用到API函數GetCursorPos,它的使

用方法如下:


   2、我們把鼠標的位置移到要到人物走到的地方,我們就要用到SetCursorPos函數來移動鼠標位置,它的使用方法如

下:


  3、模擬鼠標發出按下和放開的動作,我們要用到mouse_event函數來實現,具休使用方法用下:


  在它的dwFlags處,可用的事件很多如移動MOUSEEVENTF_MOVE,左鍵按下MOUSEEVENTF_LEFTDOWN,左鍵放開

MOUSEEVENTF_LEFTUP,具體的東東還是查一下MSDN吧~~~~~

   好了,有了前面的知識,我們就可以來看看人物移走是怎么實現的了:


  看了以上的代碼,是不是覺得人物的游走很簡單啦~~,舉一仿三,還有好多好東東可以用這個技巧實現(我早就說過

,TMD,這是垃圾外掛的做法,相信了吧~~~),接下來,再看看游戲里面自動攻擊的做法吧(必需游戲攻擊支持快捷鍵

的),道理還是一樣的,只是用的API不同罷了~~~,這回我們要用到的是keybd_event函數,其用法如下:

?

  我們還要知道掃描碼不可以直接使用,要用函數MapVirtualKey把鍵值轉成掃描碼,MapVirtualKey的具體使用方法如

下:


  好了,比說此快接鍵是CTRL+A,接下來讓我們看看實際代碼是怎么寫的:


  首先模擬按下了CTRL鍵,再模擬按下A鍵,再模擬放開A鍵,最后放開CTRL鍵,這就是一個模擬按快捷鍵的周期。

  (看到這里,差不多對簡易外掛有了一定的了解了吧~~~~做一個試試?如果你舉一仿三還能有更好的東東出來,這就

要看你的領悟能力了~~,不過不要高興太早這只是才開始,以后還有更復雜的東東等著你呢~~)


本地修改式外掛

  現在我們來看看,比動作式外掛更進一步的外掛——本地修改式外掛的整個制作過程進行一個詳細的分解。

  具我所知,本地修改式外掛最典型的應用就是在“精靈”游戲上面,因為我在近一年前(“精靈”還在測試階段),

我所在的公司里有很多同事玩“精靈”,于是我看了一下游戲的數據處理方式,發現它所發送到服務器上的信息是存在于

內存當中(我看后第一個感受是:修改這種游戲和修改單機版的游戲沒有多大分別,換句話說就是在他向服務器提交信息

之前修改了內存地址就可以了),當時我找到了地址于是修改了內存地址,果然,按我的想法修改了地址,讓系統自動提

交后,果然成功了~~~~~,后來“精靈”又改成了雙地址校檢,內存校檢等等,在這里我就不廢話了~~~~,OK,我們就來

看看這類外掛是如何制作的:

  在做外掛之前我們要對Windows的內存有個具體的認識,而在這里我們所指的內存是指系統的內存偏移量,也就是相

對內存,而我們所要對其進行修改,那么我們要對幾個Windows API進行了解,OK,跟著例子讓我們看清楚這種外掛的制

作和API的應用(為了保證網絡游戲的正常運行,我就不把找內存地址的方法詳細解說了):

  1、首先我們要用FindWindow,知道游戲窗口的句柄,因為我們要通過它來得知游戲的運行后所在進程的ID,下面就是

FindWindow的用法:


  2、我們GetWindowThreadProcessId來得到游戲窗口相對應進程的進程ID,函數用法如下:

DWORD GetWindowThreadProcessId(

HWND hWnd, // handle of window
LPDWORD lpdwProcessId // address of variable for process identifier
);

  3、得到游戲進程ID后,接下來的事是要以最高權限打開進程,所用到的函數OpenProcess的具體使用方法如下:


  在dwDesiredAccess之處就是設存取方式的地方,它可設的權限很多,我們在這里使用只要使用PROCESS_ALL_ACCESS

來打開進程就可以,其他的方式我們可以查一下MSDN。

  4、打開進程后,我們就可以用函數對存內進行操作,在這里我們只要用到WriteProcessMemory來對內存地址寫入數

據即可(其他的操作方式比如說:ReadProcessMemory等,我在這里就不一一介紹了),我們看一下WriteProcessMemory

的用法:


  5、下面用CloseHandle關閉進程句柄就完成了。

  這就是這類游戲外掛的程序實現部份的方法,好了,有了此方法,我們就有了理性的認識,我們看看實際例子,提升

一下我們的感性認識吧,下面就是XX游戲的外掛代碼,我們照上面的方法對應去研究一下吧:


  這個游戲是用了多地址對所要提交的數據進行了校驗,所以說這類游戲外掛制作并不是很難,最難的是要找到這些地

址。


木馬式外掛

  木馬式外掛,可能大多像木馬吧,是幫助做外掛的人偷取別人游戲的帳號及密碼的東東。因為網絡上有此類外掛的存

在,所以今天不得不說一下(我個人是非常討厭這類外掛的,請看過本文的朋友不要到處亂用此技術,謝謝合作)。要做

此類外掛的程序實現方法很多(比如HOOK,鍵盤監視等技術),因為HOOK技術對程序員的技術要求比較高并且在實際應用

上需要多帶一個動態鏈接庫,所以在文中我會以鍵盤監視技術來實現此類木馬的制作。鍵盤監視技術只需要一個.exe文件

就能實現做到后臺鍵盤監視,這個程序用這種技術來實現比較適合。

  在做程序之前我們必需要了解一下程序的思路:

  1、我們首先知道你想記錄游戲的登錄窗口名稱。

  2、判斷登錄窗口是否出現。

  3、如果登錄窗口出現,就記錄鍵盤。

  4、當窗口關閉時,把記錄信息,通過郵件發送到程序設計者的郵箱。

  第一點我就不具體分析了,因為你們比我還要了解你們玩的是什么游戲,登錄窗口名稱是什么。從第二點開始,我們

就開始這類外掛的程序實現之旅:

  那么我們要怎么樣判斷登錄窗口雖否出現呢?其實這個很簡單,我們用FindWindow函數就可以很輕松的實現了:


  實際程序實現中,我們要找到'xx'窗口,就用FindWindow(nil,'xx')如果當返回值大于0時表示窗口已經出現,那么

我們就可以對鍵盤信息進行記錄了。

  先首我們用SetWindowsHookEx設置監視日志,而該函數的用法如下:


  在這里要說明的是在我們程序當中我們要對HOOKPROC這里我們要通過寫一個函數,來實現而HINSTANCE這里我們直接

用本程序的HINSTANCE就可以了,具體實現方法為:


  而HOOKPROC里的函數就要復雜一點點:


  以上就是記錄鍵盤的整個過程,簡單吧,如果記錄完可不要忘記釋放呀,UnHookWindowsHookEx(hHook),而hHOOK,就

是創建setwindowshookex后所返回的句柄。

  我們已經得到了鍵盤的記錄,那么現在最后只要把記錄的這些信息發送回來,我們就大功造成了。其他發送這塊并不

是很難,只要把記錄從文本文件里邊讀出來,用DELPHI自帶的電子郵件組件發一下就萬事OK了。代碼如下:


  這個程序全部功能已經實現,編編試試。


加速型外掛

  原本我一直以為加速外掛是針對某個游戲而寫的,后來發現我這種概念是不對的,所謂加速外掛其實是修改時鐘頻率

達到加速的目的。

  以前DOS時代玩過編程的人就會馬上想到,這很簡單嘛不就是直接修改一下8253寄存器嘛,這在以前DOS時代可能可以

行得通,但是windows則不然。windows是一個32位的操作系統,并不是你想改哪就改哪的(微軟的東東就是如此霸氣,說

不給你改就不給你改),但要改也不是不可能,我們可以通過兩種方法來實現:第一是寫一個硬件驅動來完成,第二是用

Ring0來實現(這種方法是CIH的作者陳盈豪首用的,它的原理是修改一下IDE表->創建一個中斷門->進入Ring0->調用中斷

修改向量,但是沒有辦法只能用ASM匯編來實現這一切*_*,做為高級語言使用者慘啦!),用第一種方法用點麻煩,所以

我們在這里就用第二種方法實現吧~~~

  在實現之前我們來理一下思路吧:

  1、我們首先要寫一個過程在這個過程里嵌入匯編語言來實現修改IDE表、創建中斷門,修改向量等工作

  2、調用這個過程來實現加速功能

  好了,現在思路有了,我們就邊看代碼邊講解吧:

  首先我們建立一個過程,這個過程就是本程序的核心部份:


  最核心的東西已經寫完了,大部份讀者是知其然不知其所以然吧,呵呵,不過不知其所以然也然。下面我們就試著用

一下這個過程來做一個類似于“變速齒輪”的一個東東吧!

  先加一個窗口,在窗口上放上一個trackbar控件把其Max設為20,Min設為1,把Position設為10,在這個控件的

Change事件里寫上:


  因為windows默認的值為$1742,所以我們把1742做為基數,又因為值越小越快,反之越慢的原理,所以寫了這樣一個

公式,好了,這就是“變速齒輪”的一個Delphi+ASM版了(只適用于win9X),呵呵,試一下吧,這對你幫助會很大的,

呵呵。

  在win2000里,我們不可能實現在直接對端口進行操作,Ring0也失了效,有的人就會想到,我們可以寫驅動程序來完

成呀,但在這里我告訴你,windows2000的驅動不是一個VxD就能實現的,像我這樣的低手是寫不出windows所用的驅動WDM

的,沒辦法,我只有借助外力實現了,ProtTalk就是一個很好的設備驅動,他很方便的來實現對低層端口的操作,從而實

現加速外掛。

  1、我們首先要下一個PortTalk驅動,他的官方網站是http://www.beyondlogic.org/

  2、我們要把里面的prottalk.sys拷貝出來。

  3、建立一個Protalk.sys的接口(我想省略了,大家可以上http://www.freewebs.com/liuyue/porttalk.pas下個pas

文件自己看吧)

  4、實現加速外掛。

  下面就講一下這程序的實現方法吧,如果說用ProtTalk來操作端口就容易多了,比win98下用ring權限操作方便。

  1、新建一個工程,把剛剛下的接口文件和Protalk.sys一起拷到工程文件保存的文件夾下。

  2、我們在我們新建的工程加入我們的接口文件


  3、我們建立一個過程


  4、先加一個窗口,在窗口上放上一個trackbar控件把其Max設為20,Min設為1,把Position設為10,在這個控件的

Change事件里寫上:


  就這么容易。


在內存中修改數據的網游外掛

[文章導讀]
?
現在很多游戲都是把一些信息存入內存單元的,那么我們只需要修改具體內存值就能修改游戲中的屬性,很多網絡游戲

不外于此


?

  現在很多游戲都是把一些信息存入內存單元的,那么我們只需要修改具體內存值就能修改游戲中的屬性,很多網絡游

戲也不外于此。


  曾幾何時,一些網絡游戲也是可以用內存外掛進行修改的,后來被發現后,這些游戲就把單一內存地址改成多內存地

址校驗,加大了修改難度,不過仍然可以通過內存分析器可以破解的。諸如“FPE”這樣的軟件便提供了一定的內存分析

功能。

  “FPE”是基于內存外掛的佼佼者,是家喻戶曉的游戲修改軟件。很多同類的軟件都是模仿“FPE”而得到玩家的認可

。而“FPE”實現的技術到現在都沒有公開,很多人只能夠通過猜測“FPE”的實現方法,實現同類外掛。筆者也曾經模仿

過“FPE”實現相應的功能,如“內存修改”、“內存查詢”等技術。稍后會對此技術進行剖析。

  既然要做內存外掛,那么就必須對Windows的內存機制有所了解。計算機的內存(RAM)總是不夠用的,在操作系統中內

存就有物理內存和虛擬內存之分,因為程序創建放入物理內存的地址都是在變化的,所以在得到游戲屬性時并不能夠直接

訪問物理內存地址。在v86模式下,段寄存器使用方法與實模式相同,那么可以通過段寄存器的值左移4位加上地址偏移量

就可以得到線性地址,而程序創建時在線性地址的中保留4MB-2GB的一段地址,游戲中屬性便放于此。在windows中把虛擬

內存塊稱之為頁,而每頁為4KB,在訪問內存時讀取游戲屬性時,為了不破壞數據完整性的快速瀏覽內存地址值,最好一

次訪問一頁。

  在操作進程內存時,不需要再使用匯編語言,Windows中提供了一些訪問進程內存空間的API,便可以直接對進程內存

進行操作。但初學者一般掌握不了這一項技術,為了使初學者也能夠對內存進行操作,做出基于內存控制的外掛,筆者把

一些內存操作及一些內存操作邏輯進行了封裝,以控件形式提供給初學者。控件名為:MpMemCtl。

  初學者在使用此控件時,要先安裝外掛引擎控件包(在此后的每篇文章中外掛引擎控件包僅提供與該文章相應的控制

控件),具體控件安裝方式,請參閱《Delphi指南》,由于篇幅所限,恕不能詳細提供。

  在引擎安裝完成后,便可以在Delphi中的組件欄內,找到[MP GameControls]控件組,其中可以找到[MpMemCtl]控件

。初學者可以使用此控件可以對內存進行控制。

  一、 得到進程句柄

  需要操作游戲內存,那么首先必須確認要操作的游戲,而游戲程序在運行時所產生的每一個進程都有一個唯一的句柄。

  使用控件得到句柄有三種方法:

  1、 通過控件打開程序得到句柄。

  在控件中,提供了startProgram方法,通過該方法,可以打開程序得到進程句柄,并且可以返回進程信息。


  該方法提供了兩個參數,第一個參數為要打開的程序路徑,第二個參數為打開程序后所創建進程的進程信息。使用這

個方法在得到進程信息的同時,并給控件的ProcHandle(進程句柄)屬性進行了附值,這時可以使用控件直接對內存進程

讀寫操作。其應用實例如下:


  2、通過控件根據程序名稱得到句柄。

  在控件中,對系統運行進程也有了相應的描述,控件提供了兩個方法,用于根據程序名稱得到相應的進程句柄。

getProcIDs()可以得到系統現在所運行的所有程序的名稱列表。getProcID()可以通過所運行程序名稱,得到相應進程的

句柄。


  其應用實例如下:

  首先可以通過getProcIDs()并把參數列表返回ComboBox1.Items里:


  接著可以通過getProcID()得到相應的進程句柄,并給控件的ProcHandle(進程句柄)屬性進行了附值,這時可以使

用控件直接對內存進程讀寫操作。


  3、通過控件根據窗口名稱得到句柄。

  在控件中,控件提供了兩個方法,用于根據窗口名稱得到相應的進程句柄。可以通過getALLWindow()得到所有在進程

中運行的窗口。getWinProcHandle()可以通過相應的窗口名稱,得到相應的進程的句柄。


  其應用實例如下:

  首先可以通過getALLWindow ()并把參數列表返回ComboBox1.Items里:


  接著可以通過getWinProcHandle ()得到相應的進程句柄,并給控件的ProcHandle(進程句柄)屬性進行了附值,這

時可以使用控件直接對內存進程讀寫操作。


  二、使游戲暫停

  在程序中,為了便于更好的得到游戲的當前屬性。在控件中提供了游戲暫停方法。只需要調用該方法,游戲便可以自

由的暫停或啟動。該方法為:pauseProc()


  控制類型只能夠傳入參數0或1,0代表使游戲暫停,1代表取消暫停。其應用實例如下:


  三、讀寫內存值

  游戲屬性其實寄存在內存地址值里,游戲中要了解或修改游戲屬性,可以通過對內存地值的讀出或寫入完成。

  通過控件,要讀寫內存地址值很容易。可以通過調用控件提供的getAddressValue()及setAddressValue()兩個方

法即可,在使用方法之前,要確認的是要給ProcHandle屬性進行附值,因為對內存的操作必須基于進程。給ProcHandle屬

性附值的方法,在上文中已經介紹。無論是對內存值進行讀還是進行寫,都要明確所要操作的內存地址。


  要注意的是,傳入內存地址時,內存地址必須為Pointer型。其應用實例如下:

  讀取地址值(如果“主角”等級所存放的地址為4549632):


  這時aValue變量里的值為內存地址[4549632]的值。

  寫入地址值:


  通過該方法可以把要修改的內存地址值改為87,即把“主角”等級改為87。

  四、內存地址值分析

  在游戲中要想要到游戲屬性存放的內存地址,那么就對相應內存地址進行內存分析,經過分析以后才可得到游戲屬性

存放的人存地址。

  控件提供兩種基于內存地址的分析方法。一種是按精確地址值進行搜索分析,另一種是按內存變化增減量進行搜索分

析。

  1、 如果很明確的知道當前想要修改的地址值,那么就用精確地址值進行搜索分析

  在游戲中,需要修改人物的經驗值,那么首先要從游戲畫面上獲得經驗值信息,如游戲人物當前經驗值為9800,需要

把經驗值調高,那么這時候就需要對人物經驗值在內存中搜索得到相應的內存地址,當然很可能在內存中地址值為9800的

很多,第一次很可能搜索出若干個地址值為9800的地址。等待經驗值再有所變化,如從9800變為了20000時,再次進行搜

索,那么從剛剛所搜索到的地址中,便可以進一步獲得范圍更少的內存地址,以此類推,那么最后可得到經驗值具體存放

的地址。

  如要用控件來實現內存值精確搜索,其實方法很簡單,只需要調用該控件的Search()方法即可。但是在搜索之前要

確認搜索的范圍,正如前文中所說:“而程序創建時在線性地址的中保留4MB-2GB的一段地址”,所以要搜索的地址應該

是4MB-2GB之間,所以要把控件的MaxAddress屬性設為2GB,把控件的MinAddress屬性設為4MB。還有一個需要確認的是需

要搜索的值,那么應該把SearchValue屬性設置為當前搜索的值。如果需要顯示搜索進度那么可以把ShowGauge屬性掛上一

個相應的TGauge控件(該控件為進度條控件)。


  在搜索分析時為了提高搜索效率、實現業務邏輯,那么需要傳入一個參數,從而確認是否是第一次進行內存。其應用

實例如下:


  2、 如果不明確當前想要修改的地址值,只知道想要修改的值變大或變小,那么就按內存變化增減量進行搜索分析。

  如有些游戲人物血值不顯示出來,但要對人物血值進行修改,那么只有借助于內存量增減變化而進行搜索分析出該

人物血值存放的地址。如果人物被怪物打了一下,那么人物血值就會減少,那么這時候就用減量進行搜索分析,如果人物

吃了“血”人物血值就會增加,那么這時候就用增量進行搜索分析。經過不斷搜索,最后會把范圍放血值的內存地址給搜

索出來。

  如要用控件來實現內存值精確搜索,其實方法很簡單,只需要調用該控件的compare()方法即可。MaxAddress、

MinAddress屬性設置上面章節中有詳細介紹,在此不再重提。在此分析中不需要再指定SearchValue屬性。如果需要顯示

搜索進度那么可以把ShowGauge屬性掛上一個相應的TGauge控件。


  在搜索分析時為了提高搜索效率、實現業務邏輯,那么需要傳入一個參數,從而確認是否是第一次進行內存。搜索分

析類型有兩種:如果參數值為0,那么就代表增量搜索。如果參數值為1,那么就代表減量搜索。其應用實例如下:


  五、得到內存地址值

  在控件中,提供獲得分析后內存地址列表的方法,只需要調用getAddressList()方法,便可以獲得分析過程中或分析

結果地址列表。但如果使用的是按內存變化增減量進行搜索分析的方法,那么第一次可能會搜索出來很多的地址,致使返

回速度過長,那么建議使用getAddressCount()方法確定返回列表為一定長度后才給予返回。


  其應用實例如下:


  通過以上五個步驟,便可以整合成一個功能比較完備的,基于內存控制方法的游戲外掛。有了“FPE”的關鍵部份功

能。利用此工具,通過一些方法,不僅僅可以分析出來游戲屬性單內存地址,而且可以分析出一部份多內存游戲屬性存放

地址。

posted on 2006-11-18 16:55 獨孤九劍 閱讀(578) 評論(0)  編輯 收藏 引用 所屬分類: Win32Visual C++ 8.0misc
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品国产免费观看| 亚洲国产欧美日韩精品| 久久精品视频在线免费观看| 亚洲一区日韩| 亚洲免费影院| 久久精品国产v日韩v亚洲 | 在线中文字幕一区| 中文精品视频一区二区在线观看| 一区二区日韩伦理片| 亚洲欧美一区二区激情| 久久免费视频观看| 欧美极品一区| 国产一区二区按摩在线观看| 亚洲福利一区| 亚洲欧美精品伊人久久| 欧美成人乱码一区二区三区| 一个色综合导航| 久久亚洲图片| 欧美日韩在线播放三区| 国产中文一区二区| 在线午夜精品自拍| 久久久一二三| 一本色道久久88综合日韩精品| 欧美一区二区三区视频免费播放| 欧美xxxx在线观看| 国产日韩欧美一区在线| 一本色道久久综合狠狠躁篇的优点 | 亚洲日产国产精品| 午夜在线不卡| 亚洲国产精品成人综合色在线婷婷| 亚洲免费不卡| 蜜臀久久99精品久久久画质超高清| 欧美视频在线一区| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲欧美日本在线| 亚洲精品国产系列| 欧美亚日韩国产aⅴ精品中极品| 女仆av观看一区| 亚洲欧洲视频在线| 久久亚洲视频| 国产综合久久久久影院| 亚洲调教视频在线观看| 欧美国产激情| 久久久久se| 国产视频亚洲精品| 欧美一区二区啪啪| 亚洲一区二区三区四区五区午夜| 欧美激情精品久久久久久免费印度| 韩国一区二区三区美女美女秀| 亚洲欧美在线网| 在线一区欧美| 国产精品久久久久久久电影 | 午夜精品区一区二区三| 亚洲乱码国产乱码精品精可以看| 麻豆精品视频在线| 亚洲韩国青草视频| 欧美激情视频免费观看| 美女诱惑一区| 亚洲美女视频网| 亚洲激情女人| 欧美日本精品在线| 亚洲综合视频在线| 亚洲一区免费观看| 国产日韩欧美不卡在线| 久久久久国产精品人| 久久精品30| 亚洲国产成人精品视频| 亚洲电影免费在线观看| 欧美精品在线免费| 亚洲影音一区| 午夜视频一区在线观看| 狠狠久久婷婷| 亚洲国产欧美一区二区三区同亚洲| 能在线观看的日韩av| 一区二区三区日韩| 亚洲丝袜av一区| 国内久久婷婷综合| 91久久嫩草影院一区二区| 欧美视频在线一区| 久久久久久亚洲精品杨幂换脸 | 久久视频免费观看| 99热免费精品| 亚洲在线中文字幕| 尤妮丝一区二区裸体视频| 亚洲国产午夜| 国产欧美欧洲在线观看| 欧美成人a视频| 欧美日韩在线播放| 麻豆九一精品爱看视频在线观看免费| 久久综合九色欧美综合狠狠| 一本色道久久综合亚洲精品不卡| 久久亚洲精品视频| 亚洲永久字幕| 久久精品1区| 99re8这里有精品热视频免费| 亚洲深爱激情| 日韩视频免费观看高清完整版| 亚洲综合日韩| 亚洲经典在线| 亚洲免费网站| 999亚洲国产精| 久久精品国亚洲| 亚洲欧美日韩直播| 欧美黑人一区二区三区| 欧美在线视频一区二区三区| 欧美激情综合| 欧美二区在线播放| 国产亚洲欧美日韩一区二区| 一区二区激情| 亚洲精品欧美一区二区三区| 久久国内精品视频| 亚洲欧美日韩精品久久亚洲区| 欧美 日韩 国产精品免费观看| 性欧美办公室18xxxxhd| 欧美黄色影院| 欧美国产精品一区| 激情五月婷婷综合| 欧美亚洲专区| 久久国产精品色婷婷| 国产精品久久久999| 亚洲伦理精品| 一本色道久久综合一区| 裸体素人女欧美日韩| 久色婷婷小香蕉久久| 国产一区二区日韩精品欧美精品| 在线亚洲精品| 午夜精品网站| 国产美女精品| 先锋影音国产一区| 欧美专区日韩视频| 国产欧亚日韩视频| 久久国产精品第一页| 久久男人资源视频| 狠狠久久婷婷| 美女主播精品视频一二三四| 老司机精品视频一区二区三区| 黄色精品一区| 久久免费视频观看| 欧美激情视频在线免费观看 欧美视频免费一| 狠狠色伊人亚洲综合成人| 久久精品国产精品 | 亚洲一区二区三区久久| 欧美日本网站| 亚洲一区二区三区精品视频| 午夜一区不卡| 伊人影院久久| 欧美激情导航| 一区二区激情小说| 欧美综合77777色婷婷| 黄色亚洲免费| 欧美插天视频在线播放| 亚洲精选一区二区| 欧美一二三区在线观看| 国产一区二区三区免费不卡| 久久久美女艺术照精彩视频福利播放| 美女精品网站| 一区二区日韩免费看| 国产精品视频网址| 久久艳片www.17c.com| 欧美电影在线观看完整版| 亚洲精选在线观看| 欧美在线你懂的| 亚洲人午夜精品免费| 欧美日韩中国免费专区在线看| 午夜一区不卡| 亚洲精品护士| 久久久亚洲国产天美传媒修理工| 亚洲剧情一区二区| 国产日韩一区二区三区在线| 欧美暴力喷水在线| 亚洲男人影院| 欧美国产视频一区二区| 亚洲免费一区二区| 亚洲国产精品第一区二区| 国产精品久久久久久久浪潮网站| 久久国产免费看| 一区二区久久久久| 欧美高清自拍一区| 久久亚洲精品欧美| 亚洲欧美在线免费观看| 亚洲啪啪91| 狠狠色2019综合网| 国产精品高精视频免费| 美女视频黄 久久| 亚洲欧美日韩精品久久奇米色影视 | 99精品视频一区| 麻豆精品一区二区av白丝在线| 亚洲男人影院| 99精品视频一区| 亚洲大片一区二区三区| 国产精品免费在线| 欧美日韩亚洲综合一区| 免费欧美在线视频| 久久久精品午夜少妇| 亚洲欧美在线网| 一本大道av伊人久久综合| 亚洲国产精品国自产拍av秋霞| 久久综合网络一区二区| 久久久久久久尹人综合网亚洲| 亚洲欧美成人|