日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

文件过滤系统驱动开发Filemon学习笔记

發布時間:2024/8/5 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 文件过滤系统驱动开发Filemon学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WINDOWS文件過濾系統驅動開發,可用于硬盤還原,防病毒,文件安全防護,文件加密等諸多領域。而掌握核心層的理論及實踐,對于成為一名優秀的開發人員不可或缺。

WINDOWS文件過濾系統驅動開發的兩個經典例子,Filemon與SFilter,初學者在經過一定的理論積累后,對此兩個例子代碼的研究分析,會是步入驅動開發殿堂的重要一步,相信一定的理論積累以及貫穿剖析理解此兩個例程后,就有能力開始進行文件過濾系統驅動開發的實際工作了。
對于SFilter例子的講解,楚狂人的教程已經比較流行,而Filemon例子也許因框架結構相對明晰,易于剖析理解,無人貼出教程,本人在剖析Filemon的過程中積累的一些筆記資料,陸續貼出希望對初學者有所幫助,并通過和大家的交流而互相提高。

Filemon學習筆記 第一篇:

Filemon的大致架構為,在此驅動程序中,創建了兩類設備對象。
一類設備對象用于和Filemon對應的exe程序通信,以接收用戶輸入信息,比如掛接或監控哪個分區,是否要掛接,是否要監控,監控何種操作等。此設備對象只創建了一個,在驅動程序的入口函數DriverEntry中。此類設備對象一般稱為控制設備對象,并有名字,以方便應用層與其通信操作。
第二類設備對象用于掛接到所須監控的分區,比如c:,d:或e:,f:,以便攔截到引應用層對該分區所執行的讀,寫等操作。此類設備對象為安全起見,一般不予命名,可根據須監控多少分區而創建一個或多個。

驅動入口函數大致如下:

NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
NTSTATUS                ntStatus;
PDEVICE_OBJECT          guiDevice;
WCHAR                   deviceNameBuffer[]  = L"\\Device\\Filemon";
UNICODE_STRING          deviceNameUnicodeString;
WCHAR                   deviceLinkBuffer[]  = L"\\DosDevices\\Filemon";
UNICODE_STRING          deviceLinkUnicodeString;
ULONG                   i;
DbgPrint (("Filemon.SYS: entering DriverEntry\n"));
FilemonDriver = DriverObject;
//
// Setup the device name
//
RtlInitUnicodeString (&deviceNameUnicodeString,
deviceNameBuffer );
//
// Create the device used for GUI communications
//此設備對象用來和用戶交互信息
ntStatus = IoCreateDevice ( DriverObject,
sizeof(HOOK_EXTENSION),
&deviceNameUnicodeString,
FILE_DEVICE_FILEMON,
0,
TRUE,
&guiDevice );
//
// If successful, make a symbolic link that allows for the device
// object's access from Win32 programs
//
if(NT_SUCCESS(ntStatus)) {
//
// Mark this as our GUI device
//
((PHOOK_EXTENSION) guiDevice->DeviceExtension)->Type = GUIINTERFACE;
//
// Create a symbolic link that the GUI can specify to gain access
// to this driver/device
//
RtlInitUnicodeString (&deviceLinkUnicodeString,
deviceLinkBuffer );
ntStatus = IoCreateSymbolicLink (&deviceLinkUnicodeString,
&deviceNameUnicodeString );
if(!NT_SUCCESS(ntStatus)) {
DbgPrint (("Filemon.SYS: IoCreateSymbolicLink failed\n"));
IoDeleteDevice( guiDevice );
return ntStatus;
}
//
// Create dispatch points for all routines that must be handled.
// All entry points are registered since we might filter a
// file system that processes all of them.
//
for( i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++ ) {
DriverObject->MajorFunction[i] = FilemonDispatch;
}
#if DBG
//
// Driver unload is only set if we are debugging Filemon. This is
// because unloading a filter is not really safe - threads could
// be in our fastio routines (or about to enter them), for example,
// and there is no way to tell. When debugging, we can risk the
// occasional unload crash as a trade-off for not having to
// reboot as often.
//
// DriverObject->DriverUnload = FilemonUnload;
#endif // DBG
//
// Set up the Fast I/O dispatch table
//
DriverObject->FastIoDispatch = &FastIOHook;
} else {
//
// If something went wrong, cleanup the device object and don't load
//
DbgPrint(("Filemon: Failed to create our device!\n"));
return ntStatus;
}
//
// Initialize the name hash table
//
for(i = 0; i < NUMHASH; i++ ) HashTable[i] = NULL;
//
// Find the process name offset
//
ProcessNameOffset = FilemonGetProcessNameOffset();//為了得到當前進程名字
//
// Initialize the synchronization objects
//
#if DBG
KeInitializeSpinLock( &CountMutex );
#endif
ExInitializeFastMutex( &LogMutex );
ExInitializeResourceLite( &FilterResource );
ExInitializeResourceLite( &HashResource );
//
// Initialize a lookaside for file names
//
ExInitializeNPagedLookasideList( &FullPathLookaside, NULL, NULL,
0, MAXPATHLEN, 'mliF', 256 );
//
// Allocate the first output buffer
//
CurrentLog = ExAllocatePool( NonPagedPool, sizeof(*CurrentLog) );
if( !CurrentLog ) {
//
// Oops - we can't do anything without at least one buffer
//
IoDeleteSymbolicLink( &deviceLinkUnicodeString );
IoDeleteDevice( guiDevice );
return STATUS_INSUFFICIENT_RESOURCES;
}
//
// Set the buffer pointer to the start of the buffer just allocated
//
CurrentLog->Len  = 0;
CurrentLog->Next = NULL;
NumLog = 1;
return STATUS_SUCCESS;
}

在此驅動入口點函數中,主要做了生成新的設備對象,此設備對象用來和應用層信息交互,比如應用層向驅動傳遞需要掛接或者監控的分區盤符,或者是否掛接盤符,是否監控操作等。
上面創建設備對象的代碼為:

