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

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

?? dbkdrvr.c.svn-base

?? 這是一段游戲修改工具的源代碼.ring3功能由dephi開發,驅動是C開發.希望對大家有幫助
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
/*
  Build upon the MSJDrvr.C by James M. Finnegan - Microsoft Systems Journal (1998)  
*/

#include "DBKFunc.h"
#include "rootkit.h"
#include "processlist.h"
#include "memscan.h"
#include "threads.h"

#include "vmxhelper.h"
#include "newkernel.h"


#ifdef CETC
	#include "cetc.h"
#endif

#ifdef AMD64
	#define dbkversion 2640011
#else
	#define dbkversion 2000011
#endif

#define IOCTL_UNKNOWN_BASE					FILE_DEVICE_UNKNOWN

#define IOCTL_CE_READMEMORY						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0800, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_WRITEMEMORY					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0801, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_OPENPROCESS    				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0802, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_QUERY_VIRTUAL_MEMORY			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0803, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_TEST							CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0804, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETPEPROCESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0805, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_READPHYSICALMEMORY				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0806, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_WRITEPHYSICALMEMORY			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0807, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETPHYSICALADDRESS				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0808, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_PROTECTME						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0809, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETCR3 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_SETCR3 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETSDT 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_INITIALIZE     		    	CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_DONTPROTECTME					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080e, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETIDT 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x080f, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_HOOKINTS 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0810, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_DEBUGPROCESS 					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0811, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_RETRIEVEDEBUGDATA				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0812, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_STARTPROCESSWATCH				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0813, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETPROCESSEVENTS				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0814, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETTHREADEVENTS				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0815, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETVERSION						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0816, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETCR4 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0817, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_OPENTHREAD	    				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0818, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_MAKEWRITABLE					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0819, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_DEBUGPROCESS_CHANGEREG			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_STOPDEBUGGING					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define	IOCTL_CE_STOP_DEBUGPROCESS_CHANGEREG	CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define	IOCTL_CE_USEALTERNATEMETHOD				CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define	IOCTL_CE_ISUSINGALTERNATEMETHOD			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081e, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define	IOCTL_CE_ALLOCATEMEM					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x081f, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_CREATEAPC						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0820, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETPETHREAD					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0821, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_CE_SUSPENDTHREAD					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0822, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_RESUMETHREAD					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0823, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_SUSPENDPROCESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0824, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_RESUMEPROCESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0825, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_CE_ALLOCATEMEM_NONPAGED			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0826, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETPROCADDRESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0827, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_SETSDTADDRESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0828, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETSDTADDRESS					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0829, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_CE_GETGDT 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_SETCR4 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETTR 							CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_VMXCONFIG						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_GETCR0 						CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082e, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_MAKEKERNELCOPY					CTL_CODE(IOCTL_UNKNOWN_BASE, 0x082f, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_CE_SETGLOBALDEBUGSTATE			CTL_CODE(IOCTL_UNKNOWN_BASE, 0x0830, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)


void MSJUnloadDriver(PDRIVER_OBJECT DriverObject);

NTSTATUS MSJDispatchCreate(IN PDEVICE_OBJECT DeviceObject,
                       IN PIRP Irp);

NTSTATUS MSJDispatchClose(IN PDEVICE_OBJECT DeviceObject,
                       IN PIRP Irp);

NTSTATUS MSJDispatchIoctl(IN PDEVICE_OBJECT DeviceObject,
                            IN PIRP Irp);


//-----NtUserSetWindowsHookEx----- //prevent global hooks
typedef ULONG (NTUSERSETWINDOWSHOOKEX)(
    IN HANDLE hmod,
    IN PUNICODE_STRING pstrLib OPTIONAL,
    IN DWORD idThread,
    IN int nFilterType,
    IN PVOID pfnFilterProc,
    IN DWORD dwFlags
);
NTUSERSETWINDOWSHOOKEX OldNtUserSetWindowsHookEx;
ULONG NtUserSetWindowsHookEx_callnumber;
//HHOOK NewNtUserSetWindowsHookEx(IN HANDLE hmod,IN PUNICODE_STRING pstrLib OPTIONAL,IN DWORD idThread,IN int nFilterType, IN PROC pfnFilterProc,IN DWORD dwFlags);

//------------------------





