亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mouspy.bat

?? KmdKit 匯編下開發驅動的工具 由俄羅斯某強男開發
?? BAT
?? 第 1 頁 / 共 3 頁
字號:
;@echo off
;goto make

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
;  MouSpy - This is an example of a simple legacy mouse filter driver
;
;  WARNING: You will fail to attach to USB-mouse stack
;
;  We create two device objects. The first one is a control device. It provides
;  the interface to our user-mode client. The second device is a filter device.
;  It intercepts mouse data being passed from the mouse class driver.
;  So, it is an upper filter.  The intercepted data is collected in the list.
;  Upon timer triggering we signal shared event object to notify our user-mode
;  client about there is something interesting for it.  The user-mode client
;  issues control request and we copy all info into the buffer.
;
;  Written by Four-F (four-f@mail.ru)
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.486
.model flat, stdcall
option casemap:none

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  I N C L U D E   F I L E S                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

include \masm32\include\w2k\ntstatus.inc
include \masm32\include\w2k\ntddk.inc
include \masm32\include\w2k\ntoskrnl.inc
include \masm32\include\w2k\ntddmou.inc
include \masm32\include\w2k\hal.inc

includelib \masm32\lib\w2k\ntoskrnl.lib
includelib \masm32\lib\w2k\hal.lib

include \masm32\Macros\Strings.mac

include ..\common.inc

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       M A C R O S                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

; spin lock macros

LOCK_ACQUIRE MACRO lck:REQ
	; Returns old IRQL in al
	IF (OPATTR (lck)) AND 00010000y
		;; Is a register value
		IFDIFI <lck>, <ecx>	;; don't move ecx onto itself
			mov ecx, lck
		ENDIF
	ELSEIF (OPATTR (lck)) AND 01000000y
		;; relative to SS
		lea ecx, lck
	ELSE
		mov ecx, offset lck
	ENDIF
	fastcall KfAcquireSpinLock, ecx
ENDM

LOCK_RELEASE MACRO lck:REQ, NewIrql:REQ
	IF (OPATTR (lck)) AND 00010000y
		;; Is a register value
		IFDIFI <lck>, <ecx>	;; don't move ecx onto itself
			mov ecx, lck
		ENDIF
	ELSEIF (OPATTR (lck)) AND 01000000y
		;; relative to SS
		lea ecx, lck
	ELSE
		mov ecx, offset lck
	ENDIF

	IFDIFI <NewIrql>, <dl>	;; don't move dl onto itself
		mov dl, NewIrql
	ENDIF

	.if dl == DISPATCH_LEVEL
		fastcall KefReleaseSpinLockFromDpcLevel, ecx
	.else
		and edx, 0FFh		;; for shure (KIRQL is BYTE)
		fastcall KfReleaseSpinLock, ecx, edx
	.endif
ENDM

; mutex macros

MUTEX_INIT MACRO mtx:REQ
	IF (OPATTR (mtx)) AND 00010000y
		;; Is a register value
		invoke KeInitializeMutex, mtx, 0
	ELSEIF (OPATTR (mtx)) AND 01000000y
		;; relative to SS
		invoke KeInitializeMutex, addr mtx, 0
	ELSE
		invoke KeInitializeMutex, offset mtx, 0
	ENDIF
ENDM

MUTEX_ACQUIRE MACRO mtx:REQ
	IF (OPATTR (mtx)) AND 00010000y
		;; Is a register value
		invoke KeWaitForMutexObject, mtx, Executive, KernelMode, FALSE, NULL
	ELSEIF (OPATTR (mtx)) AND 01000000y
		;; relative to SS
		invoke KeWaitForMutexObject, addr mtx, Executive, KernelMode, FALSE, NULL
	ELSE
		invoke KeWaitForMutexObject, offset mtx, Executive, KernelMode, FALSE, NULL
	ENDIF
ENDM

MUTEX_RELEASE MACRO mtx:REQ
	IF (OPATTR (mtx)) AND 00010000y
		;; Is a register value
		invoke KeReleaseMutex, mtx, FALSE
	ELSEIF (OPATTR (mtx)) AND 01000000y
		;; relative to SS
		invoke KeReleaseMutex, addr mtx, FALSE
	ELSE
		invoke KeReleaseMutex, offset mtx, FALSE
	ENDIF
ENDM

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     S T R U C T U R E S                                           
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