ntStatus = IoCreateDevice ( DriverObject,
sizeof(HOOK_EXTENSION),
&deviceNameUnicodeString,
FILE_DEVICE_FILEMON,
0,
TRUE,
&guiDevice );
//
// If successful, make a symbolic link that allows for the device
// object's access from Win32 programs
//
if(NT_SUCCESS(ntStatus)) {
//
// Mark this as our GUI device
//
((PHOOK_EXTENSION) guiDevice->DeviceExtension)->Type = GUIINTERFACE;
//
// Create a symbolic link that the GUI can specify to gain access
// to this driver/device
//
RtlInitUnicodeString (&deviceLinkUnicodeString,
deviceLinkBuffer );
ntStatus = IoCreateSymbolicLink (&deviceLinkUnicodeString,
&deviceNameUnicodeString );
if(!NT_SUCCESS(ntStatus)) {
DbgPrint (("Filemon.SYS: IoCreateSymbolicLink failed\n"));
IoDeleteDevice( guiDevice );
return ntStatus;
}

上面代碼完成的功能為創建了用于與應用層交互的控制設備對象,名字在參數&deviceNameUnicodeString,中。設備對象創建成功后又調用IoCreateSymbolicLink創建了一個符號連接,以便于應用層交互。 在入口點函數DriverEntry代碼中,還有一處代碼: ProcessNameOffset = FilemonGetProcessNameOffset();//為了得到當前進程名字。此函數體如下:

ULONG
FilemonGetProcessNameOffset(
VOID
)
{
PEPROCESS       curproc;
int             i;
curproc = PsGetCurrentProcess();//調用PsGetCurrentProcess取得KPEB基址
//然后搜索KPEB,得到ProcessName相對KPEB的偏移量
// Scan for 12KB, hoping the KPEB never grows that big!
//
for( i = 0; i < 3*PAGE_SIZE; i++ ) {
if( !strncmp( SYSNAME, (PCHAR) curproc + i, strlen(SYSNAME) )) {
return i;
}
}
//
// Name not found - oh, well
//
return 0;

這個函數通過查找KPEB (Kernel Process Environment Block),取得進程名,GetProcessNameOffset主要是調用PsGetCurrentProcess取得KPEB基址,然后搜索KPEB,得到ProcessName相對KPEB的偏移量,存放在全局變量ProcessNameOffset中,得到此偏移量的作用是:無論當前進程為哪個,其名字在KPEB中的偏移量不變,所以都可以通過此偏移量得到。而在入口點函數DriverEntry執行時,當前進程必為系統進程,所以在此函數中方便地根據系統進程名SYSNAME(#define SYSNAME "System")得到此偏移量。

分發函數剖析:
在入口點函數中,通過代碼:

for( i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++ ) {
DriverObject->MajorFunction[i] = FilemonDispatch;
}

簡單地把各個分發例程設置成了FilemonDispatch; 然后我們追蹤其函數體:

NTSTATUS
FilemonDispatch(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
)
{
//
// Determine if its a request from the GUI to us, or one that is
// directed at a file system driver that we've hooked
//
if( ((PHOOK_EXTENSION) DeviceObject->DeviceExtension)->Type == GUIINTERFACE ) {
return FilemonDeviceRoutine( DeviceObject, Irp );
} else {
return FilemonHookRoutine( DeviceObject, Irp );
}
}

函數體先判斷需要處理IRP包的設備對象的類型,看是屬于控制設備對象,還是屬于用于掛接并監控文件讀寫操作的過濾設備對象。如果是屬于后者 則進入:FilemonHookRoutine( DeviceObject, Irp )
此函數是攔截文件操作的中心,在其中獲得了被操作的文件名字,并且根據操作類型,在
switch( currentIrpStack->MajorFunction ) {
}
中針對不同的MajorFunction,打印出相關操作信息。
因此函數體太長 不再全部列出。
其函數體總體框架為:得到被操作的文件名字,打印相關操作信息,然后下發IRP到底層驅動。
在下發IRP到底層驅動處理前,本層驅動必須負責設置下層IO堆棧的內容。這樣下一層驅動調用IoGetCurrentIrpStackLocation()時能得到相應的數據。
設置下層IO堆棧的內容,一般用兩個函數來實現:
IoCopyCurrentIrpStackLocationToNext( Irp )
此函數一般用在本驅動設置了完成例程時調用,把本層IO _STACK_LOCATION 中的參數copy到下層,但與完成例程相關的參數信息例外。因為本驅動設置的完成例程只對本層驅動有效。
IoSkipCurrentIrpStackLocationToNext(Irp)
此函數的作用是:直接把本層驅動IO堆棧的內容設置為下層驅動IO堆棧指針的指向。因兩層驅動IO堆棧的內容完全一致,省卻copy過程。

而在Filemon的處理中,它用了一個特別的辦法,沒有調用此兩個函數,FilemonHookRoutine函數體里面有三句代碼:

PIO_STACK_LOCATION  currentIrpStack = IoGetCurrentIrpStackLocation(Irp);
PIO_STACK_LOCATION  nextIrpStack    = IoGetNextIrpStackLocation(Irp);
*nextIrpStack = *currentIrpStack;//此步設置了下層驅動的IO_STACK_LOCATION
直接設置了下層驅動IO堆棧的值。

在FilemonHookRoutine函數里,用一個宏實現了復雜的獲得攔截到的被操作文件的名字:

if( FilterOn && hookExt->Hooked ) {
GETPATHNAME( createPath );
}

GETPATHNAME( createPath )宏展開為:

#define GETPATHNAME(_IsCreate)                                                  \
fullPathName = ExAllocateFromNPagedLookasideList( &FullPathLookaside ); \
if( fullPathName ) {                                                    \
FilemonGetFullPath( _IsCreate, FileObject, hookExt, fullPathName ); \
} else {                                                                \
fullPathName = InsufficientResources;                               \
}

在函數:FilemonGetFullPath( _IsCreate, FileObject, hookExt, fullPathName )中實現了獲得被操作的文件名字,此函數代碼較多,判斷條件復雜,理解起來比較麻煩,下面重點講解。
對函數FilemonGetFullPath的理解關鍵在于理順結構,
此函數的功能就是獲得文件名字,獲得文件名字一般在三種狀態下:
一:在打開文件請求中,但在打開文件前。
二:在打開文件請求中,但在打開文件后,通過在本層驅動中設置完成例程。在完成例程中獲得。
三:在過濾到讀寫等操作時。
而在此函數中,它包含了第一種和第三種方法,通過一些煩瑣的條件判斷,先判斷出目前是處于什么狀態中,然后根據不同狀態采取不同方法。

先分析當在第一種條件下,此函數的處理方法,可以精煉為如下:

VOID
FilemonGetFullPath(
BOOLEAN createPath,
PFILE_OBJECT fileObject,
PHOOK_EXTENSION hookExt,
PCHAR fullPathName
)
{
ULONG               pathLen, prefixLen, slashes;
PCHAR               pathOffset, ptr;
BOOLEAN             gotPath;
PFILE_OBJECT        relatedFileObject;
ANSI_STRING         fileName;
ANSI_STRING         relatedName;
UNICODE_STRING      fullUniName;
prefixLen = 2; // "C:"
if( !fileObject ) {
sprintf( fullPathName, "%C:", hookExt->LogicalDrive );
return;
}
//
// Initialize variables
//
fileName.Buffer = NULL;
relatedName.Buffer = NULL;
gotPath = FALSE;
if( !fileObject->FileName.Buffer)
{
sprintf( fullPathName, "%C:", hookExt->LogicalDrive);
return;
}else
DbgPrint("fileOjec->FileName:%s",fileObject->FileName);
if( !NT_SUCCESS( RtlUnicodeStringToAnsiString( &fileName, &fileObject->FileName, TRUE ))) {
sprintf( fullPathName, "%C: <Out of Memory>", hookExt->LogicalDrive );
return;
}
pathLen = fileName.Length + prefixLen;
relatedFileObject = fileObject->RelatedFileObject;
//
// Only look at related file object if this is a relative name
//
if( fileObject->FileName.Buffer[0] != L'\\' &&
relatedFileObject && relatedFileObject->FileName.Length ) {
DbgPrint("relatedFileObject filename : %s",relatedFileObject->FileName);
if( !NT_SUCCESS( RtlUnicodeStringToAnsiString( &relatedName, &relatedFileObject->FileName, TRUE ))) {
sprintf( fullPathName, "%C: <Out of Memory>", hookExt->LogicalDrive );
RtlFreeAnsiString( &fileName );
return;
}
pathLen += relatedName.Length+1;
}
if( fileObject->DeviceObject->DeviceType != FILE_DEVICE_NETWORK_FILE_SYSTEM ) {
sprintf( fullPathName, "%C:", hookExt->LogicalDrive );
}
if( pathLen >= MAXPATHLEN ) {
strcat( fullPathName, " <Name Too Long>" );
} else {
//
// Now we can build the path name
//
fullPathName[ pathLen ] = 0;
pathOffset = fullPathName + pathLen - fileName.Length;
memcpy( pathOffset, fileName.Buffer, fileName.Length + 1 );
if( fileObject->FileName.Buffer[0] != L'\\' &&
relatedFileObject && relatedFileObject->FileName.Length ) {
//
// Copy the component, adding a slash separator
//
*(pathOffset - 1) = '\\';
pathOffset -= relatedName.Length + 1;
memcpy( pathOffset, relatedName.Buffer, relatedName.Length );
//
// If we've got to slashes at the front zap one
//
if( pathLen > 3 && fullPathName[2] == '\\' && fullPathName[3] == '\\' )  {
strcpy( fullPathName + 2, fullPathName + 3 );
}
}
}
}

上面的精簡后的函數代碼為只考慮目前處于第一種情況,即打開文件請求中,但文件尚未打開時。
在此時,文件的名字信息存儲在文件對象fileObject->FileName,與fileObject->RelatedFileObject->FileName, FileObject->FileName RelatedObject 的相對路徑,通過對兩者的解析組合出文件名字。

而在FilemonGetFullPath 函數體中的另一段代碼:

FilemonGetFullPath
{
…………………..
…………………..
…………………..
if( !gotPath && !createPath ) {
fileNameInfo = (PFILE_NAME_INFORMATION) ExAllocatePool( NonPagedPool,
MAXPATHLEN*sizeof(WCHAR) );
if( fileNameInfo &&
FilemonQueryFile(hookExt->FileSystem, fileObject, FileNameInformation,
fileNameInfo, (MAXPATHLEN - prefixLen - 1)*sizeof(WCHAR) )) {
fullUniName.Length = (SHORT) fileNameInfo->FileNameLength;
fullUniName.Buffer = fileNameInfo->FileName;
if( NT_SUCCESS( RtlUnicodeStringToAnsiString( &fileName, &fullUniName, TRUE ))) {
fullPathName[ fileName.Length + prefixLen ] = 0;
if( hookExt->Type == NPFS ) {
strcpy( fullPathName, NAMED_PIPE_PREFIX );
} else if( hookExt->Type == MSFS ) {
strcpy( fullPathName, MAIL_SLOT_PREFIX );
} else if( fileObject->DeviceObject->DeviceType != FILE_DEVICE_NETWORK_FILE_SYSTEM ) {
sprintf( fullPathName, "%C:", hookExt->LogicalDrive );
} else {
//
// No prefix for network devices
//
}
memcpy( &fullPathName[prefixLen], fileName.Buffer, fileName.Length );
gotPath = TRUE;
RtlFreeAnsiString( &fileName );
fileName.Buffer = NULL;
}
}
if( fileNameInfo ) ExFreePool( fileNameInfo );
}
…………………
…………………
…………………
}

上面這段代碼是處理另外一種情況,即是在其他讀寫請求中,自己根據攔截到的fileObject構建IRP,下發到底層,以此來查詢文件名信息。整個過程還是易于理解的。

在理清這兩種脈絡后,再剖析此整個函數,就很容易理解整個函數代碼了。
代碼中對 MajorFunction == IRP_MJ_CREATE_NAMED_PIPE
MajorFunction == IRP_MJ_CREATE_MAILSLOT 的判斷是為了辨別對攔截到的進程間的兩種通信方式:命名管道與郵槽的處理。

周末來了,祝大家周末愉快。余下的整理后再帖,希望和大家多交流。

總結

以上是生活随笔為你收集整理的文件过滤系统驱动开发Filemon学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

天天天综合| 免费三级骚 | 欧美成人影音 | 日本在线观看黄色 | 成人黄色电影在线观看 | 亚洲第一伊人 | 亚洲国产高清在线 | 欧美日韩国产免费视频 | 91精品国产自产老师啪 | 狠狠干夜夜爱 | av在线播放一区二区三区 | 四虎最新入口 | 欧美日韩性视频 | 91在线porny国产在线看 | 高清久久久久久 | 男女靠逼app | 视频在线观看一区 | 亚洲精品视频大全 | 国产视频一区在线免费观看 | 久久96国产精品久久99软件 | 午夜骚影| 色综合天天综合在线视频 | 日本在线中文在线 | 天堂久久电影网 | 久久无码精品一区二区三区 | 国产不卡在线看 | 国产一区二区三区免费在线 | 午夜在线日韩 | 亚洲欧美综合 | 在线 欧美 日韩 | 最新av免费 | 99精品视频精品精品视频 | 欧美性久久久 | 亚洲深夜影院 | 国产打女人屁股调教97 | 国产一区二区在线观看免费 | 91精品视频在线观看免费 | 亚洲成av片人久久久 | 成人中文字幕在线 | 精品国产午夜 | 亚洲精品456在线播放 | 精品国产伦一区二区三区免费 | 日韩欧美一区二区三区在线 | 亚洲一级电影在线观看 | 国产成人精品日本亚洲999 | 亚洲精品tv久久久久久久久久 | 天天干天天碰 | 日韩免费一区 | 99性视频 | 国产资源免费 | 久久精品高清 | 国产字幕在线看 | 日韩在线视频网站 | 国产在线精品一区二区三区 | 97色在线| 91福利社区在线观看 | 国产99精品在线观看 | 日日夜夜狠狠操 | 免费视频一二三区 | 天天干,天天草 | 国产一级精品视频 | 国产精品久久久久久久久久不蜜月 | 国产精品女人久久久 | 免费看国产一级片 | 成人h电影在线观看 | 久久人视频 | av免费在线观 | 成人av直播 | 日韩中字在线观看 | 91在线免费看片 | 国产精品免费久久 | 98精品国产自产在线观看 | japanesexxx乱女另类 | 国产一区二区免费在线观看 | 日韩激情第一页 | av在线一级 | 国产日韩中文字幕 | 欧美一级在线看 | 午夜久久久久久久久久影院 | 黄色aaa级片 | 天天色中文 | 国产在线一线 | 69亚洲视频| 午夜影视一区 | 五月黄色| 午夜精品久久久久99热app | 欧美色就是色 | 狠狠色狠狠色综合日日92 | 色综合久久综合中文综合网 | 精品 一区 在线 | 日韩在线视频精品 | 色综合网| 成人a在线观看高清电影 | 96视频在线 | 波多野结依在线观看 | 男女激情网址 | 国产精品免费视频观看 | 日韩aⅴ视频 | 国产精品久久久久久五月尺 | 免费一级特黄录像 | 黄色网址在线播放 | 久久激情综合网 | 国产精品视频观看 | 中文字幕日韩电影 | 综合婷婷 | 岛国av在线| 精品欧美在线视频 | 一级片在线 | 成年人电影免费在线观看 | 国产伦精品一区二区三区在线 | 五月天天在线 | 伊人久久影视 | 婷婷国产在线观看 | 国产精品99久久久久久久久久久久 | 热九九精品 | 亚洲人久久久 | 精品a在线| 国产精品第三页 | 丁香花在线视频观看免费 | 毛片网在线播放 | 免费手机黄色网址 | 最近中文字幕第一页 | 精品久久久久国产 | 一区二区视频播放 | 久草观看视频 | 欧美激情视频在线观看免费 | 黄色三级久久 | 97色婷婷人人爽人人 | www.xxxx变态.com | 亚洲激情电影在线 | 99精品国产亚洲 | 爱爱av网站 | 西西444www大胆高清图片 | 亚洲资源 | 免费色黄 | 亚洲国产成人高清精品 | 日韩在线视频网站 | 丁香婷婷激情 | 亚洲精品麻豆视频 | 91精品综合在线观看 | 国产成人一二片 | 日韩激情小视频 | 99精品欧美一区二区蜜桃免费 | 人人看97 | 久久手机免费视频 | av大片免费看 | 国产精品久99 | 97精品国产一二三产区 | 日本久久久久久久久 | 久草免费手机视频 | 亚洲激情校园春色 | 色搞搞 | 麻豆果冻剧传媒在线播放 | 免费三级黄| 手机av网站 | www毛片com| 午夜国产一区二区 | 成人夜晚看av | 国内精品视频在线 | 成人黄色一级视频 | 国产成人精品一区二区三区网站观看 | www国产在线 | 国产美女精品在线 | 激情视频免费观看 | 亚洲欧洲一级 | 色偷偷888欧美精品久久久 | 中文字幕在线观看2018 | 国产一级二级av | 欧美热久久 | 欧美一级视频在线观看 | 91刺激视频 | a视频在线观看 | 香蕉网在线播放 | 99草视频| 人人爽人人片 | 国产成人av电影在线观看 | 超碰人人草 | 日韩精品免费一区二区 | 夜夜操网站 | 九九在线免费视频 | 九九免费在线观看 | 中文字幕成人av | 日韩精选在线观看 | 成人精品影视 | 婷婷色婷婷 | 国产视频一 | 成人免费xxx在线观看 | 国产精品视频免费 | 国产自偷自拍 | 久久看免费视频 | 欧美日韩一区二区三区视频 | 午夜一级免费电影 | 欧美成人亚洲成人 | 色丁香婷婷 | 国产短视频在线播放 | 久久久久免费精品国产 | 精品久久久一区二区 | 91在线视频导航 | 国产精品成人国产乱 | 国产韩国日本高清视频 | 国产精品丝袜在线 | 色婷婷丁香 | 手机看片99 | 国产高清视频免费观看 | 成人免费观看电影 | 在线成人免费电影 | 日日添夜夜添 | 亚洲在线国产 | 国产一线在线 | 久久国产美女视频 | www.com黄| 欧美天天综合 | 天天干夜夜干 | 久久精品一区二区国产 | 免费视频91蜜桃 | 色姑娘综合网 | 日韩在线色视频 | 91在线最新 | 国产美女网站在线观看 | 亚州精品天堂中文字幕 | 国产韩国日本高清视频 | 日韩在线免费观看视频 | 日韩欧美国产精品 | 国产在线国产 | 麻豆视传媒官网免费观看 | 亚洲一区二区三区四区在线视频 | 国产视频不卡一区 | 91精品在线看 | 91在线视频精品 | 中文国产字幕在线观看 | 伊人影院在线观看 | 国产人在线成免费视频 | 亚洲视频 在线观看 | 日韩精品免费一线在线观看 | 天天操夜夜想 | 狠狠狠操 | 日韩一区精品 | 五月婷婷视频在线 | 久久精品中文字幕免费mv | 五月婷婷.com | 五月激情综合婷婷 | 国内精品一区二区 | 91在线看免费 | 国产亚洲一区二区在线观看 | 99视频在线观看视频 | 国产成人一区二区三区久久精品 | 日本aa在线| 久久99婷婷 | 1000部18岁以下禁看视频 | 成人91在线 | 国产麻豆精品在线观看 | 欧美精品久久久久久久久老牛影院 | av网站在线观看播放 | 2021国产在线 | 超碰在线最新网址 | 色香蕉视频 | 福利二区视频 | 国产美女精品视频免费观看 | 国产一区二区在线影院 | 亚洲伊人网在线观看 | 欧美在线aaa | 一区二区三区动漫 | www.夜夜操.com | 91精品国产欧美一区二区成人 | 日韩精品免费一区二区在线观看 | japanese黑人亚洲人4k | 国产一级视频在线观看 | 黄色的视频网站 | 久草在线电影网 | 日韩三级av | 国产九色91 | 国产看片免费 | 夜夜躁日日躁狠狠躁 | 国产999精品 | av中文字幕剧情 | 久草网站在线观看 | 中文字幕在线视频一区二区 | 久久视频在线观看免费 | 丁香花在线观看免费完整版视频 | 日韩免费一级电影 | 中文字幕av专区 | 日韩电影中文字幕在线 | 激情小说久久 | 久久午夜色播影院免费高清 | 国产中文字幕网 | 香蕉在线影院 | 五月婷婷av| 在线播放亚洲激情 | 久久涩涩网站 | 国产91在线 | 美洲 | 日韩三级不卡 | 久久久成人精品 | 国产精品99久久久久久久久久久久 | 亚洲综合在线五月天 | 99久热在线精品视频 | 国产 视频 久久 | 日韩免费在线视频观看 | 不卡的av片| 久久伊人爱 | 国产一区免费在线观看 | 欧美一级裸体视频 | 午夜视频在线观看网站 | 日韩精品中文字幕在线播放 | 国产精品高潮在线观看 | 精品亚洲国产视频 | 深爱五月激情网 | 最近最新中文字幕 | 丁香婷婷激情国产高清秒播 | 婷婷色视频 | 久久免费视频精品 | 久免费| av免费网页 | 在线有码中文字幕 | 国产黄色片久久 | 国产精品高清一区二区三区 | 国产免码va在线观看免费 | 亚洲国产欧美在线人成大黄瓜 | 日韩久久片| 久久99精品久久久久蜜臀 | 91精品国产91久久久久 | 人人网av| 亚洲最新av在线 | 免费福利在线视频 | 国产xvideos免费视频播放 | 久久免费的精品国产v∧ | 夜夜操网 | 国产福利av在线 | 国产精品久久久久久99 | 国产高清视频免费 | 天天操综合 | 亚洲一级黄色大片 | 日韩av不卡在线观看 | 国产手机在线观看 | 在线观看不卡视频 | 免费久久99精品国产婷婷六月 | 国内亚洲精品 | 最近中文字幕免费视频 | 在线免费中文字幕 | 婷婷丁香在线视频 | 蜜桃麻豆www久久囤产精品 | 狠狠狠狠狠狠干 | 一区二区av | 日韩av在线不卡 | 四虎成人精品在永久免费 | 在线v| 色丁香综合 | 69视频在线播放 | wwxxxx日本| 国产美女免费视频 | 国产精彩视频 | 91精品伦理| 激情欧美一区二区三区免费看 | 亚洲电影网站 | 91免费试看 | 天堂黄色片 | 久久av免费观看 | 天天色天天草天天射 | 国产成人在线一区 | 国产精品一区二区在线观看 | 美女免费视频观看网站 | 亚洲黄色免费观看 | 日本性xxx| 久久五月天综合 | 欧美性生活免费 | 狠狠ri| 五月天婷婷狠狠 | av电影久久| 亚洲欧洲精品在线 | 超碰99在线 | 日韩av图片| 久久区二区 | 99精品热 | 色亚洲激情 | 国产福利电影网址 | 在线看中文字幕 | 日本久久中文 | a级免费观看 | 亚州免费视频 | 免费观看av | 久久久久久久久久久久久国产精品 | 国产尤物一区二区三区 | 蜜臀av性久久久久av蜜臀三区 | 国产精品免费一区二区三区 | 99精品网站 | 911国产精品 | 久久人人爽人人片av | 天天操天天干天天 | 91精品国产高清自在线观看 | 国产特级毛片aaaaaaa高清 | 国产亚洲情侣一区二区无 | 九九热av | 美女视频黄色免费 | 日韩一级电影在线观看 | 日韩av成人在线观看 | 美女免费黄网站 | 在线黄色免费 | 天天做天天干 | 日韩精品无 | 亚洲理论电影 | 国产精品色在线 | 在线电影a | 成人免费在线看片 | 婷色| 亚洲男人天堂a | 欧亚日韩精品一区二区在线 | 九色91福利 | 精品国内自产拍在线观看视频 | 国产精品一区二区在线观看免费 | 国产精品免费久久久久久久久久中文 | 国产 日韩 欧美 在线 | 久久手机在线视频 | 久久99精品国产麻豆婷婷 | 日本不卡一区二区三区在线观看 | 国产视频不卡一区 | 欧美99久久| 一区二区三区久久 | 午夜影视一区 | 国产视频亚洲精品 | 黄色一级免费网站 | 久久综合免费视频 | 激情网在线观看 | 久操视频在线观看 | 999久久久久 | 国产91在线观 | 国产成人精品免费在线观看 | 精品视频久久 | 免费看毛片网站 | 欧美一区二区三区在线看 | 啪啪免费视频网站 | 亚洲精品影院在线观看 | 九九久久国产 | 免费看的黄色小视频 | 亚洲一级理论片 | 婷婷激情综合五月天 | 五月婷在线播放 | 91福利区一区二区三区 | 免费日韩 精品中文字幕视频在线 | a级片网站 | 狠狠色丁香婷综合久久 | 婷婷在线网站 | 日韩欧美大片免费观看 | 天天操欧美 | 在线观看一 | 成人av在线电影 | 成人动漫精品一区二区 | 午夜av网站 | 成人一区二区在线观看 | 国产日产在线观看 | 成人免费观看大片 | 在线播放亚洲激情 | 超碰.com| 麻豆久久精品 | 亚洲成人免费观看 | 免费视频国产 | 人人爽人人爽人人爽人人爽 | 久章草在线 | a在线免费观看视频 | 国产精品久久久久aaaa九色 | 日韩特黄一级欧美毛片特黄 | 久久电影日韩 | 中文字幕在线观看亚洲 | 久久婷婷色 | 国产一区二区精品 | 精品久久久久一区二区国产 | 色婷婷亚洲婷婷 | 伊人色综合久久天天 | 久久国产香蕉视频 | 日韩精品中文字幕在线不卡尤物 | 99久热精品 | 夜夜骑日日操 | 久久夜夜操 | 国产成人免费在线 | 91精品夜夜 | 日韩3区 | 亚洲精品视频在线免费 | 亚洲激情国产精品 | 久久久久久久久电影 | 成人免费观看视频大全 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 欧美福利片在线观看 | 在线免费黄色av | 五月婷婷丁香网 | 亚洲精品456在线播放乱码 | 一区二区三区在线免费观看 | 国产精品久久久久四虎 | 最近高清中文字幕 | 日韩二区三区 | 特及黄色片 | 91久久久久久国产精品 | 黄色成品视频 | 国产精品乱码久久久久久1区2区 | 日本一区二区高清不卡 | 久久精品官网 | 亚洲精品美女久久久久网站 | 欧美久久综合 | 精品国产一区二区三区四区vr | 中文字幕在线一二 | 中文字幕 在线看 | 中文乱码视频在线观看 | 亚洲免费观看在线视频 | 亚洲va男人天堂 | 国产精品系列在线观看 | 国产精品欧美一区二区三区不卡 | 久久亚洲专区 | 国产 日韩 欧美 中文 在线播放 | 一级黄色免费网站 | 观看免费av | 天天色天天综合 | 国产一区二区影院 | 黄色一区三区 | 国产午夜精品免费一区二区三区视频 | 美女黄网站视频免费 | 久久艹在线观看 | 欧美一区视频 | 五月婷在线视频 | 亚洲黄色三级 | 国产a高清 | 五月天天色 | 免费美女av| 国产精品麻豆99久久久久久 | 天天搞夜夜骑 | 久久不卡日韩美女 | 天天操天天能 | 国产精品自在线拍国产 | 国产精品福利无圣光在线一区 | 久草精品免费 | 韩国精品一区二区三区六区色诱 | 国产视频一区二区三区在线 | 亚洲一区二区三区四区在线视频 | 偷拍精品一区二区三区 | 91成人短视频在线观看 | 91精品免费在线视频 | 日日干夜夜操视频 | 久操视频在线观看 | 日本视频网 | 国内精品久久久久久久久久久 | 亚洲综合成人专区片 | 国产91在线观 | 亚洲精品免费看 | 在线观看成人av | 草久久影院 | 日韩精品大片 | 国产精品久久在线观看 | 久久精品一区二区三 | 天天摸天天舔天天操 | www.五月天| 日批在线看 | 午夜骚影 | 婷婷六月丁 | www.成人久久| av成人在线网站 | 丁香婷婷激情网 | 欧美三级高清 | 久久久久久国产精品 | 在线91播放 | 日韩欧美在线不卡 | 天天操天天操天天操天天操天天操天天操 | 在线精品国产 | 国产麻豆电影在线观看 | 天天综合视频在线观看 | 久久人人爽人人人人片 | 国产精品二区在线 | 色网站国产精品 | 亚洲天堂毛片 | 久久国产精品区 | 久影院| 91麻豆国产福利在线观看 | 日韩欧美精品一区二区三区经典 | 国产精品一区免费看8c0m | 日本特黄特色aaa大片免费 | 国产激情电影综合在线看 | 麻豆91在线观看 | 91精品免费在线 | 日韩啪视频 | 在线视频亚洲 | 国产中文字幕大全 | 五月婷婷色综合 | 午夜黄色一级片 | 在线观看亚洲免费视频 | 国产精品久久久久久久妇 | 精品久久久久久久久久岛国gif | 99久久久久久国产精品 | 精品久久一区 | 国产在线观看你懂的 | 日韩av在线看 | 在线观看国产高清视频 | 在线视频手机国产 | 国产精品美女久久久 | 91亚洲网| 91视频高清 | 91久草视频 | 国产日韩在线看 | 国产精品区二区三区日本 | 97理论片| 亚洲精品玖玖玖av在线看 | 黄色av免费在线 | 欧美天堂视频在线 | 黄a在线观看| 午夜精品久久久久久中宇69 | 中文字幕欲求不满 | 欧美精选一区二区三区 | 国产v亚洲v | 激情丁香综合五月 | 超碰97国产 | 91久久国产露脸精品国产闺蜜 | 国产在线观看免费av | 国产精品一级视频 | 视频二区在线视频 | 人人爱天天操 | 久久精品草| 国产成人av片 | 国产99中文字幕 | 欧美日韩裸体免费视频 | 亚洲综合一区二区精品导航 | 国产又粗又猛又爽 | 亚洲精品66 | 黄网站免费大全入口 | 丁香电影小说免费视频观看 | 最新av网址在线观看 | 亚洲视屏在线播放 | 免费成人在线观看视频 | 成人性生交视频 | 亚洲精品一区二区三区在线观看 | 国产精品少妇 | 久久99免费视频 | www.xxxx变态.com| 欧美另类交人妖 | 天堂av色婷婷一区二区三区 | 欧美一级电影 | 青青看片 | 97碰碰视频 | 国产高清日韩 | 99亚洲精品视频 | 黄色一级大片在线免费看产 | 91综合视频在线观看 | 成人一级电影在线观看 | 天堂在线一区 | 欧美精品午夜 | 91日韩精品视频 | 91精品在线免费 | 日韩免费看视频 | 国产亚洲精品久久久久久久久久久久 | 久久99视频精品 | 亚洲午夜精品福利 | 夜夜躁日日躁 | 天天射网站 | 99r国产精品| 欧美色图88 | 国产不卡av在线播放 | 亚洲精品乱码久久久久久蜜桃91 | 四川妇女搡bbbb搡bbbb搡 | 四虎www com| 久久精品国产亚洲精品 | 日韩视频中文字幕 | 久久免费a | 99热在线国产 | 精品亚洲国产视频 | 伊人婷婷色 | 麻豆成人精品视频 | 99精品久久精品一区二区 | 国产精品欧美久久久久久 | 成片视频在线观看 | 开心婷婷色 | 夜夜操天天干 | 亚洲一区尤物 | 国产夫妻性生活自拍 | 久草网视频 | 久久99精品久久久久久 | 黄色三级网站在线观看 | 久久一区二区三区四区 | 一区二区三区精品在线视频 | 国产精品免费久久久久久 | 日韩在线一级 | 国产午夜在线 | 91精品国产91p65 | 免费av片在线 | 特级西西人体444是什么意思 | 免费三级在线 | 国产一级在线观看视频 | 视频 天天草 | 欧美午夜精品久久久久久孕妇 | 色综合天天综合 | 日韩av电影网站在线观看 | 久久免费国产视频 | 中文字幕在线观看一区二区 | 97在线免费| 亚洲色图 校园春色 | 日韩精品一区二区电影 | 天天操夜 | 最新免费av在线 | 99精品在线直播 | 超级碰碰碰碰 | 精品婷婷 | 黄色小视频在线观看免费 | 91av原创| 免费观看第二部31集 | 久久久天堂 | 国产精品九九九 | 午夜精品久久久 | 97福利| 五月天婷亚洲天综合网精品偷 | 婷婷在线不卡 | 国内精品久久久久久久久久久久 | 亚洲日韩精品欧美一区二区 | av性在线| 久久伊人91| 中文字幕在线影院 | 天天操夜夜曰 | 99久久精品无码一区二区毛片 | 天天色天天射天天干 | 久久久96| 综合激情久久 | 91污污视频在线观看 | 色av婷婷 | 一区二区三区在线观看免费 | 在线视频国产区 | 91禁看片| 久久久久| 九九精品视频在线 | 久久精品国产亚洲 | 96久久久| 国产精品精品国产婷婷这里av | 国产成人一区二区三区电影 | 91视频最新网址 | 日日干天天爽 | 婷婷丁香激情综合 | 欧美精品在线观看一区 | 亚洲国产成人久久 | 国产精品久久久久久久久久久免费看 | 91精品国产亚洲 | 亚洲精品www久久久久久 | 伊人狠狠色 | 久久 一区 | 香蕉视频导航 | 97超碰超碰久久福利超碰 | 欧美日韩精品在线 | 91av电影在线观看 | 久久久久久久久久久久久9999 | 日韩免费在线观看视频 | 亚洲一级片在线观看 | 深夜国产在线 | 欧美综合在线视频 | 草久久久 | 天天在线视频色 | 欧美久久久久久久久中文字幕 | 在线观看国产一区二区 | 五月天色综合 | 色网站免费在线看 | 国产又粗又猛又色又黄网站 | 国产一区二区在线免费观看 | 免费视频一二三 | 最近乱久中文字幕 | 中文字幕视频播放 | 日韩激情在线视频 | 国产精品一区二区中文字幕 | 日韩欧美高清不卡 | 波多野结衣电影久久 | 国产成人久久精品77777综合 | 中文区中文字幕免费看 | 97超在线视频 | 一级片视频免费观看 | 欧美日韩xx | 日韩理论电影网 | 久久精品国产精品亚洲精品 | 99热只有精品在线观看 | 亚洲热视频 | 免费国产在线视频 | 亚洲综合视频网 | 亚洲丁香日韩 | 亚洲欧美视频一区二区三区 | 日韩成人精品一区二区三区 | 精品一区 精品二区 | 久久人91精品久久久久久不卡 | 欧美analxxxx | 日日干av | 国产精品一区二区av影院萌芽 | 中文字幕在线观看免费高清电影 | 久久久久免费精品视频 | 在线视频久 | 久久久久久伊人 | 精品国产乱码久久久久久1区2匹 | 911久久香蕉国产线看观看 | 亚洲成人资源在线观看 | 久久精品一区二区三区国产主播 | 成人黄色在线播放 | 国产福利网站 | 在线影视 一区 二区 三区 | 五月婷婷黄色网 | 日韩免费中文 | 亚洲91中文字幕无线码三区 | 精品久久久免费 | 中文资源在线官网 | 日日色综合 | 最新成人在线 | 亚洲国产高清视频 | 国产三级香港三韩国三级 | 亚洲午夜精品久久久久久久久久久久 | 国产成人av网| 天天操天天操天天操天天操天天操 | www.黄色网.com | 免费视频在线观看网站 | 久久激情视频免费观看 | 视频福利在线观看 | 玖玖爱在线观看 | 日本久久精品视频 | 岛国av在线不卡 | 色婷婷综合久久久中文字幕 | 久久综合五月婷婷 | 激情视频国产 | 久久久一本精品99久久精品 | 日韩中文字幕免费视频 | 日韩av区| 成人免费观看在线视频 | 中文字幕在线视频一区二区 | 五月婷婷激情综合网 | 欧美日韩视频一区二区三区 | 国产成人在线一区 | 在线观看免费 | 激情五月av | 亚洲女同ⅹxx女同tv | 狠狠狠狠狠色综合 | 成人啊 v| 欧美性做爰猛烈叫床潮 | 国产99久久久久 | 中文字幕av在线不卡 | 中文字幕 国产视频 | 欧美大香线蕉线伊人久久 | 97精品在线观看 | 日韩在线观看三区 | 天天操天天操 | 黄色三级免费看 | 99视频国产在线 | av动态图片 | 四虎永久精品在线 | 狠狠综合久久 | 一级黄色片在线免费观看 | 成年人国产精品 | 青青看片 | 久久久久欠精品国产毛片国产毛生 | 国产午夜精品一区二区三区在线观看 | 国产成人精品一区二区在线观看 | 久久国产91| 视频国产 | 国产玖玖在线 | 日韩一二三在线 | 久久国内精品 | 国产一区二区在线观看视频 | 99999精品 | 欧美成人理伦片 | 91成年人视频 | 天天射天天舔天天干 | 久99久精品视频免费观看 | 91精品在线免费视频 | 国产一级片观看 | 国产精品久久久久久高潮 | bbbb操bbbb| 国产日韩欧美在线播放 | 天天操天天拍 | 久久综合在线 | 日韩免费在线观看视频 | 日韩理论电影在线观看 | 中文字幕永久 | 日本中文字幕在线看 | 狠狠狠狠狠狠狠狠 | 国产精品综合久久久 | 精品成人在线 | 人人精品 | 亚洲日本va中文字幕 | 久久国产欧美日韩精品 | 国产精品久久久久一区二区三区 | a久久久久 | 日韩小视频网站 | 免费色av | 九九色在线| 国产精品久久久久久久毛片 | 国产三级av在线 | 久久五月婷婷丁香社区 | 日日干,天天干 | 一区二区中文字幕在线播放 | 精品视频国产 | 97色狠狠 | 在线观看 国产 | 超碰在线公开免费 | 友田真希av| 日韩黄色免费电影 | 最新91在线视频 | jizzjizzjizz亚洲| 日韩三级av | 91精品国产一区二区三区 | 国产在线观看免费观看 | 国产成人久久av977小说 | 欧美午夜视频在线 | 国产91勾搭技师精品 | 精品国产成人av在线免 | 亚洲国产欧美在线人成大黄瓜 | 一级免费黄色 | 国产精品女人久久久 | 五月综合激情婷婷 | 91高清视频| 色婷婷成人 | 国产黄色成人 | 亚洲欧美成人综合 | 亚洲午夜小视频 | 四虎在线永久免费观看 | 国产日韩欧美在线影视 | 探花视频在线观看 | 国产专区视频在线观看 | 99性视频| 91亚洲国产成人久久精品网站 | 国产成人一区二区三区影院在线 | 成人福利av| 人人网人人爽 | 蜜臀久久99精品久久久酒店新书 | 欧美日韩一区二区免费在线观看 | 99在线高清视频在线播放 | 99久高清在线观看视频99精品热在线观看视频 | 久章操 | 一区二区三区动漫 | 婷婷丁香色 | 欧美久久久久 | 操操操av| 日日久视频 | 亚洲精品456在线播放 | 久久精品免视看 | 日韩欧美v| 1024久久| 激情综合狠狠 | 欧美精品一区二区蜜臀亚洲 | 伊人伊成久久人综合网小说 | 成人在线观看免费视频 | www日日夜夜 | 久久久99精品免费观看app | 91精品免费看 | 亚洲一二区视频 | 97超碰网 | 日本三级国产 | 色国产在线 | 国产成人av一区二区三区在线观看 | 国产视频在线播放 | 热久在线| 日韩电影中文 | 免费在线视频一区二区 | 黄色国产大片 | 色资源在线 | 久久精品99精品国产香蕉 | 99r在线视频| 波多野结衣精品 | 深爱激情站 | 九九久 | 欧美ⅹxxxxxx | 91香蕉视频在线下载 | 亚洲v欧美v国产v在线观看 | 九九视频这里只有精品 | 成年人黄色免费网站 | 深夜免费网站 | 精品一区二区三区四区在线 | 国产精品久久久久久久免费大片 | 97久久精品午夜一区二区 | 色先锋资源网 | 天天干,天天射,天天操,天天摸 | 黄色片免费在线 | 黄色www在线观看 | 国产一二三在线视频 | 久久精品欧美一区 | 91插插插免费视频 | 欧美aaa大片| 久久女教师 | 视频在线观看一区 | 91精品啪在线观看国产81旧版 | 久久成年人视频 | 超碰成人网 | www黄色| 91色在线观看 | 在线视频 精品 | 国产精品九九久久久久久久 | 久久这里只有精品1 | 在线观看国产一区 | 91麻豆精品一区二区三区 | av中文国产| 国产精久久久久久久 | 亚洲欧美国产精品va在线观看 | www.天天射| 亚洲精品视频网 | 国产一区二区三区在线 | 最新国产在线观看 | 日韩免费视频 | 国模吧一区 | www.色五月.com| 日韩精品第一区 | 91精品天码美女少妇 | 久久久久久高清 | 久久午夜精品视频 | 国产精品高清一区二区三区 | 午夜精品电影 | 久久视频免费在线观看 | 久草在在线视频 | 97人人超碰在线 | 色综合久久久久综合 |