typedef NTSTATUS (*ZWSUSPENDPROCESS)
(
    IN ULONG ProcessHandle  // Handle to the process
);
ZWSUSPENDPROCESS ZwSuspendProcess;




//PVOID GetApiEntry(ULONG FunctionNumber);
void Unhook(void);

NTSTATUS ZwCreateThread(
	OUT PHANDLE  ThreadHandle,
	IN ACCESS_MASK  DesiredAccess,
	IN POBJECT_ATTRIBUTES  ObjectAttributes,
	IN HANDLE  ProcessHandle,
	OUT PCLIENT_ID  ClientId,
	IN PCONTEXT  ThreadContext,
	IN PVOID  UserStack,
	IN BOOLEAN  CreateSuspended);


PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTableShadow=NULL;
PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable=NULL;

UNICODE_STRING  uszDeviceString;
PVOID BufDeviceString=NULL;

#define SYSTEMSERVICE(_function)		KeServiceDescriptorTable->ServiceTable[ *(PULONG)((PUCHAR)_function+1)]
#define SYSTEMSERVICELINK(_function)	KeServiceDescriptorTable->ServiceTable[*((PUCHAR)(*(PULONG)*((PULONG)((PUCHAR)_function+2)))+1)]


void hideme(PDRIVER_OBJECT DriverObject)
{
	typedef struct _MODULE_ENTRY {
	LIST_ENTRY le_mod;
	DWORD  unknown[4];
	DWORD  base;
	DWORD  driver_start;
	DWORD  unk1;
	UNICODE_STRING driver_Path;
	UNICODE_STRING driver_Name;
} MODULE_ENTRY, *PMODULE_ENTRY;

	PMODULE_ENTRY pm_current;

	pm_current =  *((PMODULE_ENTRY*)((DWORD)DriverObject + 0x14)); //eeeeew

	*((PDWORD)pm_current->le_mod.Blink)        = (DWORD) pm_current->le_mod.Flink;
	pm_current->le_mod.Flink->Blink            = pm_current->le_mod.Blink;
	HiddenDriver=TRUE;
}

void mykapc2(PKAPC Apc, PKNORMAL_ROUTINE NormalRoutine, PVOID NormalContext, PVOID SystemArgument1, PVOID SystemArgument2)
{
	ExFreePool(Apc);
	DbgPrint("My second kernelmode apc!!!!\n");
	DbgPrint("SystemArgument1=%x\n",*(PULONG)SystemArgument1);
}

void nothing2(PVOID arg1, PVOID arg2, PVOID arg3)
{
	
	return;
}

void mykapc(PKAPC Apc, PKNORMAL_ROUTINE NormalRoutine, PVOID NormalContext, PVOID SystemArgument1, PVOID SystemArgument2)
{
	//kernelmode apc, always gets executed
	PKAPC      kApc;
	LARGE_INTEGER Timeout;

	kApc = ExAllocatePool(NonPagedPool, sizeof(KAPC));


	ExFreePool(Apc);
	DbgPrint("My kernelmode apc!!!!\n");
	
	DbgPrint("NormalRoutine=%x\n",*(PULONG)NormalRoutine);
	DbgPrint("NormalContext=%x\n",*(PULONG)NormalContext);
	DbgPrint("SystemArgument1=%x\n",*(PULONG)SystemArgument1);
	DbgPrint("SystemArgument1=%x\n",*(PULONG)SystemArgument2);
	
	
	KeInitializeApc(kApc,
		            (PKTHREAD)PsGetCurrentThread(),
                    0,
                    (PKKERNEL_ROUTINE)mykapc2,
                    NULL,
                    (PKNORMAL_ROUTINE)*(PULONG)SystemArgument1,
                    UserMode,
                    (PVOID)*(PULONG)NormalContext
                    );

	KeInsertQueueApc (kApc, (PVOID)*(PULONG)SystemArgument1, (PVOID)*(PULONG)SystemArgument2, 0);


	//wait in usermode (to interruptable by a usermode apc)
	Timeout.QuadPart = 0;
	KeDelayExecutionThread(UserMode, TRUE, &Timeout);

	return;
}

void nothing(PVOID arg1, PVOID arg2, PVOID arg3)
{
	return;
}