MOUSE_DATA_ENTRY STRUCT
	ListEntry	LIST_ENTRY	<>		; For memory blocks tracking.
	MouseData	MOUSE_DATA	<>
MOUSE_DATA_ENTRY ENDS

FiDO_DEVICE_EXTENSION STRUCT

	; The top of the stack before this filter was added

	pNextLowerDeviceObject	PDEVICE_OBJECT	?

	; The referenced pointer to file object that represents
	; the corresponding device object.  This pointer we get
	; from IoGetDeviceObjectPointer and must dereference
	; while detaching.

	pTargetFileObject	PFILE_OBJECT	?

FiDO_DEVICE_EXTENSION ENDS
PFiDO_DEVICE_EXTENSION typedef ptr FiDO_DEVICE_EXTENSION

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                 R E A D O N L Y    D A T A                                        
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.const

CCOUNTED_UNICODE_STRING	"\\Device\\MouSpy", g_usControlDeviceName, 4
CCOUNTED_UNICODE_STRING	"\\DosDevices\\MouSpy", g_usSymbolicLinkName, 4

CCOUNTED_UNICODE_STRING	"\\Device\\PointerClass0", g_usTargetDeviceName, 4

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                              U N I N I T I A L I Z E D  D A T A                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.data?

g_pDriverObject					PDRIVER_OBJECT	?

g_pControlDeviceObject			PDEVICE_OBJECT	?	; Control Device Object pointer
g_pFilterDeviceObject			PDEVICE_OBJECT	?	; Filter Device Object pointer

g_pEventObject					PKEVENT			?
; This spin-lock let us be sure that no one will dereference event object pointer
; while we compare it agaist NULL and then call KeSetEvent in our completion routine
g_EventSpinLock					KSPIN_LOCK		?	; locks mouse data list

g_fCDO_Opened					BOOL			?
g_fFiDO_Attached				BOOL			?
g_fSpy							BOOL			?

g_dwPendingRequests				DWORD			?

align 4
g_pMouseDataLookaside			PNPAGED_LOOKASIDE_LIST	?

align 4
g_MouseDataListHead				LIST_ENTRY		<>	; accessed under lock

; Holds number of MOUSE_DATA_ENTRYs in list. Should not exceed MAX_MOUSE_DATA_ENTRIES.
g_cMouseDataEntries				SDWORD			?	; accessed under lock

; This spin-lock let us be sure that only one thread is working with mouse data at a time
g_MouseDataSpinLock				KSPIN_LOCK		?

; This mutex let us be sure no one will try to do some unpredictable things.
; For example: no one can try to attach while we in the middle of the detaching.
align 4
g_mtxCDO_State					KMUTEX		<>

g_fInvertButtons				BOOL		?
g_fInvertMovement				BOOL		?

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         C O D E                                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

.code

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                              _ExAllocateFromNPagedLookasideList                                   
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

_ExAllocateFromNPagedLookasideList proc uses esi Lookaside:PNPAGED_LOOKASIDE_LIST

;; Function Description:
;;    This function removes (pops) the first entry from the specified
;;    nonpaged lookaside list.
;;
;; Arguments:
;;    Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
;;
;; Return Value:
;;    If an entry is removed from the specified lookaside list, then the
;;    address of the entry is returned as the function value. Otherwise,
;;    NULL is returned.

	mov esi, Lookaside
	assume esi:ptr NPAGED_LOOKASIDE_LIST
	mov ecx, esi
	inc [esi].L.TotalAllocates
	lea edx, [esi]._Lock
	fastcall ExInterlockedPopEntrySList, ecx, edx
	.if eax == NULL
		push [esi].L.Tag
		inc [esi].L.AllocateMisses
		push [esi].L._Size
		push [esi].L._Type
		call [esi].L.Allocate
	.endif
	assume esi:nothing

	ret

_ExAllocateFromNPagedLookasideList endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                  _ExFreeToNPagedLookasideList                                     
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

_ExFreeToNPagedLookasideList proc Lookaside:PNPAGED_LOOKASIDE_LIST, Entry:PVOID

;; Function Description:
;;    This function inserts (pushes) the specified entry into the specified
;;    nonpaged lookaside list.
;;
;; Arguments:
;;    Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
;;    Entry - Supples a pointer to the entry that is inserted in the lookaside list.
;;
;; Return Value:
;;    None.

	mov ecx, Lookaside
	assume ecx:ptr NPAGED_LOOKASIDE_LIST
	inc [ecx].L.TotalFrees
	mov ax, [ecx].L.ListHead.Depth
	.if ax >= [ecx].L.Depth
		push Entry
		inc [ecx].L.FreeMisses
		call [ecx].L.Free
	.else
		mov edx, Entry
		lea eax, [ecx]._Lock
		fastcall ExInterlockedPushEntrySList, ecx, edx, eax
	.endif
	assume ecx:nothing

	ret

_ExFreeToNPagedLookasideList endp
		
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         AddEntry                                                  
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

AddEntry proc uses ebx pMouseData:PMOUSE_DATA

; We have to access g_cMouseDataEntries and g_MouseDataListHead
; under lock protection. Since mouse movement occur relatively rare
; we simply protect whole code.  So, this proc may be optimized a little.

	LOCK_ACQUIRE g_MouseDataSpinLock
	mov bl, al			; old IRQL

	.if g_cMouseDataEntries < MAX_MOUSE_DATA_ENTRIES

		; Allocate new entry from lookaside list
	
		invoke _ExAllocateFromNPagedLookasideList, g_pMouseDataLookaside
		.if eax != NULL

			mov edx, eax
			assume edx:ptr MOUSE_DATA_ENTRY

			mov ecx, pMouseData
			assume ecx:ptr MOUSE_DATA

			mov eax, [ecx].LastX
			mov [edx].MouseData.LastX, eax

			mov eax, [ecx].LastY
			mov [edx].MouseData.LastY, eax

			mov eax, [ecx].Buttons
			mov [edx].MouseData.Buttons, eax

			assume ecx:nothing

			; Add to head

			lea ecx, [edx].ListEntry
			InsertHeadList addr g_MouseDataListHead, ecx

			assume edx:nothing

			inc g_cMouseDataEntries

		.endif
	.endif

	LOCK_RELEASE g_MouseDataSpinLock, bl

	ret

AddEntry endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       RemoveEntry                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

RemoveEntry proc uses ebx pBuffer:PVOID

local cbCopied:DWORD

	and cbCopied, 0
	
	; We have to access g_cMouseDataEntries and g_MouseDataListHead
	; under lock protection. Since mouse movements occur relatively rare
	; we simply protect whole code.  So, this proc may be optimized a little.
	
	LOCK_ACQUIRE g_MouseDataSpinLock
	mov bl, al							; old IRQL

	IsListEmpty addr g_MouseDataListHead
	.if eax != TRUE							; Is there something to remove?
			
		; Remove from tail

		RemoveTailList addr g_MouseDataListHead

		mov edx, eax						; edx -> MOUSE_DATA_ENTRY.ListEntry
		sub edx, MOUSE_DATA_ENTRY.ListEntry	; edx -> MOUSE_DATA_ENTRY

		assume edx:ptr MOUSE_DATA_ENTRY

		mov ecx, pBuffer
		assume ecx:ptr MOUSE_DATA

		mov eax, [edx].MouseData.LastX
		mov [ecx].LastX, eax

		mov eax, [edx].MouseData.LastY
		mov [ecx].LastY, eax

		mov eax, [edx].MouseData.Buttons
		mov [ecx].Buttons, eax

		mov cbCopied, sizeof MOUSE_DATA

		assume ecx:nothing
		assume edx:nothing

		; Put a block back onto lookaside list

		invoke _ExFreeToNPagedLookasideList, g_pMouseDataLookaside, edx

		dec g_cMouseDataEntries

	.endif

	LOCK_RELEASE g_MouseDataSpinLock, bl

	mov eax, cbCopied
	ret

RemoveEntry endp

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       MouseAttach                                                 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

MouseAttach proc