void CreateRemoteAPC(ULONG threadid,PVOID addresstoexecute)
{
	PKTHREAD   kThread;
	PKAPC      kApc;

	kApc = ExAllocatePool(NonPagedPool, sizeof(KAPC));

	kThread=(PKTHREAD)getPEThread(threadid);
	DbgPrint("(PVOID)KThread=%p\n",kThread);


   
	KeInitializeApc(kApc,
		            kThread,
                    0,
                    (PKKERNEL_ROUTINE)mykapc,
                    NULL,
                    (PKNORMAL_ROUTINE)nothing,
                    KernelMode,
                    0
                    );

	KeInsertQueueApc (kApc, addresstoexecute, addresstoexecute, 0);
}


/*
PVOID GetApiEntry(ULONG FunctionNumber)
{
	
#ifndef AMD64
	int direction=0; //0=down 1=up
	PUCHAR x;
	//Get the start address of a known function (ZwOpenProcess)
	ULONG LastFunctionNumber=*(PULONG)((PUCHAR)ZwOpenProcess+1);  //0x7a in xp pro sp1
	
	x=(PUCHAR)ZwOpenProcess;

	if (FunctionNumber==LastFunctionNumber) //If you're retarded this is usefull
		return (PVOID)ZwOpenProcess;

	if (FunctionNumber<LastFunctionNumber)
		direction=1;
	else
		direction=0;

    //now search for e8,functionnumber,  (and perhaps also 8d,54,24,04
	if (direction==1)
	{
		return (PVOID)0x12345678;
		//go back in the list
		while (LastFunctionNumber>0)
		{
			if (*x==0xb8)
			{
				//it's a mov eax,........
				//now get the function number if this address

				//make sure it's not function e8
				if (*(PULONG)((ULONG)(x)-1)==0xb8)
					x--;
				
				LastFunctionNumber=*(PULONG)((ULONG)(x)+1);

				if (LastFunctionNumber==FunctionNumber)
					return x; //found it				
			}
			x--;
		}
	}
	else
	{
		x++;		
		while (1)
		{
			//move forward
			if (*x==0xb8)
			{
				if (*(PULONG)((ULONG)(x)+1)==0xb8) //the previous byte was also a 0xb8, so this has to be the identifier
				{
					x++; //next;
					continue;
				}				
				
				LastFunctionNumber=*(PULONG)((ULONG)x+1);

				if (LastFunctionNumber==FunctionNumber)
					return x;
			}
			x++;
		}		
	}

#endif //amd64
	
	return NULL;
}*/

int testfunction(int p1,int p2)
{
	DbgPrint("Hello\nParam1=%d\nParam2=%d\n",p1,p2);
	return 0x666;
}


void* functionlist[1];
char  paramsizes[1];
int registered=0;


void AddSystemServices(void)
{
/*	if (registered)
		return; //no need to register again

	DbgPrint("Registering SystemServiceTable\n");
	
	
	functionlist[0] = (void *)&testfunction;
	paramsizes[0] = 2*4;

	if (KeServiceDescriptorTableShadow)
	{
		//override if any other exists
		KeServiceDescriptorTableShadow[1].ArgumentTable=NULL;
		KeServiceDescriptorTableShadow[1].CounterTable=NULL;
		KeServiceDescriptorTableShadow[1].ServiceTable=NULL;
		KeServiceDescriptorTableShadow[1].TableSize=0;

		KeServiceDescriptorTable[2].ArgumentTable=NULL;
		KeServiceDescriptorTable[2].CounterTable=NULL;
		KeServiceDescriptorTable[2].ServiceTable=NULL;
		KeServiceDescriptorTable[2].TableSize=0;
	}

  
	if (KeAddSystemServiceTable((PULONG_PTR)functionlist, 0, 1, (PUCHAR)paramsizes, 2))
	{
		registered=1;
		DbgPrint("Register successfull\n");
	}
	else
	{
		DbgPrint("Register failed.\n");
	}

	

	DbgPrint("KeServiceDescriptorTable[0]=%p",&KeServiceDescriptorTable[0]);
	DbgPrint("KeServiceDescriptorTable[1]=%p",&KeServiceDescriptorTable[1]);
	DbgPrint("KeServiceDescriptorTable[2]=%p",&KeServiceDescriptorTable[2]);
	DbgPrint("KeServiceDescriptorTable[3]=%p",&KeServiceDescriptorTable[3]);

	*/

}






NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
                     IN PUNICODE_STRING RegistryPath)
/*++

Routine Description:

    This routine is called when the driver is loaded by NT.

Arguments:

    DriverObject - Pointer to driver object created by system.
    RegistryPath - Pointer to the name of the services node for this driver.

Return Value:

    The function value is the final status from the initialization operation.

--*/
{
    NTSTATUS        ntStatus;
    PVOID           BufDriverString=NULL,BufProcessEventString=NULL,BufThreadEventString=NULL;
    UNICODE_STRING  uszDriverString;
    
    UNICODE_STRING  uszProcessEventString;
	UNICODE_STRING	uszThreadEventString;
    PDEVICE_OBJECT  pDeviceObject;
	int				i;
	ULONG cr4reg;

	HANDLE reg;
	OBJECT_ATTRIBUTES oa;

	UNICODE_STRING temp; 


	//DbgPrint("%S",oa.ObjectName.Buffer);  


	WORD this_cs, this_ss, this_ds, this_es, this_fs, this_gs;
	__asm
	{
		mov ax,cs
		mov [this_cs],ax

		mov ax,ss
		mov [this_ss],ax

		mov ax,ds
		mov [this_ds],ax

		mov ax,es
		mov [this_es],ax

		mov ax,fs
		mov [this_fs],ax

		mov ax,gs
		mov [this_gs],ax
	}
	DbgPrint("cs=%x ss=%x ds=%x es=%x fs=%x gs=%x\n",this_cs, this_ss, this_ds, this_es, this_fs, this_gs);



	//lame antiviruses and more lamer users that keep crying rootkit virus....
	RtlInitUnicodeString(&temp, L"KeServiceDescriptorTable"); 
	KeServiceDescriptorTable=MmGetSystemRoutineAddress(&temp);         

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区在线观看视频 | 国产亚洲综合性久久久影院| 色视频欧美一区二区三区| 国产寡妇亲子伦一区二区| 免费高清在线一区| 亚洲一区二区三区四区不卡 | 免费看黄色91| 一区二区三区在线影院| **欧美大码日韩| 亚洲激情图片小说视频| 亚洲国产精品久久久男人的天堂| 18欧美乱大交hd1984| 国产精品久久久久久一区二区三区 | 欧美激情一区二区三区四区 | 亚洲伊人色欲综合网| 亚洲福利一二三区| 久久99国产精品久久99| 国产一区二区三区综合| 国产福利一区二区三区视频在线| 高清国产一区二区| 日本道色综合久久| 91精品国产综合久久小美女| 日韩一区二区精品| 日本一区二区三区免费乱视频| 国产精品久久久一本精品| 亚洲精品欧美二区三区中文字幕| 亚洲一区二区三区四区五区中文| 蜜桃传媒麻豆第一区在线观看| 亚洲婷婷综合色高清在线| 轻轻草成人在线| 韩国av一区二区三区四区| 欧美成人a∨高清免费观看| 久久精品国产99| 一区二区三区中文字幕在线观看| 精品对白一区国产伦| 国产福利一区在线| 国产日韩欧美综合一区| 亚洲国产精品尤物yw在线观看| 青草国产精品久久久久久| 国产精品乡下勾搭老头1| 91一区二区在线| 欧美一区二区视频免费观看| 国产精品国产三级国产有无不卡| 亚洲一区二区高清| 成人性色生活片| 欧美丰满一区二区免费视频| 国产色91在线| 五月天激情小说综合| 国产大陆a不卡| 91麻豆精品91久久久久同性| 国产日韩欧美一区二区三区乱码| 婷婷综合在线观看| 麻豆精品国产91久久久久久| 亚洲欧美日韩久久| 久久久影院官网| 在线免费观看日本一区| 欧美怡红院视频| 亚洲人成人一区二区在线观看| 亚洲国产视频a| 国产精品主播直播| 欧美成人精品1314www| 亚洲午夜视频在线观看| 国产成人精品影视| 精品国产伦一区二区三区观看体验| 亚洲午夜精品网| 色婷婷亚洲精品| 亚洲人精品午夜| 成人国产精品免费观看| 亚洲一区二区三区在线播放| 亚洲日本中文字幕区| 亚洲免费观看在线视频| 亚洲欧洲精品一区二区精品久久久 | 亚洲 欧美综合在线网络| 亚洲午夜精品在线| 欧美亚洲精品一区| 亚洲欧美日韩国产手机在线| av成人老司机| 亚洲色图视频免费播放| 91香蕉视频mp4| 亚洲欧美视频在线观看| 91在线无精精品入口| 久久久久久久久久久久久女国产乱 | 一本大道久久a久久综合婷婷| 久久蜜桃av一区二区天堂| 精品一区二区免费在线观看| 日韩免费在线观看| 国产麻豆精品在线观看| 国产喂奶挤奶一区二区三区| 国产福利电影一区二区三区| 久久精品综合网| 91麻豆精品视频| 亚洲一区免费观看| 91精品国产综合久久久久久久久久 | 在线视频观看一区| 亚洲色图都市小说| 欧美日本一区二区| 午夜精品福利久久久| 日韩一区二区高清| 国产成a人无v码亚洲福利| 国产精品久久夜| 欧美日韩国产一区二区三区地区| 亚洲欧美日韩国产成人精品影院| 欧美日韩免费视频| 国产在线看一区| 自拍偷拍国产精品| 欧美一区二区三区日韩| 国产一区二区毛片| 亚洲综合免费观看高清完整版在线| 6080午夜不卡| 成人激情文学综合网| 亚洲一区二区三区中文字幕| 精品福利一二区| 91香蕉视频mp4| 欧美96一区二区免费视频| 国产亚洲综合在线| 欧美一区二区三区的| www.久久精品| 精品一区二区三区视频在线观看| 一区二区三区av电影| 日韩精品中文字幕一区二区三区| 国产一区二区三区在线观看精品| 亚洲三级在线观看| 日韩午夜中文字幕| 色8久久精品久久久久久蜜| 久久不见久久见免费视频1| 中文字幕乱码一区二区免费| 欧美自拍偷拍午夜视频| 国产一区视频在线看| 亚洲成人免费观看| 国产精品网站导航| 欧美一区二区三区免费在线看| 国产精品一区不卡| 天堂资源在线中文精品| 中文字幕免费不卡| 精品乱人伦一区二区三区| 一本大道av一区二区在线播放| 国产精一品亚洲二区在线视频| 日本在线不卡一区| 天天av天天翘天天综合网色鬼国产 | 精品99999| 欧美精品色综合| 色视频一区二区| 色偷偷久久一区二区三区| 丁香亚洲综合激情啪啪综合| 国产一区二区按摩在线观看| 免费成人结看片| 日韩电影在线免费| 日日夜夜精品视频天天综合网| 亚洲伦理在线精品| 亚洲精品视频自拍| 一区二区成人在线| 亚洲激情中文1区| 一区二区三区四区视频精品免费 | 婷婷开心激情综合| 亚洲一区二区精品久久av| 亚洲另类春色校园小说| 国产精品久久久久久户外露出 | 精品国产麻豆免费人成网站| 日韩一区二区在线看| 欧美一区二区成人| 欧美mv和日韩mv国产网站| 精品国产乱码久久久久久浪潮| 精品国产sm最大网站免费看| 久久久蜜桃精品| 国产精品久久福利| 悠悠色在线精品| 亚洲va欧美va国产va天堂影院| 午夜精品福利在线| 老鸭窝一区二区久久精品| 激情久久五月天| 丰满放荡岳乱妇91ww| av电影在线不卡| 欧美日韩欧美一区二区| 日韩一区国产二区欧美三区| 精品欧美一区二区在线观看| 国产亚洲精品精华液| 国产精品不卡在线观看| 一区二区在线观看不卡| 亚洲一区中文在线| 日韩1区2区日韩1区2区| 国产一区福利在线| 91免费国产在线观看| 欧美一区二区精品久久911| 久久精品视频一区二区三区| 一区二区三区免费观看| 免播放器亚洲一区| 99精品欧美一区二区三区小说| 51午夜精品国产| 国产精品女主播在线观看| 亚洲一区二区精品视频| 久久99精品久久久久| 91丨九色丨尤物| 欧美r级在线观看| 国产精品久久久久影院老司| 日日夜夜一区二区| av在线不卡免费看| 日韩精品专区在线影院观看| 亚洲视频狠狠干| 激情综合色综合久久| 91国在线观看|