local status:NTSTATUS
local pTargetDeviceObject:PDEVICE_OBJECT
local pTargetFileObject:PFILE_OBJECT

	invoke DbgPrint, $CTA0("MouSpy: Entering MouseAttach\n")

	mov status, STATUS_UNSUCCESSFUL

	.if ( g_pFilterDeviceObject != NULL )

		; Filter device object exist and should be attached

		mov status, STATUS_SUCCESS

	.else

		; Let's attach to mouse device stack
		;
		; Create unnamed device because filter device objects should never be named.
		; We are going to attach it to existing mouse device stack. So no one may
		; directly open filter device by name.
		
		mov eax, g_pControlDeviceObject
		mov ecx, (DEVICE_OBJECT PTR [eax]).DriverObject

		invoke IoCreateDevice, ecx, sizeof FiDO_DEVICE_EXTENSION, NULL, \
					FILE_DEVICE_UNKNOWN, 0, FALSE, addr g_pFilterDeviceObject
		.if eax == STATUS_SUCCESS
	
			; Supply a name for any device object in the stack we are about to attach to.
			; IoGetDeviceObjectPointer returns the pointer to upper most device object in the stack.

			invoke IoGetDeviceObjectPointer, addr g_usTargetDeviceName, FILE_READ_DATA, \
										addr pTargetFileObject, addr pTargetDeviceObject
			.if eax == STATUS_SUCCESS
    
				; Here we have two pointers: pointer to the topmost device in the mouse stack
				; and pointer to the corresponding file object.  IoGetDeviceObjectPointer
				; references file object but not the device object.
				;
				; We are just one line from attaching to our target.  We must prevent
				; our driver from unloading while it intercepts mouse IRPs.
				; We could use RemoveLock, but the easiest solution is to remove pointer
				; to DriverUnload routine from driver object. OK, let's do it.

				mov eax, g_pDriverObject
				and (DRIVER_OBJECT PTR [eax]).DriverUnload, NULL
			
				; Now our driver is not unloadable

				invoke IoAttachDeviceToDeviceStack, g_pFilterDeviceObject, pTargetDeviceObject
				.if eax != NULL

					mov edx, eax

					; Fill filter device object extension

					mov ecx, g_pFilterDeviceObject
					mov eax, (DEVICE_OBJECT ptr [ecx]).DeviceExtension
					assume eax:ptr FiDO_DEVICE_EXTENSION
					mov [eax].pNextLowerDeviceObject, edx
					push pTargetFileObject
					pop [eax].pTargetFileObject
					assume eax:nothing

					; We need to copy DeviceType and Characteristics from the target device object

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产在线观看| 欧美乱妇一区二区三区不卡视频| 图片区小说区国产精品视频| 亚洲精品视频在线看| 亚洲美女少妇撒尿| 日韩一区中文字幕| 亚洲一级二级在线| 亚洲成人动漫av| 免费成人在线观看视频| 美脚の诱脚舐め脚责91 | 亚洲免费观看高清| 伊人色综合久久天天| 一片黄亚洲嫩模| 日韩中文字幕1| 国产一区在线观看麻豆| 大尺度一区二区| 色综合中文字幕国产 | 91精品国产品国语在线不卡| 日韩欧美国产一区在线观看| 久久午夜羞羞影院免费观看| **性色生活片久久毛片| 午夜av区久久| 国产福利电影一区二区三区| va亚洲va日韩不卡在线观看| 色94色欧美sute亚洲线路一ni| 欧美性受xxxx黑人xyx性爽| 欧美一区二区三区男人的天堂| 精品国产伦一区二区三区观看方式| 国产女人水真多18毛片18精品视频| 亚洲三级视频在线观看| 三级欧美在线一区| 国产91精品久久久久久久网曝门| 色婷婷精品大视频在线蜜桃视频 | 丝袜诱惑制服诱惑色一区在线观看| 日韩国产在线观看一区| 国产精品18久久久久久久网站| 91亚洲国产成人精品一区二区三| 欧美性色aⅴ视频一区日韩精品| 欧美刺激脚交jootjob| 日韩伦理av电影| 六月婷婷色综合| 在线观看三级视频欧美| 69堂国产成人免费视频| 国产欧美日韩精品在线| 五月综合激情网| 成人黄动漫网站免费app| 欧美一区二区高清| 一区二区三区国产| 成人在线一区二区三区| 欧美一区二区三区影视| 依依成人精品视频| 成人污视频在线观看| 精品久久久久久最新网址| 亚洲欧美一区二区三区极速播放| 极品少妇xxxx精品少妇偷拍| 欧美视频完全免费看| 国产精品久久免费看| 久久99热这里只有精品| 欧美性视频一区二区三区| 亚洲天堂成人在线观看| 成人免费va视频| 国产日韩亚洲欧美综合| 国内精品自线一区二区三区视频| 欧美精品xxxxbbbb| 亚洲国产精品自拍| 在线欧美一区二区| 亚洲精品成人a在线观看| 高清不卡一区二区| 国产亚洲欧美一级| 国产一区二区三区四区五区美女| 日韩视频一区在线观看| 日本麻豆一区二区三区视频| 欧美日韩在线精品一区二区三区激情 | 国产精品综合网| 欧美成人精精品一区二区频| 日韩专区在线视频| 91精品欧美久久久久久动漫| 奇米影视7777精品一区二区| 日韩视频在线永久播放| 卡一卡二国产精品 | 欧美精品一区二区久久婷婷 | 国产成人自拍网| 久久日韩粉嫩一区二区三区| 国产一区二区三区四| 2欧美一区二区三区在线观看视频| 日韩高清不卡一区二区| 91精品啪在线观看国产60岁| 精品一区二区三区免费观看 | 欧美酷刑日本凌虐凌虐| 另类的小说在线视频另类成人小视频在线 | 成人18视频日本| 亚洲日本一区二区| 欧美日韩一区小说| 麻豆精品精品国产自在97香蕉| 日韩欧美在线网站| 国产精品综合二区| 亚洲欧美色综合| 91精品国产一区二区三区香蕉 | 国产精品亲子伦对白| 91福利国产精品| 蜜桃久久久久久久| 国产精品免费视频观看| 欧美三级在线播放| 国产成人免费网站| 一区二区久久久| 精品国产乱码久久久久久影片| 国产69精品一区二区亚洲孕妇| 亚洲免费毛片网站| 精品国产免费一区二区三区四区| fc2成人免费人成在线观看播放 | 国产中文字幕一区| 亚洲美女视频一区| 久久蜜桃av一区精品变态类天堂| 99热99精品| 美腿丝袜亚洲色图| 一区二区三区小说| 久久久久久久综合| 欧美日韩你懂的| 不卡一区二区中文字幕| 日本成人中文字幕在线视频| 中文字幕精品三区| 精品入口麻豆88视频| 91丨porny丨国产| 国模无码大尺度一区二区三区| 亚洲一区在线视频| 亚洲欧洲三级电影| 2023国产精品自拍| 91精品国产色综合久久| 欧美影院午夜播放| 97精品久久久午夜一区二区三区| 久久99精品网久久| 亚洲不卡一区二区三区| 亚洲免费观看在线视频| 日本一区二区三区电影| 精品久久久久久久久久久久久久久久久 | 欧美一区日本一区韩国一区| 日韩不卡一二三区| 亚洲成精国产精品女| 91精品午夜视频| 欧美亚一区二区| 一本大道久久a久久综合| 国产.欧美.日韩| 国产主播一区二区三区| 美腿丝袜亚洲三区| 日本成人中文字幕在线视频| 亚洲一区二区三区在线播放| 亚洲欧洲精品一区二区三区不卡| 国产天堂亚洲国产碰碰| 精品国产一区二区三区久久久蜜月| 欧美乱妇15p| 欧美一区二区三区在线观看| 欧美欧美午夜aⅴ在线观看| 在线看国产一区| 欧美最猛黑人xxxxx猛交| 一本一道波多野结衣一区二区| 97se亚洲国产综合自在线| 99久久精品免费观看| 99久久婷婷国产| 色婷婷精品大在线视频| 日本福利一区二区| 欧美亚男人的天堂| 欧美猛男超大videosgay| 欧美巨大另类极品videosbest| 欧美精品久久99久久在免费线 | 国产91丝袜在线播放0| 国产精品99久久久久久久女警| 国产米奇在线777精品观看| 国产精品 欧美精品| 成人a区在线观看| 色综合天天狠狠| 欧美军同video69gay| 精品捆绑美女sm三区| 久久午夜电影网| 国产精品美女一区二区三区| 国产欧美一区二区精品性色超碰| 中文字幕国产精品一区二区| 亚洲在线视频网站| 奇米在线7777在线精品| 国产成人免费视| 欧美中文字幕久久| 精品乱人伦一区二区三区| 国产精品视频第一区| 午夜精品爽啪视频| 国产91综合一区在线观看| 在线精品视频一区二区三四| 精品国产一区二区亚洲人成毛片| 成人免费一区二区三区视频| 手机精品视频在线观看| 国产一区二区三区日韩| 色伊人久久综合中文字幕| 日韩欧美国产三级| 亚洲欧美日韩久久| 精品午夜久久福利影院| 91久久精品一区二区三| 久久视频一区二区| 亚洲高清久久久| av一二三不卡影片| 日韩精品一区在线观看| 亚洲激情欧美激情| 国产成人av一区二区|