久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Intel VT学习笔记(六)—— VM-Exit Handler

發(fā)布時間:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Intel VT学习笔记(六)—— VM-Exit Handler 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Intel VT學(xué)習(xí)筆記(六)—— VM-Exit Handler

  • Reutrn To DriverEntry
  • VM-Exit Handler
    • External interrupt
    • I/O instruction
    • Control-register accesses
    • CPUID
    • VMCALL
  • 完整代碼
  • 參考資料

Reutrn To DriverEntry

描述:當開啟VT后,就可以從DriverEntry中返回了,但應(yīng)該怎么做呢?

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING reg_path) {DbgPrint("Driver load. \r\n");pDriver->DriverUnload = DriverUnload;StartVirtualTechnology(); //開啟VT//=========================================//how do I get here?//=========================================return STATUS_SUCCESS; }

實現(xiàn)思路

  • 在開啟VT前,將當前的CPU狀態(tài)保存在棧里,然后記錄ESP。
  • 使用類似于在StartVirtualTechnology函數(shù)下方打標簽的方式,保存其地址作為返回地址。
  • 開啟VT后,將EIP指向記錄的返回地址,并將ESP指向之前保存的CPU狀態(tài)。
  • 恢復(fù)CPU狀態(tài),繼續(xù)向下執(zhí)行。
  • 代碼實現(xiàn)(在Guest中執(zhí)行INT 3或VMCALL都可以):

    //driver.c NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING reg_path) {DbgPrint("Driver load. \r\n");pDriver->DriverUnload = DriverUnload;__asm{pushadpushfdmov g_ret_esp, espmov g_ret_eip, offset RET_EIP}StartVirtualTechnology(); //開啟VTRET_EIP:__asm{popfdpopad}Log("Return To DriverEntry .", 0);return STATUS_SUCCESS; } //exithandler.c extern ULONG g_ret_esp; extern ULONG g_ret_eip;GUEST_REGS g_GuestRegs;static void VMMEntryPointEbd(void) {ULONG ExitReason;ExitReason = Vmx_VmRead(VM_EXIT_REASON);Log("ExitReason", ExitReason);g_GuestRegs.esp = Vmx_VmRead(GUEST_RSP);g_GuestRegs.eip = Vmx_VmRead(GUEST_RIP);Log("g_GuestRegs.esp", g_GuestRegs.esp);Log("g_GuestRegs.eip", g_GuestRegs.eip);__asm{mov esp, g_ret_espjmp g_ret_eip} }

    執(zhí)行結(jié)果:

    可以看到,CPU已經(jīng)成功回到了DriverEntry,并能夠關(guān)閉VT以及卸載驅(qū)動。

    VM-Exit Handler

    描述:當Guest觸發(fā)VM-Exit時,會進入Host進行處理。如果需要在Return To DriverEntry后使系統(tǒng)保持VT模式,則需要將返回代碼寫在Guest中,并在VM-Exit Handler中對各類VM-Exit事件進行處理。

    代碼實現(xiàn):

    //vtsystem.c ... void __declspec(naked) GuestEntry() {__asm {mov ax, esmov es, axmov ax, dsmov ds, axmov ax, fsmov fs, axmov ax, gsmov gs, axmov ax, ssmov ss, axmov esp, g_ret_espjmp g_ret_eip} } ... //exithandler.c ... static void VMMEntryPointEbd(void) {ULONG ExitReason;ULONG ExitInstructionLength;ULONG GuestResumeEIP;ExitReason = Vmx_VmRead(VM_EXIT_REASON); //獲取退出碼ExitInstructionLength = Vmx_VmRead(VM_EXIT_INSTRUCTION_LEN); //獲取指令長度Log("ExitReason", ExitReason);g_GuestRegs.eflags = Vmx_VmRead(GUEST_RFLAGS);g_GuestRegs.esp = Vmx_VmRead(GUEST_RSP);g_GuestRegs.eip = Vmx_VmRead(GUEST_RIP);Log("g_GuestRegs.eflags", g_GuestRegs.eflags);Log("g_GuestRegs.esp", g_GuestRegs.esp);Log("g_GuestRegs.eip", g_GuestRegs.eip);switch(ExitReason){case ...: //需要處理的退出碼//處理程序break;...default:Log("not handled reason: %p", ExitReason);__asm int 3;break;}__asm INT 3; }void __declspec(naked) VMMEntryPoint(void) {__asm{//需要設(shè)置fs和gs,否則無法正常運行mov ax, fsmov fs, axmov ax, gsmov gs, ax}Log("VM Exit", 0);//盡量不要在裸函數(shù)中定義局部變量,或?qū)崿F(xiàn)太多功能,最好封裝成函數(shù)VMMEntryPointEbd(); } ...

    External interrupt

    描述:通過設(shè)置,可以使外部中斷觸發(fā)VM-Exit。

    令人感到奇怪的是,明明在設(shè)置VMCS字段的時候已經(jīng)將TF位置0了,卻仍然捕捉到了外部中斷。

    Vmx_VmWrite(GUEST_RFLAGS, Asm_GetEflags() & ~0x200); //cli

    運行結(jié)果:

    由于筆剛接觸這一塊,是跟著周壑老師的視頻做的實驗,而周壑老師做實驗的時候并沒有遇到01錯誤,因此一下子給筆者整不會了,折磨了很久,谷歌百度均無果,最終通過查手冊解決(手冊YYDS),原來是控制寄存器的設(shè)置出了問題。

    查手冊卷3附錄C,退出碼1對應(yīng)的信息是外部中斷,原因是控制域中相應(yīng)位被設(shè)置。

    翻閱控制域相關(guān)部分(詳見24.6.1),在「Pin-Based VM-Execution Controls」找到關(guān)于外部中斷的詳細說明。

    這里說,如果IA32_VMX_PINBASED_CTLS MSR的第0位為1,表示外部中斷將觸發(fā)VM-Exit,并且ELFAGS的TF位失效。

    找到原因了,那么接下來,只要在設(shè)置IA32_VMX_PINBASED_CTLS MSR的時候?qū)⒌?位置0即可。

    當然,如果需要手動處理外部中斷,可以忽略這一步。

    static ULONG VmxAdjustControls(ULONG Ctl, ULONG Msr) {LARGE_INTEGER MsrValue;MsrValue.QuadPart = Asm_ReadMsr(Msr);Ctl &= MsrValue.HighPart; /* bit == 0 in high word ==> must be zero */Ctl |= MsrValue.LowPart; /* bit == 1 in low word ==> must be one */if (MSR_IA32_VMX_PINBASED_CTLS == Msr){Ctl &= ~1;} }

    運行結(jié)果:

    可以看到,退出碼01已經(jīng)消失了,此時出現(xiàn)了一個新的退出碼1E。

    I/O instruction

    描述:訪問I/O時觸發(fā)了VM-Exit,對應(yīng)退出碼1E。

    退出碼1E的出現(xiàn)也是在意料之外的,和01類似,也是由于MSR寄存器的設(shè)置出現(xiàn)了問題。

    從手冊對該退出碼的描述可以看到,除了訪問I/O,還需要滿足兩個條件。

  • 對應(yīng)MSR的「use I/O bitmaps」位為0以及「unconditional I/O exiting」位為1
  • 「use I/O bitmaps」VM執(zhí)行控制為1,與I/O指令訪問的一個端口相關(guān)的位圖中有一位為1。
  • 第二個條件不太理解是什么意思,但是第一個條件我們可以手動給他取消。

    關(guān)于「use I/O bitmaps」和「unconditional I/O exiting」標志位可查閱Intel手冊卷3第24.6.2小節(jié),是IA32_VMX_PROCBASED_CTLS MSR寄存器的第24比特位和第25比特位。。

    目前無需了解其具體含義,把它們?nèi)恐?先。

    static ULONG VmxAdjustControls(ULONG Ctl, ULONG Msr) {LARGE_INTEGER MsrValue;MsrValue.QuadPart = Asm_ReadMsr(Msr);Ctl &= MsrValue.HighPart; /* bit == 0 in high word ==> must be zero */Ctl |= MsrValue.LowPart; /* bit == 1 in low word ==> must be one */if (MSR_IA32_VMX_PINBASED_CTLS == Msr) //關(guān)閉外部中斷信號{Ctl &= ~1;}if (MSR_IA32_VMX_PROCBASED_CTLS == Msr) //關(guān)閉I/O訪問信號{Ctl &= ~0x03000000;}return Ctl; }

    執(zhí)行結(jié)果:

    好了,現(xiàn)在退出碼1E也消失了,捕獲到的退出碼變成了1C,總算可以進入正題了。

    Control-register accesses

    描述:當Guest試圖使用控制寄存器時會觸發(fā)該事件,對應(yīng)的退出碼為0x1C。

    處理方式:當Guest試圖使用控制寄存器,并觸發(fā)VM-Exit來到Host后,Host通過讀取相應(yīng)的信息,幫助Guest完成對應(yīng)的功能,然后回到觸發(fā)該事件的下一句指令。

    ExitQualification = Vmx_VmRead(EXIT_QUALIFICATION);

    關(guān)于「Control-register accesses」錯誤的具體信息可參考Intel開發(fā)手冊卷3第27.2小節(jié)。


    值得注意的是,在實現(xiàn)Handler的過程中,只攔截Cr3即可。

    具體思路:

  • 如果分析錯誤信息后發(fā)現(xiàn)是操作的話,就把對應(yīng)的值寫到VMCS相應(yīng)的字段中。
  • 如果發(fā)現(xiàn)是操作的話,就先將其讀到g_GuestRegs全局變量的對應(yīng)寄存器成員中,然后在Resume前將其寫到寄存器當中,調(diào)用Resume的時候會自動寫到VMCS相應(yīng)的字段中。
  • 代碼實現(xiàn):

    void HandleCrAccess() {ULONG movcrControlRegister;ULONG movcrAccessType;ULONG movcrOperandType; //只是讀了,沒有使用,通常都是寄存器ULONG movcrGeneralPurposeRegister;ULONG movcrLMSWSourceData;ULONG ExitQualification;ExitQualification = Vmx_VmRead(EXIT_QUALIFICATION); //獲取具體信息movcrControlRegister = (ExitQualification & 0x0000000F); //控制寄存器下標movcrAccessType = ((ExitQualification & 0x00000030) >> 4); //讀/寫movcrOperandType = ((ExitQualification & 0x00000040) >> 6); //寄存器/內(nèi)存movcrGeneralPurposeRegister = ((ExitQualification & 0x00000F00) >> 8); //寄存器下標if (movcrControlRegister != 3) { // not for cr3__asm int 3}if (movcrAccessType == 0) { // CR3 <-- reg32Vmx_VmWrite(GUEST_CR3, *(PULONG)((ULONG)&g_GuestRegs + 4 * movcrGeneralPurposeRegister));}else { // reg32 <-- CR3*(PULONG)((ULONG)&g_GuestRegs + 4 * movcrGeneralPurposeRegister) = Vmx_VmRead(GUEST_CR3);} }

    執(zhí)行結(jié)果:

    可以看到系統(tǒng)在不斷訪問控制寄存器,讓我們看看是誰干的。

    破案了,原來是線程切換的時候訪問了Cr3。

    由于系統(tǒng)在不斷地切換線程,因此也就在不斷地輸出調(diào)試信息,這個時候系統(tǒng)會處于假卡死狀態(tài),無法正常操作。

    把輸出調(diào)試信息的代碼注釋掉之后,系統(tǒng)就變得流暢了起來,但是這并不代表已經(jīng)完全沒問題了。

    當進行特定操作時,仍然會觸發(fā)其他原因?qū)е碌腣M-Exit,例如當打開一個進程時,會觸發(fā)退出碼0A(CPUID)。

    CPUID

    描述:匯編指令,用于獲取CPU的相關(guān)信息,當Guest調(diào)用該指令時,會觸發(fā)VM-Exit信號。

    處理方法:在Host中模擬執(zhí)行,并返回結(jié)果。

    void HandleCPUID() {//特殊處理,用于測試VT是否開啟,注意保證參數(shù)的獨立性。if (g_GuestRegs.eax == 'Mini'){g_GuestRegs.ebx = 0x88888888;g_GuestRegs.ecx = 0x11111111;g_GuestRegs.edx = 0x12345678;}//正常情況,替Guest模擬執(zhí)行CPUIDelse Asm_CPUID(g_GuestRegs.eax, &g_GuestRegs.eax, &g_GuestRegs.ebx, &g_GuestRegs.ecx, &g_GuestRegs.edx); }

    執(zhí)行結(jié)果(CPUID的調(diào)用頻次不高,開啟調(diào)試信息問題不大):

    可以發(fā)現(xiàn)已經(jīng)能夠正常處理CPUID指令,然后將EAX改為「Mini」的ASCII碼,再調(diào)用CPUID試試。

    ECX、EDX、EBX返回的結(jié)果正是Handle處理的結(jié)果,說明現(xiàn)在系統(tǒng)確實是處于VT模式。

    VMCALL

    描述:執(zhí)行VMCALL指令時,能夠觸發(fā)一次VM-Exit。

    使用場景:當需要退出VT模式時,如果直接調(diào)用VMXOFF指令,由于Guest將沒有權(quán)限執(zhí)行,因此將會出錯??尚械乃悸肥窍仁褂肰MCALL切換到VMX root模式,由Host來執(zhí)行退出部分的代碼。

    代碼實現(xiàn)

    ULONG g_vmcall_arg; ULONG g_stop_esp, g_stop_eip;void HandleVmCall() {if (g_vmcall_arg == 'SVT'){Vmx_VmClear(g_VMXCPU.pVMCSRegion_PA.LowPart, g_VMXCPU.pVMCSRegion_PA.HighPart);Vmx_VmxOff();__asm {mov esp, g_stop_espjmp g_stop_eip}}else {__asm int 3} }

    處理完這幾個退出碼之后,基本就初步實現(xiàn)了一個最小VT框架。如果后續(xù)遇到其它退出碼,可再通過查手冊解決。

    完整代碼

    //vtasm.h #ifndef VTASM_H #define VTASM_Htypedef union {struct{unsigned SSE3 : 1;unsigned PCLMULQDQ : 1;unsigned DTES64 : 1;unsigned MONITOR : 1;unsigned DS_CPL : 1;unsigned VMX : 1;unsigned SMX : 1;unsigned EIST : 1;unsigned TM2 : 1;unsigned SSSE3 : 1;unsigned Reserved : 22;};}_CPUID_ECX;typedef struct _IA32_FEATURE_CONTROL_MSR {unsigned Lock : 1; // Bit 0 is the lock bit - cannot be modified once lock is setunsigned Reserved1 : 1; // Undefinedunsigned EnableVmxon : 1; // Bit 2. If this bit is clear, VMXON causes a general protection exceptionunsigned Reserved2 : 29; // Undefinedunsigned Reserved3 : 32; // Undefined} IA32_FEATURE_CONTROL_MSR;typedef struct _VMX_BASIC_MSR {unsigned RevId : 32;unsigned szVmxOnRegion : 12;unsigned ClearBit : 1;unsigned Reserved : 3;unsigned PhysicalWidth : 1;unsigned DualMonitor : 1;unsigned MemoryType : 4;unsigned VmExitInformation : 1;unsigned Reserved2 : 9; } VMX_BASIC_MSR, * PVMX_BASIC_MSR;typedef union {struct{unsigned PE : 1;unsigned MP : 1;unsigned EM : 1;unsigned TS : 1;unsigned ET : 1;unsigned NE : 1;unsigned Reserved_1 : 10;unsigned WP : 1;unsigned Reserved_2 : 1;unsigned AM : 1;unsigned Reserved_3 : 10;unsigned NW : 1;unsigned CD : 1;unsigned PG : 1;//unsigned Reserved_64:32;};}_CR0;typedef union {struct {unsigned VME : 1;unsigned PVI : 1;unsigned TSD : 1;unsigned DE : 1;unsigned PSE : 1;unsigned PAE : 1;unsigned MCE : 1;unsigned PGE : 1;unsigned PCE : 1;unsigned OSFXSR : 1;unsigned PSXMMEXCPT : 1;unsigned UNKONOWN_1 : 1; //These are zerounsigned UNKONOWN_2 : 1; //These are zerounsigned VMXE : 1; //It's zero in normalunsigned Reserved : 18; //These are zero//unsigned Reserved_64:32;}; }_CR4;typedef union {struct{unsigned CF : 1;unsigned Unknown_1 : 1; //Always 1unsigned PF : 1;unsigned Unknown_2 : 1; //Always 0unsigned AF : 1;unsigned Unknown_3 : 1; //Always 0unsigned ZF : 1;unsigned SF : 1;unsigned TF : 1;unsigned IF : 1;unsigned DF : 1;unsigned OF : 1;unsigned TOPL : 2;unsigned NT : 1;unsigned Unknown_4 : 1;unsigned RF : 1;unsigned VM : 1;unsigned AC : 1;unsigned VIF : 1;unsigned VIP : 1;unsigned ID : 1;unsigned Reserved : 10; //Always 0//unsigned Reserved_64:32; //Always 0}; }_EFLAGS;void Asm_CPUID(ULONG uFn, PULONG uRet_EAX, PULONG uRet_EBX, PULONG uRet_ECX, PULONG uRet_EDX);void Asm_IN(ULONG uRet_EAX, ULONG uPort);ULONG64 Asm_ReadMsr(ULONG uIndex);ULONG Asm_GetEflags(); ULONG Asm_GetCs(); ULONG Asm_GetDs(); ULONG Asm_GetEs(); ULONG Asm_GetFs(); ULONG Asm_GetGs(); ULONG Asm_GetSs(); ULONG Asm_GetTr();ULONG Asm_GetGdtBase(); ULONG Asm_GetIdtBase(); ULONG Asm_GetGdtLimit(); ULONG Asm_GetIdtLimit();ULONG Asm_GetCr0(); ULONG Asm_GetCr3(); ULONG Asm_GetCr4();void Asm_SetCr4(ULONG uNewCr4);void Vmx_VmxOn(ULONG LowPart, ULONG HighPart); void Vmx_VmxOff();void Vmx_VmClear(ULONG LowPart, ULONG HighPart); void Vmx_VmPtrld(ULONG LowPart, ULONG HighPart); ULONG Vmx_VmRead(ULONG uField); void Vmx_VmWrite(ULONG uField, ULONG uValue); void Vmx_VmLaunch(); void Vmx_VmCall();#endif //vtasm.asm .686p .model flat, stdcall option casemap:none.data.codeAsm_CPUID Proc uses ebx esi edi fn:dword, ret_eax:dword, ret_ebx:dword, ret_ecx:dword, ret_edx:dwordmov eax, fncpuidmov esi, ret_eaxmov dword ptr [esi], eaxmov esi, ret_ebxmov dword ptr [esi], ebxmov esi, ret_ecxmov dword ptr [esi], ecxmov esi, ret_edxmov dword ptr [esi], edxret Asm_CPUID EndpAsm_IN Proc uRet_EAX:dword, uPort:dwordmov eax, uRet_EAXmov edx, uPortin eax, dx Asm_IN EndpAsm_ReadMsr Proc Index:dwordmov ecx,Indexrdmsrret Asm_ReadMsr EndpAsm_GetCr0 Procmov eax, cr0ret Asm_GetCr0 EndpAsm_GetCr3 Procmov eax, cr3ret Asm_GetCr3 EndpAsm_GetCr4 Procmov eax, cr4ret Asm_GetCr4 EndpAsm_SetCr4 Proc NewCr4:dwordmov eax,NewCr4mov cr4, eaxret Asm_SetCr4 EndpVmx_VmxOn Proc LowPart:dword,HighPart:dwordpush HighPartpush LowPartVmxon qword ptr [esp]add esp,8ret Vmx_VmxOn EndpVmx_VmxOff ProcVmxoffret Vmx_VmxOff EndpAsm_GetEflags PROCpushfdpop eaxret Asm_GetEflags ENDPVmx_VmClear Proc LowPart:dword,HighPart:dwordpush HighPartpush LowPartvmclear qword ptr [esp]add esp,8ret Vmx_VmClear endpVmx_VmPtrld Proc LowPart:dword,HighPart:dwordpush HighPartpush LowPartvmptrld qword ptr [esp]add esp,8ret Vmx_VmPtrld endpVmx_VmRead Proc uses ecx Field:dwordmov eax,Fieldvmread ecx,eaxmov eax,ecxret Vmx_VmRead endpVmx_VmWrite Proc uses ecx Field:dword,Value:dwordmov eax,Fieldmov ecx,Valuevmwrite eax,ecxret Vmx_VmWrite endpAsm_GetCs PROCmov eax, csret Asm_GetCs ENDPAsm_GetDs PROCmov eax, dsret Asm_GetDs ENDPAsm_GetEs PROCmov eax, esret Asm_GetEs ENDPAsm_GetSs PROCmov eax, ssret Asm_GetSs ENDPAsm_GetFs PROCmov eax, fsret Asm_GetFs ENDPAsm_GetGs PROCmov eax, gsret Asm_GetGs ENDPAsm_GetTr PROCstr eaxret Asm_GetTr ENDPAsm_GetGdtBase PROCLOCAL gdtr[10]:BYTEsgdt gdtrmov eax, dword PTR gdtr[2]ret Asm_GetGdtBase ENDPAsm_GetGdtLimit PROCLOCAL gdtr[10]:BYTEsgdt gdtrmov ax, WORD PTR gdtr[0]ret Asm_GetGdtLimit ENDPAsm_GetIdtBase PROCLOCAL idtr[10]:BYTEsidt idtrmov eax, dword PTR idtr[2]ret Asm_GetIdtBase ENDPAsm_GetIdtLimit PROCLOCAL idtr[10]:BYTEsidt idtrmov ax, WORD PTR idtr[0]ret Asm_GetIdtLimit ENDPVmx_VmLaunch Procvmlaunchret Vmx_VmLaunch endpVmx_VmCall Procvmcallret Vmx_VmCall endpEND //vtsystem.h #ifndef VTSYSTEM_H #define VTSYSTEM_H #include <ntddk.h>/*MSR definition*/ #define MSR_IA32_FEATURE_CONTROL 0x03a #define MSR_IA32_VMX_BASIC 0x480 #define MSR_IA32_VMX_PINBASED_CTLS 0x481 #define MSR_IA32_VMX_PROCBASED_CTLS 0x482 #define MSR_IA32_VMX_EXIT_CTLS 0x483 #define MSR_IA32_VMX_ENTRY_CTLS 0x484#define MSR_IA32_SYSENTER_CS 0x174 #define MSR_IA32_SYSENTER_ESP 0x175 #define MSR_IA32_SYSENTER_EIP 0x176 #define MSR_IA32_DEBUGCTL 0x1d9//VMX Exit Reasons #define EXIT_REASON_CPUID 10 #define EXIT_REASON_VMCALL 18 #define EXIT_REASON_CR_ACCESS 28typedef struct _VMX_CPU {PVOID pVMXONRegion;PHYSICAL_ADDRESS pVMXONRegion_PA;PVOID pVMCSRegion;PHYSICAL_ADDRESS pVMCSRegion_PA;PVOID pStack;BOOLEAN bVTStartSuccess; }VMX_CPU, * PVMX_CPU;/* VMCS Encordings */ enum {VIRTUAL_PROCESSOR_ID = 0x00000000,POSTED_INTR_NV = 0x00000002,GUEST_ES_SELECTOR = 0x00000800,GUEST_CS_SELECTOR = 0x00000802,GUEST_SS_SELECTOR = 0x00000804,GUEST_DS_SELECTOR = 0x00000806,GUEST_FS_SELECTOR = 0x00000808,GUEST_GS_SELECTOR = 0x0000080a,GUEST_LDTR_SELECTOR = 0x0000080c,GUEST_TR_SELECTOR = 0x0000080e,GUEST_INTR_STATUS = 0x00000810,HOST_ES_SELECTOR = 0x00000c00,HOST_CS_SELECTOR = 0x00000c02,HOST_SS_SELECTOR = 0x00000c04,HOST_DS_SELECTOR = 0x00000c06,HOST_FS_SELECTOR = 0x00000c08,HOST_GS_SELECTOR = 0x00000c0a,HOST_TR_SELECTOR = 0x00000c0c,IO_BITMAP_A = 0x00002000,IO_BITMAP_A_HIGH = 0x00002001,IO_BITMAP_B = 0x00002002,IO_BITMAP_B_HIGH = 0x00002003,MSR_BITMAP = 0x00002004,MSR_BITMAP_HIGH = 0x00002005,VM_EXIT_MSR_STORE_ADDR = 0x00002006,VM_EXIT_MSR_STORE_ADDR_HIGH = 0x00002007,VM_EXIT_MSR_LOAD_ADDR = 0x00002008,VM_EXIT_MSR_LOAD_ADDR_HIGH = 0x00002009,VM_ENTRY_MSR_LOAD_ADDR = 0x0000200a,VM_ENTRY_MSR_LOAD_ADDR_HIGH = 0x0000200b,TSC_OFFSET = 0x00002010,TSC_OFFSET_HIGH = 0x00002011,VIRTUAL_APIC_PAGE_ADDR = 0x00002012,VIRTUAL_APIC_PAGE_ADDR_HIGH = 0x00002013,APIC_ACCESS_ADDR = 0x00002014,APIC_ACCESS_ADDR_HIGH = 0x00002015,POSTED_INTR_DESC_ADDR = 0x00002016,POSTED_INTR_DESC_ADDR_HIGH = 0x00002017,EPT_POINTER = 0x0000201a,EPT_POINTER_HIGH = 0x0000201b,EOI_EXIT_BITMAP0 = 0x0000201c,EOI_EXIT_BITMAP0_HIGH = 0x0000201d,EOI_EXIT_BITMAP1 = 0x0000201e,EOI_EXIT_BITMAP1_HIGH = 0x0000201f,EOI_EXIT_BITMAP2 = 0x00002020,EOI_EXIT_BITMAP2_HIGH = 0x00002021,EOI_EXIT_BITMAP3 = 0x00002022,EOI_EXIT_BITMAP3_HIGH = 0x00002023,VMREAD_BITMAP = 0x00002026,VMWRITE_BITMAP = 0x00002028,XSS_EXIT_BITMAP = 0x0000202C,XSS_EXIT_BITMAP_HIGH = 0x0000202D,GUEST_PHYSICAL_ADDRESS = 0x00002400,GUEST_PHYSICAL_ADDRESS_HIGH = 0x00002401,VMCS_LINK_POINTER = 0x00002800,VMCS_LINK_POINTER_HIGH = 0x00002801,GUEST_IA32_DEBUGCTL = 0x00002802,GUEST_IA32_DEBUGCTL_HIGH = 0x00002803,GUEST_IA32_PAT = 0x00002804,GUEST_IA32_PAT_HIGH = 0x00002805,GUEST_IA32_EFER = 0x00002806,GUEST_IA32_EFER_HIGH = 0x00002807,GUEST_IA32_PERF_GLOBAL_CTRL = 0x00002808,GUEST_IA32_PERF_GLOBAL_CTRL_HIGH = 0x00002809,GUEST_PDPTR0 = 0x0000280a,GUEST_PDPTR0_HIGH = 0x0000280b,GUEST_PDPTR1 = 0x0000280c,GUEST_PDPTR1_HIGH = 0x0000280d,GUEST_PDPTR2 = 0x0000280e,GUEST_PDPTR2_HIGH = 0x0000280f,GUEST_PDPTR3 = 0x00002810,GUEST_PDPTR3_HIGH = 0x00002811,GUEST_BNDCFGS = 0x00002812,GUEST_BNDCFGS_HIGH = 0x00002813,HOST_IA32_PAT = 0x00002c00,HOST_IA32_PAT_HIGH = 0x00002c01,HOST_IA32_EFER = 0x00002c02,HOST_IA32_EFER_HIGH = 0x00002c03,HOST_IA32_PERF_GLOBAL_CTRL = 0x00002c04,HOST_IA32_PERF_GLOBAL_CTRL_HIGH = 0x00002c05,PIN_BASED_VM_EXEC_CONTROL = 0x00004000,CPU_BASED_VM_EXEC_CONTROL = 0x00004002,EXCEPTION_BITMAP = 0x00004004,PAGE_FAULT_ERROR_CODE_MASK = 0x00004006,PAGE_FAULT_ERROR_CODE_MATCH = 0x00004008,CR3_TARGET_COUNT = 0x0000400a,VM_EXIT_CONTROLS = 0x0000400c,VM_EXIT_MSR_STORE_COUNT = 0x0000400e,VM_EXIT_MSR_LOAD_COUNT = 0x00004010,VM_ENTRY_CONTROLS = 0x00004012,VM_ENTRY_MSR_LOAD_COUNT = 0x00004014,VM_ENTRY_INTR_INFO_FIELD = 0x00004016,VM_ENTRY_EXCEPTION_ERROR_CODE = 0x00004018,VM_ENTRY_INSTRUCTION_LEN = 0x0000401a,TPR_THRESHOLD = 0x0000401c,SECONDARY_VM_EXEC_CONTROL = 0x0000401e,PLE_GAP = 0x00004020,PLE_WINDOW = 0x00004022,VM_INSTRUCTION_ERROR = 0x00004400,VM_EXIT_REASON = 0x00004402,VM_EXIT_INTR_INFO = 0x00004404,VM_EXIT_INTR_ERROR_CODE = 0x00004406,IDT_VECTORING_INFO_FIELD = 0x00004408,IDT_VECTORING_ERROR_CODE = 0x0000440a,VM_EXIT_INSTRUCTION_LEN = 0x0000440c,VMX_INSTRUCTION_INFO = 0x0000440e,GUEST_ES_LIMIT = 0x00004800,GUEST_CS_LIMIT = 0x00004802,GUEST_SS_LIMIT = 0x00004804,GUEST_DS_LIMIT = 0x00004806,GUEST_FS_LIMIT = 0x00004808,GUEST_GS_LIMIT = 0x0000480a,GUEST_LDTR_LIMIT = 0x0000480c,GUEST_TR_LIMIT = 0x0000480e,GUEST_GDTR_LIMIT = 0x00004810,GUEST_IDTR_LIMIT = 0x00004812,GUEST_ES_AR_BYTES = 0x00004814,GUEST_CS_AR_BYTES = 0x00004816,GUEST_SS_AR_BYTES = 0x00004818,GUEST_DS_AR_BYTES = 0x0000481a,GUEST_FS_AR_BYTES = 0x0000481c,GUEST_GS_AR_BYTES = 0x0000481e,GUEST_LDTR_AR_BYTES = 0x00004820,GUEST_TR_AR_BYTES = 0x00004822,GUEST_INTERRUPTIBILITY_INFO = 0x00004824,GUEST_ACTIVITY_STATE = 0X00004826,GUEST_SYSENTER_CS = 0x0000482A,VMX_PREEMPTION_TIMER_VALUE = 0x0000482E,HOST_IA32_SYSENTER_CS = 0x00004c00,CR0_GUEST_HOST_MASK = 0x00006000,CR4_GUEST_HOST_MASK = 0x00006002,CR0_READ_SHADOW = 0x00006004,CR4_READ_SHADOW = 0x00006006,CR3_TARGET_VALUE0 = 0x00006008,CR3_TARGET_VALUE1 = 0x0000600a,CR3_TARGET_VALUE2 = 0x0000600c,CR3_TARGET_VALUE3 = 0x0000600e,EXIT_QUALIFICATION = 0x00006400,GUEST_LINEAR_ADDRESS = 0x0000640a,GUEST_CR0 = 0x00006800,GUEST_CR3 = 0x00006802,GUEST_CR4 = 0x00006804,GUEST_ES_BASE = 0x00006806,GUEST_CS_BASE = 0x00006808,GUEST_SS_BASE = 0x0000680a,GUEST_DS_BASE = 0x0000680c,GUEST_FS_BASE = 0x0000680e,GUEST_GS_BASE = 0x00006810,GUEST_LDTR_BASE = 0x00006812,GUEST_TR_BASE = 0x00006814,GUEST_GDTR_BASE = 0x00006816,GUEST_IDTR_BASE = 0x00006818,GUEST_DR7 = 0x0000681a,GUEST_RSP = 0x0000681c,GUEST_RIP = 0x0000681e,GUEST_RFLAGS = 0x00006820,GUEST_PENDING_DBG_EXCEPTIONS = 0x00006822,GUEST_SYSENTER_ESP = 0x00006824,GUEST_SYSENTER_EIP = 0x00006826,HOST_CR0 = 0x00006c00,HOST_CR3 = 0x00006c02,HOST_CR4 = 0x00006c04,HOST_FS_BASE = 0x00006c06,HOST_GS_BASE = 0x00006c08,HOST_TR_BASE = 0x00006c0a,HOST_GDTR_BASE = 0x00006c0c,HOST_IDTR_BASE = 0x00006c0e,HOST_IA32_SYSENTER_ESP = 0x00006c10,HOST_IA32_SYSENTER_EIP = 0x00006c12,HOST_RSP = 0x00006c14,HOST_RIP = 0x00006c16, };typedef struct _GUEST_REGS {ULONG eax;ULONG ecx;ULONG edx;ULONG ebx;ULONG esp;ULONG ebp;ULONG esi;ULONG edi;ULONG eip;ULONG eflags; }GUEST_REGS, * PGUEST_REGS;extern VMX_CPU g_VMXCPU;//檢查當前處理器是否支持VT BOOLEAN IsVTEnabled(); //開啟VT NTSTATUS StartVirtualTechnology(); //關(guān)閉VT NTSTATUS StopVirtualTechnology();#define Log(message,value) {{KdPrint(("[MinVT] %-40s [%p]\n",message,value));}}#endif //vtsystem.c #include "vtsystem.h" #include "vtasm.h" #include "exithandler.h"extern ULONG g_back_esp; extern ULONG g_back_eip;VMX_CPU g_VMXCPU;BOOLEAN IsVTEnabled() {ULONG uRet_EAX, uRet_ECX, uRet_EDX, uRet_EBX;_CPUID_ECX uCPUID;_CR0 uCr0;_CR4 uCr4;IA32_FEATURE_CONTROL_MSR msr;//1. CPUIDAsm_CPUID(1, &uRet_EAX, &uRet_EBX, &uRet_ECX, &uRet_EDX);*((PULONG)&uCPUID) = uRet_ECX;if (uCPUID.VMX != 1){Log("ERROR: 這個CPU不支持VT!", 0);return FALSE;}// 2. MSR*((PULONG)&msr) = (ULONG)Asm_ReadMsr(MSR_IA32_FEATURE_CONTROL);if (msr.Lock != 1){Log("ERROR:VT指令未被鎖定!", 0);return FALSE;}// 3. CR0 CR4*((PULONG)&uCr0) = Asm_GetCr0();*((PULONG)&uCr4) = Asm_GetCr4();if (uCr0.PE != 1 || uCr0.PG != 1 || uCr0.NE != 1){Log("ERROR:這個CPU沒有開啟VT!", 0);return FALSE;}if (uCr4.VMXE == 1){Log("ERROR:這個CPU已經(jīng)開啟了VT!", 0);Log("可能是別的驅(qū)動已經(jīng)占用了VT,你必須關(guān)閉它后才能開啟。", 0);return FALSE;}Log("SUCCESS:這個CPU支持VT!", 0);return TRUE; }static ULONG VmxAdjustControls(ULONG Ctl, ULONG Msr) {LARGE_INTEGER MsrValue;MsrValue.QuadPart = Asm_ReadMsr(Msr);Ctl &= MsrValue.HighPart; /* bit == 0 in high word ==> must be zero */Ctl |= MsrValue.LowPart; /* bit == 1 in low word ==> must be one */if (MSR_IA32_VMX_PINBASED_CTLS == Msr) //關(guān)閉外部中斷信號{Ctl &= ~1;}if (MSR_IA32_VMX_PROCBASED_CTLS == Msr) //關(guān)閉I/O訪問信號{Ctl &= ~0x03000000;}return Ctl; }static ULONG GetSegBase(ULONG Select) {ULONG GdtBase = Asm_GetGdtBase();ULONGLONG Descriptor = *(PULONGLONG)(GdtBase + Select);ULONG Base = 0;Base |= (Descriptor & 0xff00000000000000) >> 32;Base |= (Descriptor & 0x000000ff00000000) >> 16;Base |= (Descriptor & 0x00000000ffff0000) >> 16;return Base; }static ULONG GetSegLimit(ULONG Select) {ULONG GdtBase = Asm_GetGdtBase();ULONGLONG Descriptor = *(PULONGLONG)(GdtBase + Select);ULONG Limit = 0;Limit |= (Descriptor & 0x000f000000000000) >> 32;Limit |= Descriptor & 0x000000000000ffff;//if Desc.G == 1 ? 4kb : byteif (Descriptor & 0x0080000000000000){Limit <<= 12;Limit |= 0xfff;}return Limit; }static ULONG GetSegAR(ULONG Select) {ULONG GdtBase = Asm_GetGdtBase();ULONGLONG Descriptor = *(PULONGLONG)(GdtBase + Select);ULONG AR = 0;AR |= (Descriptor & 0x00f0ff0000000000) >> 40;return AR; }void __declspec(naked) GuestEntry() {__asm {mov ax, esmov es, axmov ax, dsmov ds, axmov ax, fsmov fs, axmov ax, gsmov gs, axmov ax, ssmov ss, axmov esp, g_back_espjmp g_back_eip} }void SetupVMCS() {ULONG GdtBase, IdtBase;GdtBase = Asm_GetGdtBase();IdtBase = Asm_GetIdtBase();//// 1.Guest State Area//Vmx_VmWrite(GUEST_CR0, Asm_GetCr0());Vmx_VmWrite(GUEST_CR3, Asm_GetCr3());Vmx_VmWrite(GUEST_CR4, Asm_GetCr4());Vmx_VmWrite(GUEST_DR7, 0x400);Vmx_VmWrite(GUEST_RFLAGS, Asm_GetEflags() & ~0x200); //cliVmx_VmWrite(GUEST_ES_SELECTOR, Asm_GetEs() & 0xFFF8);Vmx_VmWrite(GUEST_CS_SELECTOR, Asm_GetCs() & 0xFFF8);Vmx_VmWrite(GUEST_DS_SELECTOR, Asm_GetDs() & 0xFFF8);Vmx_VmWrite(GUEST_FS_SELECTOR, Asm_GetFs() & 0xFFF8);Vmx_VmWrite(GUEST_GS_SELECTOR, Asm_GetGs() & 0xFFF8);Vmx_VmWrite(GUEST_SS_SELECTOR, Asm_GetSs() & 0xFFF8);Vmx_VmWrite(GUEST_TR_SELECTOR, Asm_GetTr() & 0xFFF8);// 重要的段寄存器信息需要在進入Guest前加載Vmx_VmWrite(GUEST_CS_AR_BYTES, GetSegAR(Asm_GetCs() & 0xFFF8));Vmx_VmWrite(GUEST_CS_BASE, GetSegBase(Asm_GetCs() & 0xFFF8));Vmx_VmWrite(GUEST_CS_LIMIT, GetSegLimit(Asm_GetCs() & 0xFFF8));Vmx_VmWrite(GUEST_TR_AR_BYTES, GetSegAR(Asm_GetTr() & 0xFFF8));Vmx_VmWrite(GUEST_TR_BASE, GetSegBase(Asm_GetTr() & 0xFFF8));Vmx_VmWrite(GUEST_TR_LIMIT, GetSegLimit(Asm_GetTr() & 0xFFF8));// 其他寄存器可在進入Guest后加載,先將屬性的第16位置1,即不可用狀態(tài)Vmx_VmWrite(GUEST_ES_AR_BYTES, 0x10000);Vmx_VmWrite(GUEST_FS_AR_BYTES, 0x10000);Vmx_VmWrite(GUEST_DS_AR_BYTES, 0x10000);Vmx_VmWrite(GUEST_SS_AR_BYTES, 0x10000);Vmx_VmWrite(GUEST_GS_AR_BYTES, 0x10000);Vmx_VmWrite(GUEST_LDTR_AR_BYTES, 0x10000);// CS、ESP、EIPVmx_VmWrite(GUEST_SYSENTER_CS, Asm_ReadMsr(MSR_IA32_SYSENTER_CS) & 0xFFFFFFFF);Vmx_VmWrite(GUEST_SYSENTER_ESP, Asm_ReadMsr(MSR_IA32_SYSENTER_ESP) & 0xFFFFFFFF);Vmx_VmWrite(GUEST_SYSENTER_EIP, Asm_ReadMsr(MSR_IA32_SYSENTER_EIP) & 0xFFFFFFFF); // KiFastCallEntry// GDTRVmx_VmWrite(GUEST_GDTR_BASE, GdtBase);Vmx_VmWrite(GUEST_GDTR_LIMIT, Asm_GetGdtLimit());// LDTRVmx_VmWrite(GUEST_IDTR_BASE, IdtBase);Vmx_VmWrite(GUEST_IDTR_LIMIT, Asm_GetIdtLimit());Vmx_VmWrite(GUEST_RSP, ((ULONG)g_VMXCPU.pStack) + 0x1000); // Guest 臨時棧Vmx_VmWrite(GUEST_RIP, (ULONG)GuestEntry); // 客戶機的入口點// Link Shadow VMCSVmx_VmWrite(VMCS_LINK_POINTER, 0xffffffff);Vmx_VmWrite(VMCS_LINK_POINTER_HIGH, 0xffffffff);//// 2.Host State Area//Vmx_VmWrite(HOST_CR0, Asm_GetCr0());Vmx_VmWrite(HOST_CR3, Asm_GetCr3());Vmx_VmWrite(HOST_CR4, Asm_GetCr4());Vmx_VmWrite(HOST_ES_SELECTOR, Asm_GetEs() & 0xFFF8);Vmx_VmWrite(HOST_CS_SELECTOR, Asm_GetCs() & 0xFFF8);Vmx_VmWrite(HOST_DS_SELECTOR, Asm_GetDs() & 0xFFF8);Vmx_VmWrite(HOST_FS_SELECTOR, Asm_GetFs() & 0xFFF8);Vmx_VmWrite(HOST_GS_SELECTOR, Asm_GetGs() & 0xFFF8);Vmx_VmWrite(HOST_SS_SELECTOR, Asm_GetSs() & 0xFFF8);Vmx_VmWrite(HOST_TR_SELECTOR, Asm_GetTr() & 0xFFF8);Vmx_VmWrite(HOST_TR_BASE, GetSegBase(Asm_GetTr() & 0xFFF8));Vmx_VmWrite(HOST_GDTR_BASE, GdtBase);Vmx_VmWrite(HOST_IDTR_BASE, IdtBase);Vmx_VmWrite(HOST_IA32_SYSENTER_CS, Asm_ReadMsr(MSR_IA32_SYSENTER_CS) & 0xFFFFFFFF);Vmx_VmWrite(HOST_IA32_SYSENTER_ESP, Asm_ReadMsr(MSR_IA32_SYSENTER_ESP) & 0xFFFFFFFF);Vmx_VmWrite(HOST_IA32_SYSENTER_EIP, Asm_ReadMsr(MSR_IA32_SYSENTER_EIP) & 0xFFFFFFFF); // KiFastCallEntryVmx_VmWrite(HOST_RSP, ((ULONG)g_VMXCPU.pStack) + 0x2000); //Host 臨時棧Vmx_VmWrite(HOST_RIP, (ULONG)VMMEntryPoint); //這里定義我們的VMM處理程序入口//// 3.虛擬機運行控制域//Vmx_VmWrite(PIN_BASED_VM_EXEC_CONTROL, VmxAdjustControls(0, MSR_IA32_VMX_PINBASED_CTLS));Vmx_VmWrite(CPU_BASED_VM_EXEC_CONTROL, VmxAdjustControls(0, MSR_IA32_VMX_PROCBASED_CTLS));//// 4.VMEntry運行控制域//Vmx_VmWrite(VM_ENTRY_CONTROLS, VmxAdjustControls(0, MSR_IA32_VMX_ENTRY_CTLS));//// 5.VMExit運行控制域//Vmx_VmWrite(VM_EXIT_CONTROLS, VmxAdjustControls(0, MSR_IA32_VMX_EXIT_CTLS)); }NTSTATUS StartVirtualTechnology() {PVOID pVMXONRegion;PVOID pVMCSRegion;PVOID pStack;VMX_BASIC_MSR Msr;ULONG uRevId;_CR4 uCr4;_EFLAGS uEflags;if (!IsVTEnabled())return STATUS_NOT_SUPPORTED;//VMXE*((PULONG)&uCr4) = Asm_GetCr4();uCr4.VMXE = 1;Asm_SetCr4(*((PULONG)&uCr4));//VMX version*((PULONG)&Msr) = (ULONG)Asm_ReadMsr(MSR_IA32_VMX_BASIC);uRevId = Msr.RevId;//VMXON regionpVMXONRegion = ExAllocatePoolWithTag(NonPagedPool, 0x1000, 'vmon'); //4KBif (!pVMXONRegion){Log("ERROR:申請VMXON內(nèi)存區(qū)域失敗!", 0);return STATUS_MEMORY_NOT_ALLOCATED;}RtlZeroMemory(pVMXONRegion, 0x1000);g_VMXCPU.pVMXONRegion = pVMXONRegion;g_VMXCPU.pVMXONRegion_PA = MmGetPhysicalAddress(pVMXONRegion);*((PULONG)g_VMXCPU.pVMXONRegion) = uRevId;//VMXONVmx_VmxOn(g_VMXCPU.pVMXONRegion_PA.LowPart, g_VMXCPU.pVMXONRegion_PA.HighPart);// if CF = 0*((PULONG)&uEflags) = Asm_GetEflags();if (uEflags.CF != 0){Log("ERROR:開啟VT失敗!", 0);return STATUS_UNSUCCESSFUL;}Log("SUCCESS:開啟VT成功!", 0);//VMCSpVMCSRegion = ExAllocatePoolWithTag(NonPagedPool, 0x1000, 'vmon'); //4KBif (!pVMCSRegion){Log("ERROR:申請VMCS內(nèi)存區(qū)域失敗!", 0);return STATUS_MEMORY_NOT_ALLOCATED;}RtlZeroMemory(pVMCSRegion, 0x1000);*((PULONG)pVMCSRegion) = uRevId;g_VMXCPU.pVMCSRegion = pVMCSRegion;g_VMXCPU.pVMCSRegion_PA = MmGetPhysicalAddress(pVMCSRegion);Vmx_VmClear(g_VMXCPU.pVMCSRegion_PA.LowPart, g_VMXCPU.pVMCSRegion_PA.HighPart);Vmx_VmPtrld(g_VMXCPU.pVMCSRegion_PA.LowPart, g_VMXCPU.pVMCSRegion_PA.HighPart);//Stack,一半給Guest用,一半給Host用pStack = ExAllocatePoolWithTag(NonPagedPool, 0x2000, 'stck');if (!pStack){Log("ERROR:申請Stack內(nèi)存區(qū)域失敗!", 0);return STATUS_MEMORY_NOT_ALLOCATED;}RtlZeroMemory(pStack, 0x2000);g_VMXCPU.pStack = pStack;//SetupSetupVMCS(); //設(shè)置VMCS字段//LaunchVmx_VmLaunch();//===================================================//正常情況下,VMLAUNCH執(zhí)行后,CPU會進入虛擬機中//如果走到這里,說明執(zhí)行失敗//===================================================Log("ERROR:VmLaunch指令調(diào)用失敗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", Vmx_VmRead(VM_INSTRUCTION_ERROR))return STATUS_SUCCESS; }extern ULONG g_vmcall_arg; extern ULONG g_stop_esp; extern ULONG g_stop_eip;NTSTATUS StopVirtualTechnology() {_CR4 uCr4;g_vmcall_arg = 'STOP';__asm {pushadpushfdmov g_stop_esp, espmov g_stop_eip, offset STOP}Vmx_VmCall();STOP:__asm {popfdpopad}*((PULONG)&uCr4) = Asm_GetCr4();uCr4.VMXE = 0;Asm_SetCr4(*((PULONG)&uCr4));ExFreePool(g_VMXCPU.pVMXONRegion);ExFreePool(g_VMXCPU.pVMCSRegion);ExFreePool(g_VMXCPU.pStack);Log("SUCCESS:關(guān)閉VT成功!", 0);return STATUS_SUCCESS; } //exithandler.h #ifndef EXITHANDLER_H #define EXITHANDLER_Hvoid VMMEntryPoint(void);#endif //exithandler.c #include "exithandler.h" #include "vtsystem.h" #include "vtasm.h"GUEST_REGS g_GuestRegs;void HandleCPUID() {//特殊處理,用于測試VT是否開啟,注意保證參數(shù)的獨立性。if (g_GuestRegs.eax == 'Mini'){g_GuestRegs.ebx = 0x88888888;g_GuestRegs.ecx = 0x11111111;g_GuestRegs.edx = 0x12345678;}//正常情況,替Guest模擬執(zhí)行CPUIDelse Asm_CPUID(g_GuestRegs.eax, &g_GuestRegs.eax, &g_GuestRegs.ebx, &g_GuestRegs.ecx, &g_GuestRegs.edx); }ULONG g_vmcall_arg; ULONG g_stop_esp, g_stop_eip;void HandleVmCall() {if (g_vmcall_arg == 'STOP'){Vmx_VmClear(g_VMXCPU.pVMCSRegion_PA.LowPart, g_VMXCPU.pVMCSRegion_PA.HighPart);Vmx_VmxOff();__asm {mov esp, g_stop_espjmp g_stop_eip}}else {__asm int 3} }void HandleCrAccess() {ULONG movcrControlRegister;ULONG movcrAccessType;ULONG movcrOperandType; //只是讀了,沒有使用,通常都是寄存器ULONG movcrGeneralPurposeRegister;ULONG movcrLMSWSourceData;ULONG ExitQualification;ExitQualification = Vmx_VmRead(EXIT_QUALIFICATION); //獲取具體信息movcrControlRegister = (ExitQualification & 0x0000000F); //控制寄存器下標movcrAccessType = ((ExitQualification & 0x00000030) >> 4); //讀/寫movcrOperandType = ((ExitQualification & 0x00000040) >> 6); //寄存器/內(nèi)存movcrGeneralPurposeRegister = ((ExitQualification & 0x00000F00) >> 8); //寄存器下標if (movcrControlRegister != 3) { // not for cr3__asm int 3}if (movcrAccessType == 0) { // CR3 <-- reg32Vmx_VmWrite(GUEST_CR3, *(PULONG)((ULONG)&g_GuestRegs + 4 * movcrGeneralPurposeRegister));}else { // reg32 <-- CR3*(PULONG)((ULONG)&g_GuestRegs + 4 * movcrGeneralPurposeRegister) = Vmx_VmRead(GUEST_CR3);} }static void VMMEntryPointEbd(void) {ULONG ExitReason;ULONG ExitInstructionLength;ULONG GuestResumeEIP;ExitReason = Vmx_VmRead(VM_EXIT_REASON);ExitInstructionLength = Vmx_VmRead(VM_EXIT_INSTRUCTION_LEN);g_GuestRegs.eflags = Vmx_VmRead(GUEST_RFLAGS);g_GuestRegs.esp = Vmx_VmRead(GUEST_RSP);g_GuestRegs.eip = Vmx_VmRead(GUEST_RIP);//Log("ExitReason", ExitReason);//Log("g_GuestRegs.eip", g_GuestRegs.eip);switch (ExitReason){case EXIT_REASON_CPUID:HandleCPUID();Log("EXIT_REASON_CPUID", 0);break;case EXIT_REASON_VMCALL:HandleVmCall();Log("EXIT_REASON_VMCALL", 0);break;case EXIT_REASON_CR_ACCESS:HandleCrAccess();//Log("EXIT_REASON_CR_ACCESS", 0);break;default:Log("not handled reason: %p", ExitReason);__asm int 3;break;}//Resume:GuestResumeEIP = g_GuestRegs.eip + ExitInstructionLength;Vmx_VmWrite(GUEST_RIP, GuestResumeEIP);Vmx_VmWrite(GUEST_RSP, g_GuestRegs.esp);Vmx_VmWrite(GUEST_RFLAGS, g_GuestRegs.eflags); }void __declspec(naked) VMMEntryPoint(void) {__asm{mov g_GuestRegs.eax, eaxmov g_GuestRegs.ecx, ecxmov g_GuestRegs.edx, edxmov g_GuestRegs.ebx, ebxmov g_GuestRegs.esp, espmov g_GuestRegs.ebp, ebpmov g_GuestRegs.esi, esimov g_GuestRegs.edi, edipushfdpop eaxmov g_GuestRegs.eflags, eax//需要設(shè)置fs和gs,否則無法正常運行mov ax, fsmov fs, axmov ax, gsmov gs, ax}//盡量不要在裸函數(shù)中定義局部變量,或?qū)崿F(xiàn)太多功能,最好封裝成函數(shù)VMMEntryPointEbd();__asm {mov eax, g_GuestRegs.eaxmov ecx, g_GuestRegs.ecxmov edx, g_GuestRegs.edxmov ebx, g_GuestRegs.ebxmov esp, g_GuestRegs.espmov ebp, g_GuestRegs.ebpmov esi, g_GuestRegs.esimov edi, g_GuestRegs.edi//vmresume__emit 0x0f__emit 0x01__emit 0xc3} } //driver.c #include <ntddk.h> #include "vtasm.h" #include "vtsystem.h"VOID DriverUnload(PDRIVER_OBJECT pDriver) {StopVirtualTechnology();DbgPrint("Driver unload. \r\n"); }ULONG g_back_esp; ULONG g_back_eip;NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING reg_path) {DbgPrint("Driver load. \r\n");pDriver->DriverUnload = DriverUnload;__asm{pushadpushfdmov g_back_esp, espmov g_back_eip, offset BACK}StartVirtualTechnology(); //開啟VTBACK:__asm{popfdpopad}//Log("Return To DriverEntry", 0);return STATUS_SUCCESS; }

    執(zhí)行結(jié)果

    參考資料

    • VT虛擬化架構(gòu)編寫視頻教程①~⑥課
    • 周鶴《VT技術(shù)入門》系列視頻教程
    • github項目:VT_Learn
    • github項目: HyperPlatform
    • Intel開發(fā)手冊 卷3:Chapter 23 ~ Chapter 33
    • x86內(nèi)部函數(shù)列表

    總結(jié)

    以上是生活随笔為你收集整理的Intel VT学习笔记(六)—— VM-Exit Handler的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    人妻熟女一区 | 强伦人妻一区二区三区视频18 | 人人妻人人藻人人爽欧美一区 | 荫蒂添的好舒服视频囗交 | 欧美丰满熟妇xxxx | 精品一区二区三区波多野结衣 | 欧美xxxx黑人又粗又长 | 国精品人妻无码一区二区三区蜜柚 | 一个人看的www免费视频在线观看 | 久久亚洲中文字幕无码 | 色偷偷人人澡人人爽人人模 | 欧美日韩综合一区二区三区 | 2019午夜福利不卡片在线 | 久久精品女人的天堂av | 亚洲国产成人av在线观看 | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品国产a久久久久久 | 欧美人与物videos另类 | 熟女体下毛毛黑森林 | 中国大陆精品视频xxxx | 久久99精品久久久久久 | 中文字幕人成乱码熟女app | 97se亚洲精品一区 | 久久综合九色综合欧美狠狠 | 两性色午夜视频免费播放 | 国产精品.xx视频.xxtv | 丁香花在线影院观看在线播放 | 六月丁香婷婷色狠狠久久 | 人人妻人人澡人人爽欧美精品 | 亚洲日韩一区二区三区 | 丰满妇女强制高潮18xxxx | 亚洲天堂2017无码中文 | 免费观看黄网站 | 国产成人av免费观看 | 久久久久久久人妻无码中文字幕爆 | 狠狠色噜噜狠狠狠7777奇米 | 中文字幕无码av激情不卡 | 77777熟女视频在线观看 а天堂中文在线官网 | 九九在线中文字幕无码 | 高清国产亚洲精品自在久久 | 波多野结衣一区二区三区av免费 | 天天躁日日躁狠狠躁免费麻豆 | 久久天天躁狠狠躁夜夜免费观看 | 夜先锋av资源网站 | 99精品无人区乱码1区2区3区 | 国产精品资源一区二区 | 少妇人妻偷人精品无码视频 | 国产人妖乱国产精品人妖 | 精品久久久中文字幕人妻 | av小次郎收藏 | 久久综合久久自在自线精品自 | 国产成人无码av一区二区 | 女人被男人躁得好爽免费视频 | 亚洲午夜久久久影院 | 亚洲自偷精品视频自拍 | 少妇无码一区二区二三区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 欧美国产日韩亚洲中文 | 成在人线av无码免观看麻豆 | 欧美熟妇另类久久久久久不卡 | 丝袜美腿亚洲一区二区 | 欧美一区二区三区 | 久青草影院在线观看国产 | 日韩精品久久久肉伦网站 | 亚洲小说春色综合另类 | 天堂亚洲免费视频 | 久久久久成人片免费观看蜜芽 | 99国产欧美久久久精品 | 欧美人与禽猛交狂配 | 色欲人妻aaaaaaa无码 | 亚洲爆乳大丰满无码专区 | 国产特级毛片aaaaaaa高清 | 久久无码专区国产精品s | 国产午夜无码精品免费看 | 天天躁日日躁狠狠躁免费麻豆 | 国产偷抇久久精品a片69 | 丝袜人妻一区二区三区 | 亚洲啪av永久无码精品放毛片 | 中国女人内谢69xxxxxa片 | 久久久久av无码免费网 | 性色av无码免费一区二区三区 | 中文字幕无码av波多野吉衣 | 中文字幕亚洲情99在线 | 在线天堂新版最新版在线8 | 又黄又爽又色的视频 | 国产69精品久久久久app下载 | 97资源共享在线视频 | 亚洲精品久久久久久久久久久 | 久久人人爽人人人人片 | 牲交欧美兽交欧美 | 国产农村妇女高潮大叫 | 小泽玛莉亚一区二区视频在线 | 国产亚洲欧美日韩亚洲中文色 | 亚洲色无码一区二区三区 | 中文字幕无码免费久久99 | 初尝人妻少妇中文字幕 | 大肉大捧一进一出好爽视频 | 亚洲日韩中文字幕在线播放 | 亚洲va中文字幕无码久久不卡 | 人妻插b视频一区二区三区 | 免费看少妇作爱视频 | 国产美女精品一区二区三区 | 国产精品久久久久影院嫩草 | 在线欧美精品一区二区三区 | 国产美女极度色诱视频www | 国产热a欧美热a在线视频 | 7777奇米四色成人眼影 | 亚洲欧美国产精品久久 | 嫩b人妻精品一区二区三区 | 亚洲中文字幕va福利 | 亚欧洲精品在线视频免费观看 | 内射后入在线观看一区 | 国产av久久久久精东av | 国产人妻人伦精品 | 久久久久国色av免费观看性色 | 婷婷五月综合缴情在线视频 | 东京热无码av男人的天堂 | 亚洲成在人网站无码天堂 | 蜜臀aⅴ国产精品久久久国产老师 | 少妇高潮喷潮久久久影院 | 欧美精品免费观看二区 | 中文字幕 亚洲精品 第1页 | 国产口爆吞精在线视频 | 精品日本一区二区三区在线观看 | 97久久国产亚洲精品超碰热 | 久久人人爽人人爽人人片ⅴ | 久久精品女人的天堂av | 无码吃奶揉捏奶头高潮视频 | 久久国产精品_国产精品 | 学生妹亚洲一区二区 | 久久亚洲日韩精品一区二区三区 | 人妻中文无码久热丝袜 | 国产电影无码午夜在线播放 | 美女黄网站人色视频免费国产 | 一个人看的视频www在线 | 在线观看欧美一区二区三区 | 婷婷五月综合缴情在线视频 | av香港经典三级级 在线 | 久久综合狠狠综合久久综合88 | 男女猛烈xx00免费视频试看 | 大肉大捧一进一出好爽视频 | 伊在人天堂亚洲香蕉精品区 | 东京无码熟妇人妻av在线网址 | 午夜嘿嘿嘿影院 | 草草网站影院白丝内射 | 中文字幕+乱码+中文字幕一区 | 国产人成高清在线视频99最全资源 | 波多野结衣乳巨码无在线观看 | 久久无码专区国产精品s | 精品熟女少妇av免费观看 | 蜜臀aⅴ国产精品久久久国产老师 | 国产性生交xxxxx无码 | 亚洲性无码av中文字幕 | 久久精品国产精品国产精品污 | 欧美黑人巨大xxxxx | 国产亚洲视频中文字幕97精品 | 国产精品怡红院永久免费 | 青青青爽视频在线观看 | 久久亚洲a片com人成 | 亚洲日韩精品欧美一区二区 | 日本大乳高潮视频在线观看 | 性色欲网站人妻丰满中文久久不卡 | 亚洲欧美精品伊人久久 | 色综合久久网 | 久久天天躁夜夜躁狠狠 | 亚洲精品一区国产 | 成人欧美一区二区三区黑人 | 亚洲 欧美 激情 小说 另类 | 亚洲人成影院在线无码按摩店 | 国产熟女一区二区三区四区五区 | 三上悠亚人妻中文字幕在线 | 少妇久久久久久人妻无码 | 宝宝好涨水快流出来免费视频 | 久久久久久久女国产乱让韩 | 久久久精品欧美一区二区免费 | 人人澡人人妻人人爽人人蜜桃 | 亚洲aⅴ无码成人网站国产app | 强奷人妻日本中文字幕 | 又大又硬又爽免费视频 | 亚洲国产午夜精品理论片 | 亚洲の无码国产の无码影院 | 99久久久国产精品无码免费 | 亚洲伊人久久精品影院 | 天堂亚洲免费视频 | 日本免费一区二区三区最新 | 蜜臀aⅴ国产精品久久久国产老师 | 日日碰狠狠躁久久躁蜜桃 | 国产美女精品一区二区三区 | 蜜桃视频插满18在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 国产麻豆精品精东影业av网站 | 高清无码午夜福利视频 | 大地资源网第二页免费观看 | 88国产精品欧美一区二区三区 | 成人试看120秒体验区 | 国产成人精品无码播放 | 亚洲精品午夜国产va久久成人 | 国产明星裸体无码xxxx视频 | 2020久久超碰国产精品最新 | 97色伦图片97综合影院 | 国产av无码专区亚洲awww | 色综合久久久久综合一本到桃花网 | 四十如虎的丰满熟妇啪啪 | 亚洲国产精品一区二区第一页 | 国产精品亚洲а∨无码播放麻豆 | 人妻体内射精一区二区三四 | 一个人看的www免费视频在线观看 | 久久精品人妻少妇一区二区三区 | 学生妹亚洲一区二区 | 国产偷抇久久精品a片69 | 日欧一片内射va在线影院 | 无码人妻精品一区二区三区下载 | 国产精品无码一区二区三区不卡 | 大屁股大乳丰满人妻 | 久久综合久久自在自线精品自 | 无码av免费一区二区三区试看 | 日日摸日日碰夜夜爽av | 国产精华av午夜在线观看 | 精品aⅴ一区二区三区 | 亚洲爆乳大丰满无码专区 | 国产卡一卡二卡三 | 亚洲精品一区二区三区婷婷月 | 日韩人妻无码中文字幕视频 | 久久99精品国产.久久久久 | 鲁一鲁av2019在线 | 波多野结衣一区二区三区av免费 | 亚洲 另类 在线 欧美 制服 | 人妻体内射精一区二区三四 | 无码人妻丰满熟妇区毛片18 | 亚洲欧美日韩综合久久久 | 色综合久久久无码中文字幕 | www国产精品内射老师 | 午夜精品一区二区三区在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 成人动漫在线观看 | 国产69精品久久久久app下载 | 国产国产精品人在线视 | 久久久精品成人免费观看 | 国产精品亚洲综合色区韩国 | 国产精品多人p群无码 | 丰满少妇熟乱xxxxx视频 | 国产精品理论片在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲成a人片在线观看无码 | 曰韩无码二三区中文字幕 | 欧美老人巨大xxxx做受 | 免费视频欧美无人区码 | 4hu四虎永久在线观看 | 日日夜夜撸啊撸 | 国产精品久久福利网站 | 天堂а√在线地址中文在线 | 色欲久久久天天天综合网精品 | 久久综合色之久久综合 | 亚洲人成无码网www | 国产美女精品一区二区三区 | 波多野结衣 黑人 | 欧美激情综合亚洲一二区 | 无码播放一区二区三区 | 国产精品久久福利网站 | 国产97人人超碰caoprom | 在教室伦流澡到高潮hnp视频 | 久久精品国产一区二区三区肥胖 | 少妇一晚三次一区二区三区 | 亚洲成av人影院在线观看 | 久久精品丝袜高跟鞋 | 国产亲子乱弄免费视频 | 精品无码av一区二区三区 | 国产精品久久国产精品99 | 国产性生交xxxxx无码 | 精品人妻人人做人人爽 | 亚洲理论电影在线观看 | 98国产精品综合一区二区三区 | 无遮挡国产高潮视频免费观看 | 一本一道久久综合久久 | 国产猛烈高潮尖叫视频免费 | 欧美 日韩 人妻 高清 中文 | 国产做国产爱免费视频 | 国产免费久久久久久无码 | 蜜桃臀无码内射一区二区三区 | 成人免费无码大片a毛片 | 精品一区二区三区波多野结衣 | 蜜桃臀无码内射一区二区三区 | 福利一区二区三区视频在线观看 | 日日躁夜夜躁狠狠躁 | 国产人妻久久精品二区三区老狼 | 无码帝国www无码专区色综合 | 国产亚洲精品久久久久久 | 天堂在线观看www | 又色又爽又黄的美女裸体网站 | 极品尤物被啪到呻吟喷水 | 97夜夜澡人人爽人人喊中国片 | 国模大胆一区二区三区 | 日韩精品久久久肉伦网站 | 人人妻人人澡人人爽欧美精品 | 亚洲中文字幕成人无码 | 51国偷自产一区二区三区 | 强辱丰满人妻hd中文字幕 | 亚洲综合另类小说色区 | 成人欧美一区二区三区黑人免费 | 东京无码熟妇人妻av在线网址 | 中文字幕+乱码+中文字幕一区 | 国产精品a成v人在线播放 | 国产农村乱对白刺激视频 | 精品无码av一区二区三区 | 久久久成人毛片无码 | 久久国产精品偷任你爽任你 | 99久久精品无码一区二区毛片 | 99国产欧美久久久精品 | 亚洲精品国偷拍自产在线观看蜜桃 | 九九在线中文字幕无码 | 久久久久人妻一区精品色欧美 | 成 人 免费观看网站 | а√天堂www在线天堂小说 | 午夜精品久久久内射近拍高清 | 无遮挡国产高潮视频免费观看 | 久久久久久亚洲精品a片成人 | av在线亚洲欧洲日产一区二区 | 天海翼激烈高潮到腰振不止 | 小sao货水好多真紧h无码视频 | 精品偷自拍另类在线观看 | 亚洲精品www久久久 | 国产成人无码区免费内射一片色欲 | 色老头在线一区二区三区 | 四虎永久在线精品免费网址 | 成人无码精品1区2区3区免费看 | 亚洲成色www久久网站 | 色妞www精品免费视频 | 天天躁日日躁狠狠躁免费麻豆 | 久久综合香蕉国产蜜臀av | 99精品久久毛片a片 | 日欧一片内射va在线影院 | a片在线免费观看 | 国产午夜手机精彩视频 | 日本一区二区三区免费播放 | 日日干夜夜干 | 国产精品久久国产三级国 | 麻豆国产97在线 | 欧洲 | 牲欲强的熟妇农村老妇女视频 | 国产精品美女久久久 | 国产无套内射久久久国产 | 天天摸天天透天天添 | 久久熟妇人妻午夜寂寞影院 | 精品国偷自产在线视频 | 亚洲高清偷拍一区二区三区 | 99re在线播放 | 性生交片免费无码看人 | 99久久亚洲精品无码毛片 | 欧美日韩在线亚洲综合国产人 | 天堂亚洲2017在线观看 | 欧美性生交活xxxxxdddd | 成人试看120秒体验区 | 黑人粗大猛烈进出高潮视频 | 男女猛烈xx00免费视频试看 | 久久久中文字幕日本无吗 | 综合网日日天干夜夜久久 | 麻豆果冻传媒2021精品传媒一区下载 | 一本大道久久东京热无码av | 一本色道婷婷久久欧美 | 欧美变态另类xxxx | 久久久久成人精品免费播放动漫 | 国产精品国产自线拍免费软件 | 国产精品无码永久免费888 | 无遮挡啪啪摇乳动态图 | 日本va欧美va欧美va精品 | 国产人妻精品午夜福利免费 | 成人精品天堂一区二区三区 | 国产香蕉97碰碰久久人人 | 国产精品久久久久影院嫩草 | 在线播放无码字幕亚洲 | 麻豆国产丝袜白领秘书在线观看 | 少妇厨房愉情理9仑片视频 | 乱人伦中文视频在线观看 | 精品亚洲韩国一区二区三区 | 老子影院午夜精品无码 | 久久国产精品萌白酱免费 | 色一情一乱一伦一区二区三欧美 | 婷婷综合久久中文字幕蜜桃三电影 | 东京一本一道一二三区 | 国内精品人妻无码久久久影院 | 欧美性猛交内射兽交老熟妇 | 国内精品九九久久久精品 | 欧美丰满熟妇xxxx性ppx人交 | 日本www一道久久久免费榴莲 | 2020久久超碰国产精品最新 | 日本大乳高潮视频在线观看 | 乱中年女人伦av三区 | 人人爽人人澡人人高潮 | 久久精品女人的天堂av | 少妇愉情理伦片bd | 宝宝好涨水快流出来免费视频 | 成在人线av无码免观看麻豆 | 国产激情综合五月久久 | 色婷婷av一区二区三区之红樱桃 | 99精品无人区乱码1区2区3区 | 国产av一区二区精品久久凹凸 | 内射巨臀欧美在线视频 | 乌克兰少妇xxxx做受 | 亚洲一区二区三区香蕉 | 丁香啪啪综合成人亚洲 | 伊人久久大香线蕉午夜 | 精品欧美一区二区三区久久久 | 最新国产麻豆aⅴ精品无码 | 久久久久久av无码免费看大片 | 人人澡人人透人人爽 | 丰满人妻被黑人猛烈进入 | 一本加勒比波多野结衣 | 日本熟妇大屁股人妻 | 青春草在线视频免费观看 | 88国产精品欧美一区二区三区 | 中文字幕无码日韩欧毛 | 大胆欧美熟妇xx | 天堂一区人妻无码 | 少妇无码av无码专区在线观看 | 精品 日韩 国产 欧美 视频 | 99久久99久久免费精品蜜桃 | 国产成人无码av一区二区 | 亚洲日韩精品欧美一区二区 | 精品久久久中文字幕人妻 | 日日噜噜噜噜夜夜爽亚洲精品 | 日韩欧美群交p片內射中文 | 国产真实伦对白全集 | 国产成人av免费观看 | 国产精品美女久久久网av | 中文字幕无线码 | 狠狠cao日日穞夜夜穞av | 一本一道久久综合久久 | 日韩av无码一区二区三区 | 中文字幕无码人妻少妇免费 | 亚洲精品综合五月久久小说 | 久久久无码中文字幕久... | 亚洲中文字幕在线观看 | 天堂а√在线中文在线 | 无码国产色欲xxxxx视频 | 性欧美疯狂xxxxbbbb | 亚洲国产成人av在线观看 | 欧美35页视频在线观看 | 亚洲狠狠色丁香婷婷综合 | 国内少妇偷人精品视频免费 | 波多野结衣高清一区二区三区 | 四虎国产精品免费久久 | 欧美精品一区二区精品久久 | 日本熟妇大屁股人妻 | 日韩少妇内射免费播放 | 日本护士xxxxhd少妇 | 欧美一区二区三区视频在线观看 | 国产黄在线观看免费观看不卡 | 全黄性性激高免费视频 | 黑人玩弄人妻中文在线 | 日本又色又爽又黄的a片18禁 | 国产精品久久久 | 无码播放一区二区三区 | 亚洲综合精品香蕉久久网 | 欧美真人作爱免费视频 | 伊人久久大香线蕉av一区二区 | 美女极度色诱视频国产 | 亚洲高清偷拍一区二区三区 | 亚洲一区二区观看播放 | 在线视频网站www色 | 久久亚洲精品成人无码 | 亚洲精品中文字幕 | 美女黄网站人色视频免费国产 | 亚洲精品一区二区三区在线观看 | 中文字幕无码免费久久9一区9 | 国产绳艺sm调教室论坛 | 俄罗斯老熟妇色xxxx | 中文字幕无码视频专区 | 免费乱码人妻系列无码专区 | 久久99精品国产麻豆蜜芽 | 国产香蕉97碰碰久久人人 | 亚洲精品久久久久avwww潮水 | 99久久精品日本一区二区免费 | 狠狠色噜噜狠狠狠7777奇米 | 2019nv天堂香蕉在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲狠狠婷婷综合久久 | 99久久精品无码一区二区毛片 | 久久久久成人精品免费播放动漫 | 亚洲精品综合一区二区三区在线 | 国产日产欧产精品精品app | 永久免费观看美女裸体的网站 | 玩弄少妇高潮ⅹxxxyw | 撕开奶罩揉吮奶头视频 | 国产精品资源一区二区 | 亚洲精品www久久久 | 国产亚洲精品久久久久久国模美 | 国产午夜亚洲精品不卡下载 | 国产精品无码一区二区三区不卡 | 蜜臀aⅴ国产精品久久久国产老师 | 国产成人精品一区二区在线小狼 | 99久久人妻精品免费一区 | 日韩 欧美 动漫 国产 制服 | 国产疯狂伦交大片 | 激情内射亚州一区二区三区爱妻 | 国产亚洲美女精品久久久2020 | 国产成人无码专区 | 亚洲日韩av一区二区三区四区 | 国产精品久久久久久亚洲毛片 | 国产suv精品一区二区五 | 性欧美熟妇videofreesex | 国产精品久久久一区二区三区 | 熟妇人妻中文av无码 | 国产xxx69麻豆国语对白 | 18黄暴禁片在线观看 | 亚洲一区二区三区无码久久 | 色欲久久久天天天综合网精品 | 国产成人亚洲综合无码 | 水蜜桃亚洲一二三四在线 | 国产又爽又猛又粗的视频a片 | 内射白嫩少妇超碰 | 无码国产激情在线观看 | 亚洲国产精品美女久久久久 | 久久国产精品二国产精品 | 老熟女乱子伦 | 色欲综合久久中文字幕网 | 少妇性l交大片 | 色综合久久网 | 3d动漫精品啪啪一区二区中 | 久久久久久久女国产乱让韩 | 国产av一区二区精品久久凹凸 | 内射爽无广熟女亚洲 | 狠狠综合久久久久综合网 | 麻花豆传媒剧国产免费mv在线 | 国产无套粉嫩白浆在线 | 丰满妇女强制高潮18xxxx | 亚洲国产一区二区三区在线观看 | 无码国内精品人妻少妇 | 久久zyz资源站无码中文动漫 | 国产suv精品一区二区五 | 国产精品无码mv在线观看 | 久久五月精品中文字幕 | 少妇一晚三次一区二区三区 | 水蜜桃亚洲一二三四在线 | 婷婷丁香五月天综合东京热 | 精品亚洲韩国一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 亚洲熟悉妇女xxx妇女av | aⅴ亚洲 日韩 色 图网站 播放 | 国产偷抇久久精品a片69 | 国产成人无码一二三区视频 | 久久国内精品自在自线 | 国产精品多人p群无码 | 亚洲男女内射在线播放 | 亚洲一区二区三区香蕉 | 成人性做爰aaa片免费看 | 无码av最新清无码专区吞精 | 无码av最新清无码专区吞精 | 帮老师解开蕾丝奶罩吸乳网站 | 精品无人区无码乱码毛片国产 | 国产精品欧美成人 | 国产精品a成v人在线播放 | 亚洲精品成人av在线 | 国产97色在线 | 免 | 又粗又大又硬毛片免费看 | 久热国产vs视频在线观看 | 自拍偷自拍亚洲精品10p | av香港经典三级级 在线 | 国产成人无码av片在线观看不卡 | 少妇久久久久久人妻无码 | 曰韩无码二三区中文字幕 | 少妇高潮喷潮久久久影院 | 男人的天堂2018无码 | 国产精品久免费的黄网站 | 大乳丰满人妻中文字幕日本 | 国产情侣作爱视频免费观看 | 日本一本二本三区免费 | 真人与拘做受免费视频 | 亚洲男人av香蕉爽爽爽爽 | 国産精品久久久久久久 | 自拍偷自拍亚洲精品10p | 亚洲精品美女久久久久久久 | 亚洲爆乳精品无码一区二区三区 | 人人妻人人澡人人爽人人精品 | 亚洲成av人影院在线观看 | 国产精品久久国产三级国 | 少妇无码av无码专区在线观看 | 国产成人亚洲综合无码 | 色 综合 欧美 亚洲 国产 | 日韩少妇内射免费播放 | 日日天日日夜日日摸 | 色 综合 欧美 亚洲 国产 | 牛和人交xxxx欧美 | 男女性色大片免费网站 | 日本va欧美va欧美va精品 | 日产精品高潮呻吟av久久 | 中文字幕无码av波多野吉衣 | 人妻无码久久精品人妻 | 久久精品99久久香蕉国产色戒 | 55夜色66夜色国产精品视频 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲小说春色综合另类 | 精品aⅴ一区二区三区 | 激情爆乳一区二区三区 | 亚洲中文字幕无码一久久区 | 午夜免费福利小电影 | 亚洲人成网站免费播放 | 久久精品视频在线看15 | 精品人妻人人做人人爽夜夜爽 | 又黄又爽又色的视频 | 亚洲精品久久久久久一区二区 | 精品欧美一区二区三区久久久 | 久久综合网欧美色妞网 | 中文无码成人免费视频在线观看 | 熟女少妇人妻中文字幕 | 国产精品a成v人在线播放 | 国产成人综合色在线观看网站 | 成人无码精品一区二区三区 | 最新版天堂资源中文官网 | 日韩亚洲欧美中文高清在线 | 久久午夜无码鲁丝片午夜精品 | 国产亚洲精品久久久闺蜜 | 免费乱码人妻系列无码专区 | 欧美 日韩 人妻 高清 中文 | 少妇的肉体aa片免费 | 午夜福利试看120秒体验区 | 亚洲综合精品香蕉久久网 | 久久人人爽人人爽人人片ⅴ | 国产精品高潮呻吟av久久 | 日韩欧美成人免费观看 | 国产精品99久久精品爆乳 | 国产肉丝袜在线观看 | 亚洲伊人久久精品影院 | 牲欲强的熟妇农村老妇女视频 | 亚洲の无码国产の无码影院 | 女人被男人躁得好爽免费视频 | 中国大陆精品视频xxxx | 国产高潮视频在线观看 | 国产精品久久久久影院嫩草 | 欧美人与善在线com | 亚洲综合无码久久精品综合 | 国产乱人偷精品人妻a片 | 在线播放免费人成毛片乱码 | 蜜臀av在线观看 在线欧美精品一区二区三区 | www国产亚洲精品久久久日本 | 久久精品人人做人人综合 | 久久亚洲日韩精品一区二区三区 | 午夜嘿嘿嘿影院 | 国产精品对白交换视频 | 亚洲s码欧洲m码国产av | 俺去俺来也www色官网 | 国产成人综合美国十次 | 国语精品一区二区三区 | 精品久久8x国产免费观看 | 欧美成人午夜精品久久久 | 亚洲熟妇色xxxxx亚洲 | 巨爆乳无码视频在线观看 | 免费观看的无遮挡av | 色欲久久久天天天综合网精品 | 亚洲一区av无码专区在线观看 | 任你躁国产自任一区二区三区 | 中文字幕无码免费久久9一区9 | 国产亚洲精品久久久久久国模美 | 精品久久久久香蕉网 | 国产人妻人伦精品1国产丝袜 | 日韩人妻无码一区二区三区久久99 | 最近的中文字幕在线看视频 | 疯狂三人交性欧美 | 内射欧美老妇wbb | 亚洲中文字幕无码一久久区 | 欧美黑人巨大xxxxx | 精品人妻av区 | 在线天堂新版最新版在线8 | 18精品久久久无码午夜福利 | 亚洲综合在线一区二区三区 | 99riav国产精品视频 | 久热国产vs视频在线观看 | 久久精品中文字幕大胸 | 欧美放荡的少妇 | 在线播放亚洲第一字幕 | 久久精品中文字幕一区 | 一二三四在线观看免费视频 | 亚洲精品鲁一鲁一区二区三区 | 国产热a欧美热a在线视频 | 亚洲自偷自拍另类第1页 | 蜜桃无码一区二区三区 | 色五月五月丁香亚洲综合网 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲va欧美va天堂v国产综合 | 免费看少妇作爱视频 | 我要看www免费看插插视频 | 大肉大捧一进一出好爽视频 | 四十如虎的丰满熟妇啪啪 | 色综合天天综合狠狠爱 | 欧美freesex黑人又粗又大 | 奇米影视7777久久精品 | 久久久久久国产精品无码下载 | 精品久久久久久人妻无码中文字幕 | 欧美一区二区三区视频在线观看 | 性啪啪chinese东北女人 | 久久综合九色综合欧美狠狠 | 性欧美牲交xxxxx视频 | 蜜臀aⅴ国产精品久久久国产老师 | 在线 国产 欧美 亚洲 天堂 | 九月婷婷人人澡人人添人人爽 | 亚洲一区二区三区偷拍女厕 | 国产av无码专区亚洲a∨毛片 | 国产激情精品一区二区三区 | 曰韩少妇内射免费播放 | 日日夜夜撸啊撸 | 国产亚洲日韩欧美另类第八页 | 国产成人无码av一区二区 | 天天拍夜夜添久久精品大 | 中文字幕无码人妻少妇免费 | 日本一卡2卡3卡四卡精品网站 | 奇米影视7777久久精品人人爽 | 特黄特色大片免费播放器图片 | 无码任你躁久久久久久久 | 18无码粉嫩小泬无套在线观看 | 亚洲色偷偷男人的天堂 | 波多野结衣av一区二区全免费观看 | 久久久www成人免费毛片 | 国产口爆吞精在线视频 | 精品久久久中文字幕人妻 | 成人免费视频视频在线观看 免费 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 99国产精品白浆在线观看免费 | 伊在人天堂亚洲香蕉精品区 | 天天躁夜夜躁狠狠是什么心态 | 亚洲爆乳大丰满无码专区 | 欧美高清在线精品一区 | 欧美xxxxx精品 | 国产一区二区三区精品视频 | av无码久久久久不卡免费网站 | 在教室伦流澡到高潮hnp视频 | 国精品人妻无码一区二区三区蜜柚 | 熟女俱乐部五十路六十路av | 亚洲欧美精品伊人久久 | 香港三级日本三级妇三级 | 亚洲精品国产第一综合99久久 | 又湿又紧又大又爽a视频国产 | 国产精品.xx视频.xxtv | 日韩精品一区二区av在线 | 鲁一鲁av2019在线 | 97久久精品无码一区二区 | 亚洲欧美精品伊人久久 | 国产精品久久久午夜夜伦鲁鲁 | 性欧美videos高清精品 | 无码精品国产va在线观看dvd | 国产精品.xx视频.xxtv | 日本护士xxxxhd少妇 | 国产成人精品久久亚洲高清不卡 | 国产又爽又黄又刺激的视频 | 国精产品一品二品国精品69xx | 亚洲熟妇色xxxxx亚洲 | 精品成人av一区二区三区 | 亚洲gv猛男gv无码男同 | 日日麻批免费40分钟无码 | 亚洲狠狠色丁香婷婷综合 | 国产人妻大战黑人第1集 | 欧美野外疯狂做受xxxx高潮 | 久久久无码中文字幕久... | 97se亚洲精品一区 | 一本无码人妻在中文字幕免费 | 久久久精品成人免费观看 | 东京无码熟妇人妻av在线网址 | 性色欲网站人妻丰满中文久久不卡 | 久久国产36精品色熟妇 | 日韩av无码中文无码电影 | 日本熟妇大屁股人妻 | 玩弄中年熟妇正在播放 | 中文字幕av日韩精品一区二区 | 图片小说视频一区二区 | 免费观看黄网站 | 高潮喷水的毛片 | 久久综合狠狠综合久久综合88 | 性啪啪chinese东北女人 | 国产精品毛片一区二区 | 日韩精品无码一本二本三本色 | 亚洲成av人综合在线观看 | 日本在线高清不卡免费播放 | 波多野结衣乳巨码无在线观看 | 久久久久亚洲精品中文字幕 | 久青草影院在线观看国产 | 无遮无挡爽爽免费视频 | 午夜精品久久久久久久 | 人妻少妇精品无码专区二区 | 精品无码一区二区三区的天堂 | 中国女人内谢69xxxx | 综合激情五月综合激情五月激情1 | 人人爽人人澡人人人妻 | av无码不卡在线观看免费 | 亚洲の无码国产の无码步美 | 中文字幕无线码免费人妻 | 玩弄中年熟妇正在播放 | 亚洲一区二区三区在线观看网站 | 一个人看的www免费视频在线观看 | 国产黄在线观看免费观看不卡 | 国产亚洲精品久久久ai换 | 国产无遮挡吃胸膜奶免费看 | 激情国产av做激情国产爱 | 在线看片无码永久免费视频 | 久久精品国产日本波多野结衣 | 国产热a欧美热a在线视频 | 国内丰满熟女出轨videos | 好男人www社区 | 又色又爽又黄的美女裸体网站 | 最近中文2019字幕第二页 | 草草网站影院白丝内射 | 永久免费观看美女裸体的网站 | 国精品人妻无码一区二区三区蜜柚 | 国产成人综合在线女婷五月99播放 | 99久久精品午夜一区二区 | 狠狠躁日日躁夜夜躁2020 | 欧美乱妇无乱码大黄a片 | 午夜时刻免费入口 | 无码精品人妻一区二区三区av | 欧美人妻一区二区三区 | 中文字幕日产无线码一区 | 亚洲天堂2017无码中文 | 亚洲精品一区三区三区在线观看 | 久久久无码中文字幕久... | 2020久久香蕉国产线看观看 | 成人无码精品1区2区3区免费看 | 亚洲精品一区二区三区婷婷月 | 亚拍精品一区二区三区探花 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲精品中文字幕乱码 | 久久精品一区二区三区四区 | 亚洲一区二区观看播放 | 免费无码的av片在线观看 | 亚洲熟悉妇女xxx妇女av | 中文毛片无遮挡高清免费 | 亚洲精品中文字幕久久久久 | 性生交大片免费看女人按摩摩 | 97精品国产97久久久久久免费 | 国产av剧情md精品麻豆 | 国产精品爱久久久久久久 | 亚洲人成网站色7799 | 国产明星裸体无码xxxx视频 | 国产成人综合色在线观看网站 | 色情久久久av熟女人妻网站 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产人妻精品一区二区三区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国内少妇偷人精品视频 | 国产激情精品一区二区三区 | 任你躁国产自任一区二区三区 | 精品一二三区久久aaa片 | 亚洲第一网站男人都懂 | 欧美黑人巨大xxxxx | 免费观看又污又黄的网站 | 国产色精品久久人妻 | 99视频精品全部免费免费观看 | 色综合天天综合狠狠爱 | 亚洲娇小与黑人巨大交 | 夜精品a片一区二区三区无码白浆 | 久久综合香蕉国产蜜臀av | 国产成人久久精品流白浆 | 亚洲国产欧美日韩精品一区二区三区 | 男女超爽视频免费播放 | 午夜熟女插插xx免费视频 | 无码国产乱人伦偷精品视频 | 日本精品人妻无码免费大全 | 色综合久久久无码中文字幕 | 熟妇人妻激情偷爽文 | 四虎影视成人永久免费观看视频 | 激情亚洲一区国产精品 | 欧美高清在线精品一区 | 极品尤物被啪到呻吟喷水 | 精品乱子伦一区二区三区 | 亚洲国产精品一区二区美利坚 | 高潮毛片无遮挡高清免费视频 | 精品国产成人一区二区三区 | 精品偷自拍另类在线观看 | 亚洲色成人中文字幕网站 | 强辱丰满人妻hd中文字幕 | 一本色道久久综合亚洲精品不卡 | 夜夜夜高潮夜夜爽夜夜爰爰 | 美女黄网站人色视频免费国产 | 99久久人妻精品免费二区 | 九九久久精品国产免费看小说 | 67194成是人免费无码 | 99久久久无码国产aaa精品 | 狠狠色丁香久久婷婷综合五月 | 强辱丰满人妻hd中文字幕 | 2019nv天堂香蕉在线观看 | 日本va欧美va欧美va精品 | 真人与拘做受免费视频 | 国产无套粉嫩白浆在线 | 国内揄拍国内精品人妻 | 欧美成人家庭影院 | 国产美女极度色诱视频www | 2019nv天堂香蕉在线观看 | 国内精品人妻无码久久久影院蜜桃 | 在线播放免费人成毛片乱码 | 一本久道久久综合狠狠爱 | 又黄又爽又色的视频 | 国内精品久久久久久中文字幕 | 人妻无码αv中文字幕久久琪琪布 | 麻豆果冻传媒2021精品传媒一区下载 | 狠狠色丁香久久婷婷综合五月 | 久久国产36精品色熟妇 | 青青青爽视频在线观看 | 亚洲欧美精品伊人久久 | av无码久久久久不卡免费网站 | 夜夜躁日日躁狠狠久久av | 国产亚洲视频中文字幕97精品 | 国产做国产爱免费视频 | 国产成人亚洲综合无码 | 亚洲一区二区三区香蕉 | 激情爆乳一区二区三区 | 婷婷五月综合缴情在线视频 | 午夜不卡av免费 一本久久a久久精品vr综合 | 小鲜肉自慰网站xnxx | 国语自产偷拍精品视频偷 | 精品无码成人片一区二区98 | 荫蒂添的好舒服视频囗交 | 高潮喷水的毛片 | 无码免费一区二区三区 | 久久综合给合久久狠狠狠97色 | 中文字幕无码av波多野吉衣 | 2020最新国产自产精品 | 熟女俱乐部五十路六十路av | 久久久成人毛片无码 | 国产亚洲欧美日韩亚洲中文色 | 欧美激情内射喷水高潮 | 久久久精品国产sm最大网站 | 成人免费视频在线观看 | 国产成人精品一区二区在线小狼 | 欧美老人巨大xxxx做受 | 极品尤物被啪到呻吟喷水 | 午夜精品久久久久久久 | 成人毛片一区二区 | 成人无码精品一区二区三区 | 国产成人一区二区三区在线观看 | 日韩少妇白浆无码系列 | 秋霞特色aa大片 | 国产成人无码区免费内射一片色欲 | 国产三级久久久精品麻豆三级 | 性色欲网站人妻丰满中文久久不卡 | 国产精品久久久久影院嫩草 | 一个人看的www免费视频在线观看 | 国产精品久久久av久久久 | 亚洲精品久久久久久一区二区 | 人人妻人人澡人人爽精品欧美 | 在线看片无码永久免费视频 | 国产suv精品一区二区五 | 色偷偷人人澡人人爽人人模 | 青春草在线视频免费观看 | 又大又黄又粗又爽的免费视频 | 日本熟妇乱子伦xxxx | 亚洲综合无码久久精品综合 | 亚洲日韩av一区二区三区四区 | 鲁大师影院在线观看 | aa片在线观看视频在线播放 | 国产高清av在线播放 | 亚洲午夜无码久久 | 亚洲日本在线电影 | 伊人久久大香线蕉av一区二区 | 久久国产精品_国产精品 | 国产亚洲视频中文字幕97精品 | 中文字幕日韩精品一区二区三区 | 狠狠色色综合网站 | 免费无码一区二区三区蜜桃大 | 欧美老熟妇乱xxxxx | 国产99久久精品一区二区 | 久久国内精品自在自线 | 国内精品九九久久久精品 | 嫩b人妻精品一区二区三区 | 精品乱码久久久久久久 | 女高中生第一次破苞av | 久久精品人人做人人综合 | 亚洲综合久久一区二区 | 久久人人爽人人爽人人片ⅴ | 天海翼激烈高潮到腰振不止 | 国产偷抇久久精品a片69 | 又湿又紧又大又爽a视频国产 | 久久99精品国产麻豆蜜芽 | 国产美女精品一区二区三区 | 清纯唯美经典一区二区 | 亚洲春色在线视频 | 国产精品久久久久久亚洲影视内衣 | 亚洲人成影院在线观看 | 国产精品久久精品三级 | 无套内谢的新婚少妇国语播放 | 日韩精品无码一区二区中文字幕 | 丝袜足控一区二区三区 | 成人aaa片一区国产精品 | 国产莉萝无码av在线播放 | 亚洲小说图区综合在线 | 亚洲一区二区三区国产精华液 | 亚洲色偷偷偷综合网 | 免费中文字幕日韩欧美 | 久久五月精品中文字幕 | 亚洲色欲久久久综合网东京热 | 丝袜人妻一区二区三区 | 人人妻人人澡人人爽人人精品浪潮 | 国产亚洲精品久久久ai换 | 国产成人综合在线女婷五月99播放 | 最近中文2019字幕第二页 | 无遮挡国产高潮视频免费观看 | 国产人成高清在线视频99最全资源 | 欧美xxxxx精品 | 国产偷抇久久精品a片69 | 精品乱子伦一区二区三区 | 亚洲の无码国产の无码步美 | 在线观看欧美一区二区三区 | 国产激情艳情在线看视频 | 国产成人无码a区在线观看视频app | 纯爱无遮挡h肉动漫在线播放 | 亚洲日韩av一区二区三区四区 | 亚洲一区二区三区在线观看网站 | 成人性做爰aaa片免费看不忠 | 中文字幕无码av激情不卡 | 黑人粗大猛烈进出高潮视频 | 欧美成人午夜精品久久久 | 免费国产黄网站在线观看 | 人妻无码久久精品人妻 | 亚洲欧美日韩国产精品一区二区 | 奇米影视7777久久精品 | 成人免费视频在线观看 | 国产精品国产三级国产专播 | 日本肉体xxxx裸交 | 国产av无码专区亚洲a∨毛片 | 久久国内精品自在自线 | 精品乱子伦一区二区三区 | 日本护士毛茸茸高潮 | 中文无码精品a∨在线观看不卡 | 国精产品一品二品国精品69xx | 丝袜 中出 制服 人妻 美腿 | 少妇性l交大片 | 欧美阿v高清资源不卡在线播放 | 全球成人中文在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 婷婷五月综合缴情在线视频 | 日本精品久久久久中文字幕 | 青春草在线视频免费观看 | 丰腴饱满的极品熟妇 | 国产精品99爱免费视频 | 欧美人与禽猛交狂配 | 在线a亚洲视频播放在线观看 | 日韩人妻无码中文字幕视频 | 精品无码一区二区三区的天堂 | 国语自产偷拍精品视频偷 | 久久无码中文字幕免费影院蜜桃 | 免费网站看v片在线18禁无码 | 日韩少妇白浆无码系列 | 亚洲熟妇自偷自拍另类 | 天下第一社区视频www日本 | 国产亚洲视频中文字幕97精品 | 日本精品少妇一区二区三区 | 国产av无码专区亚洲a∨毛片 | 久久伊人色av天堂九九小黄鸭 | 国产成人综合在线女婷五月99播放 | 88国产精品欧美一区二区三区 | 国产成人综合在线女婷五月99播放 | 乱人伦人妻中文字幕无码 | 久久精品女人的天堂av | 天天燥日日燥 | 国产亚洲美女精品久久久2020 | 妺妺窝人体色www在线小说 | 久久国产精品偷任你爽任你 | 一本久久a久久精品亚洲 | 亚洲区欧美区综合区自拍区 | 久久天天躁狠狠躁夜夜免费观看 | 日韩人妻无码一区二区三区久久99 | 黑人巨大精品欧美黑寡妇 | 狠狠亚洲超碰狼人久久 | 久久久久久久久蜜桃 | 精品国产国产综合精品 | 国产欧美亚洲精品a | 99国产精品白浆在线观看免费 | 久久精品中文闷骚内射 | 一本久道高清无码视频 | 久久国产精品_国产精品 | 性色av无码免费一区二区三区 | 76少妇精品导航 | 午夜男女很黄的视频 | 国产精品沙发午睡系列 | 欧美变态另类xxxx | 亚洲欧美综合区丁香五月小说 | 99久久亚洲精品无码毛片 | 亚洲中文无码av永久不收费 | 久久亚洲国产成人精品性色 | 一二三四社区在线中文视频 | 免费人成网站视频在线观看 | 婷婷综合久久中文字幕蜜桃三电影 | 成人免费视频视频在线观看 免费 | 最近的中文字幕在线看视频 | 色欲久久久天天天综合网精品 | 色偷偷人人澡人人爽人人模 | 少妇人妻偷人精品无码视频 | 国产两女互慰高潮视频在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 高潮毛片无遮挡高清免费视频 | 无遮无挡爽爽免费视频 | 亚洲人成人无码网www国产 | 女人高潮内射99精品 | yw尤物av无码国产在线观看 | 亚洲乱码日产精品bd | 老子影院午夜伦不卡 | 爆乳一区二区三区无码 | 内射老妇bbwx0c0ck | 一本久久a久久精品vr综合 | 1000部夫妻午夜免费 | 曰本女人与公拘交酡免费视频 | 国产麻豆精品一区二区三区v视界 | 夜夜夜高潮夜夜爽夜夜爰爰 | 成人免费视频视频在线观看 免费 | 亚洲熟女一区二区三区 | 99在线 | 亚洲 | 精品人妻中文字幕有码在线 | 婷婷六月久久综合丁香 | 久久久久国色av免费观看性色 | 中文无码成人免费视频在线观看 | 清纯唯美经典一区二区 | aⅴ在线视频男人的天堂 | 久久精品国产大片免费观看 | 自拍偷自拍亚洲精品10p | 7777奇米四色成人眼影 | 一本一道久久综合久久 | 国产麻豆精品一区二区三区v视界 | 无码人妻精品一区二区三区不卡 | 亚洲精品一区三区三区在线观看 | 好男人社区资源 | 久久熟妇人妻午夜寂寞影院 | 亚洲国产av美女网站 | 国产综合色产在线精品 | 强开小婷嫩苞又嫩又紧视频 | 国产av一区二区三区最新精品 | 亚洲精品一区二区三区四区五区 | 国产精品18久久久久久麻辣 | 天堂亚洲免费视频 | 成人精品一区二区三区中文字幕 | 亚洲va中文字幕无码久久不卡 | а√天堂www在线天堂小说 | 久久久久久九九精品久 | 亚洲а∨天堂久久精品2021 | 亚洲色偷偷男人的天堂 | 亚洲成在人网站无码天堂 | 国产亚洲精品久久久闺蜜 | 国产精品.xx视频.xxtv | 精品一区二区不卡无码av | 熟妇激情内射com | 人人澡人人透人人爽 | 久久久婷婷五月亚洲97号色 | 国产av人人夜夜澡人人爽麻豆 | 亚洲娇小与黑人巨大交 | 色五月丁香五月综合五月 | 亚洲日韩av片在线观看 | 久久精品99久久香蕉国产色戒 | 无码中文字幕色专区 | 国产精品久久久久影院嫩草 | 欧美熟妇另类久久久久久不卡 | 日本爽爽爽爽爽爽在线观看免 | 99精品国产综合久久久久五月天 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码纯肉视频在线观看 | 人妻体内射精一区二区三四 | 中文无码精品a∨在线观看不卡 | 乱人伦人妻中文字幕无码 | 欧美人与禽zoz0性伦交 | 久久久久成人精品免费播放动漫 | 亚洲色大成网站www | 亚洲精品一区三区三区在线观看 | 女高中生第一次破苞av | 色婷婷香蕉在线一区二区 | 曰韩少妇内射免费播放 | 成人动漫在线观看 | 黑森林福利视频导航 | 图片小说视频一区二区 | 2020久久超碰国产精品最新 | 亚洲另类伦春色综合小说 | 荫蒂添的好舒服视频囗交 | 亚无码乱人伦一区二区 | 少妇激情av一区二区 | 色综合久久久无码中文字幕 | 正在播放东北夫妻内射 | 亚洲国产午夜精品理论片 | 亚洲熟妇色xxxxx亚洲 | 夜夜影院未满十八勿进 | 人人澡人人透人人爽 | 成人精品视频一区二区 | 精品亚洲成av人在线观看 | 婷婷色婷婷开心五月四房播播 | 欧美性猛交内射兽交老熟妇 | 精品国产一区二区三区av 性色 | 成年美女黄网站色大免费视频 | 国产精品久久国产三级国 | 丰满人妻翻云覆雨呻吟视频 | 亚洲日本va中文字幕 | 波多野结衣乳巨码无在线观看 | 青青草原综合久久大伊人精品 | 国产性生大片免费观看性 | 久久综合狠狠综合久久综合88 | 无码国产激情在线观看 | 无码国内精品人妻少妇 | 亚洲一区二区三区国产精华液 | 国产美女精品一区二区三区 | 国产精品亚洲lv粉色 | 好爽又高潮了毛片免费下载 | 久久成人a毛片免费观看网站 | 亚洲中文字幕无码中字 | 美女扒开屁股让男人桶 | 欧美国产亚洲日韩在线二区 | 一本加勒比波多野结衣 | 丰满人妻精品国产99aⅴ | 久精品国产欧美亚洲色aⅴ大片 | 99久久精品无码一区二区毛片 | 野外少妇愉情中文字幕 | 荡女精品导航 | 欧美丰满熟妇xxxx性ppx人交 | 国产超级va在线观看视频 | 国产色视频一区二区三区 | 亚洲成a人一区二区三区 | 亚洲综合久久一区二区 | 久久久www成人免费毛片 | 亚洲综合无码一区二区三区 | 永久黄网站色视频免费直播 | 亚洲色www成人永久网址 | 麻豆果冻传媒2021精品传媒一区下载 | 精品欧洲av无码一区二区三区 | 真人与拘做受免费视频一 | 欧美 丝袜 自拍 制服 另类 | 青青青手机频在线观看 | 欧洲极品少妇 | 亚洲中文无码av永久不收费 | 国产色在线 | 国产 | 久久亚洲国产成人精品性色 | 欧洲精品码一区二区三区免费看 | 99er热精品视频 | 狠狠躁日日躁夜夜躁2020 | 高潮毛片无遮挡高清免费视频 | 九九热爱视频精品 | 亚洲大尺度无码无码专区 | 麻豆md0077饥渴少妇 | 装睡被陌生人摸出水好爽 | 激情五月综合色婷婷一区二区 | 无码人妻丰满熟妇区五十路百度 | 国产午夜无码精品免费看 | 东京热男人av天堂 | 性生交大片免费看l | 日韩亚洲欧美精品综合 | 1000部夫妻午夜免费 | 亚洲国产高清在线观看视频 | 亚洲欧美日韩成人高清在线一区 | 欧美喷潮久久久xxxxx | 欧洲极品少妇 | 波多野42部无码喷潮在线 | 久久亚洲国产成人精品性色 | 国产精品香蕉在线观看 | 国精产品一品二品国精品69xx | а天堂中文在线官网 | 2020久久超碰国产精品最新 | 又大又硬又爽免费视频 | 97人妻精品一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲成a人片在线观看无码3d | 精品久久久久久亚洲精品 | 无码任你躁久久久久久久 | 曰韩少妇内射免费播放 | 综合激情五月综合激情五月激情1 | 成年美女黄网站色大免费视频 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品国产自线拍免费软件 | 国产精华av午夜在线观看 | 国产人妻精品一区二区三区 | 无码精品国产va在线观看dvd | 久久人人爽人人爽人人片av高清 | 免费无码一区二区三区蜜桃大 | 无码任你躁久久久久久久 | 东京无码熟妇人妻av在线网址 | 夜夜躁日日躁狠狠久久av | 麻豆精品国产精华精华液好用吗 | 在线天堂新版最新版在线8 | 精品一区二区不卡无码av | 六月丁香婷婷色狠狠久久 | 国产成人无码一二三区视频 | 亚洲人成网站色7799 | 久久久久人妻一区精品色欧美 | 亚洲成av人片天堂网无码】 | 少妇被粗大的猛进出69影院 | 亚洲色欲色欲欲www在线 | 亚洲欧美日韩成人高清在线一区 | 色一情一乱一伦一区二区三欧美 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 99国产欧美久久久精品 | 麻豆国产97在线 | 欧洲 | 欧美高清在线精品一区 | 欧美日韩人成综合在线播放 | 亚洲综合另类小说色区 | 亚洲 a v无 码免 费 成 人 a v | 丰满人妻精品国产99aⅴ | 成人性做爰aaa片免费看 | 精品无人区无码乱码毛片国产 | 久久综合网欧美色妞网 | 午夜精品一区二区三区的区别 | 图片区 小说区 区 亚洲五月 | 少妇人妻av毛片在线看 | 中文字幕人成乱码熟女app | 精品无码一区二区三区的天堂 | 久久精品国产99精品亚洲 | 精品无码国产一区二区三区av | 内射巨臀欧美在线视频 | 天海翼激烈高潮到腰振不止 | 欧美亚洲国产一区二区三区 | 日本大乳高潮视频在线观看 | 图片小说视频一区二区 | 欧美三级a做爰在线观看 | 欧洲精品码一区二区三区免费看 | 国产成人亚洲综合无码 | 国产色xx群视频射精 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品国产自线拍免费软件 | 国产精品无码mv在线观看 | 无码av中文字幕免费放 | 国产精品香蕉在线观看 | 精品偷自拍另类在线观看 | 亚洲伊人久久精品影院 | 扒开双腿疯狂进出爽爽爽视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 日韩av无码一区二区三区 | 免费人成网站视频在线观看 | 又粗又大又硬毛片免费看 | 亚洲成熟女人毛毛耸耸多 | 久久综合狠狠综合久久综合88 | 久久亚洲日韩精品一区二区三区 | 999久久久国产精品消防器材 | 丰满少妇熟乱xxxxx视频 | 亚洲熟熟妇xxxx | 真人与拘做受免费视频 | 大地资源网第二页免费观看 | 无码人妻丰满熟妇区五十路百度 | 亚洲s色大片在线观看 | 帮老师解开蕾丝奶罩吸乳网站 | 99精品国产综合久久久久五月天 | 亚洲综合无码久久精品综合 | 免费无码肉片在线观看 | 人妻体内射精一区二区三四 | 国产精品美女久久久网av | 国产精品嫩草久久久久 | 国内精品人妻无码久久久影院蜜桃 | 夫妻免费无码v看片 | 精品国偷自产在线 | 精品少妇爆乳无码av无码专区 | 亚洲精品国偷拍自产在线麻豆 | 亚洲成色在线综合网站 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲欧洲无卡二区视頻 | 国产精品沙发午睡系列 | 久久久精品456亚洲影院 | 成 人 免费观看网站 | 亚洲色欲色欲欲www在线 | 亚洲色www成人永久网址 | av无码久久久久不卡免费网站 | 亚洲色大成网站www国产 | 午夜精品一区二区三区在线观看 | 国产亚洲精品精品国产亚洲综合 | 丰满护士巨好爽好大乳 | 中文字幕无码人妻少妇免费 | 国产麻豆精品一区二区三区v视界 | 成在人线av无码免观看麻豆 | 丰满妇女强制高潮18xxxx | 国产午夜无码视频在线观看 | 久久精品无码一区二区三区 | 亚洲a无码综合a国产av中文 | 2019午夜福利不卡片在线 | 久久亚洲中文字幕无码 | 永久免费观看国产裸体美女 | 久久久精品456亚洲影院 | 黄网在线观看免费网站 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美国产日韩久久mv | 日日麻批免费40分钟无码 | 兔费看少妇性l交大片免费 | 欧美日韩在线亚洲综合国产人 | 白嫩日本少妇做爰 | 九九综合va免费看 | 大肉大捧一进一出好爽视频 | 久久久国产一区二区三区 | 激情内射日本一区二区三区 | 国产精品亚洲а∨无码播放麻豆 | 少妇高潮一区二区三区99 | 高潮喷水的毛片 | 人妻有码中文字幕在线 | 麻豆人妻少妇精品无码专区 | 久久婷婷五月综合色国产香蕉 | 亚洲一区av无码专区在线观看 | 内射巨臀欧美在线视频 | 午夜成人1000部免费视频 | 国产亚洲人成在线播放 | 国产内射老熟女aaaa | 男女下面进入的视频免费午夜 | 国产精品亚洲一区二区三区喷水 | 亚洲第一无码av无码专区 | 一本久道久久综合婷婷五月 | 国产免费无码一区二区视频 | 野狼第一精品社区 | av无码不卡在线观看免费 | 亚洲色无码一区二区三区 | 日本丰满熟妇videos | 少妇性荡欲午夜性开放视频剧场 | 日本精品少妇一区二区三区 | 亚洲日本在线电影 | 天天摸天天透天天添 | 蜜臀av无码人妻精品 | 亚洲熟妇色xxxxx欧美老妇y | 日韩成人一区二区三区在线观看 | 国产色精品久久人妻 | 成人免费视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 蜜臀av无码人妻精品 | 日本精品人妻无码77777 天堂一区人妻无码 | 四虎国产精品一区二区 | 国产口爆吞精在线视频 | 在线观看国产午夜福利片 | 国产农村乱对白刺激视频 | 久久精品国产大片免费观看 | 麻豆人妻少妇精品无码专区 | 天天燥日日燥 | 无码国产色欲xxxxx视频 | 欧美日韩人成综合在线播放 | 一本久道久久综合婷婷五月 | 亚洲狠狠色丁香婷婷综合 | 亚洲人交乣女bbw | 又粗又大又硬又长又爽 | 亚洲精品一区二区三区四区五区 | 最新国产乱人伦偷精品免费网站 | 久久综合狠狠综合久久综合88 | 久久综合给合久久狠狠狠97色 | 四十如虎的丰满熟妇啪啪 | 亚洲精品久久久久久一区二区 | 色综合久久网 | 国产激情无码一区二区 | 久久精品国产日本波多野结衣 | 日本熟妇大屁股人妻 | 国产精品国产自线拍免费软件 | 国产香蕉尹人综合在线观看 | 欧美日韩一区二区免费视频 | 无码国产激情在线观看 | 无码成人精品区在线观看 | 久久久婷婷五月亚洲97号色 | 国产另类ts人妖一区二区 | 亚洲精品中文字幕久久久久 | 亚洲中文无码av永久不收费 | 天天拍夜夜添久久精品 | 亚洲成色在线综合网站 | 国产精品无码mv在线观看 | 国产猛烈高潮尖叫视频免费 | 国产凸凹视频一区二区 | 亚洲综合久久一区二区 | 青草青草久热国产精品 | 久久精品国产日本波多野结衣 | 在线观看免费人成视频 | 国产精品理论片在线观看 | 日本丰满护士爆乳xxxx | 国产精品久久久久久无码 | 久久亚洲国产成人精品性色 | 少妇高潮一区二区三区99 | 国产三级久久久精品麻豆三级 | 亚洲精品成人av在线 | a在线亚洲男人的天堂 | 性色av无码免费一区二区三区 | 欧美日韩亚洲国产精品 | 欧美人与禽zoz0性伦交 | 国产精品多人p群无码 | 国产精品亚洲综合色区韩国 | 国产亚洲精品精品国产亚洲综合 | 性欧美熟妇videofreesex | 国产又粗又硬又大爽黄老大爷视 | 日本一卡二卡不卡视频查询 | 欧美老人巨大xxxx做受 | 日本一区二区更新不卡 | 又大又黄又粗又爽的免费视频 | 天干天干啦夜天干天2017 | 无码精品人妻一区二区三区av | 乱码午夜-极国产极内射 | 日韩成人一区二区三区在线观看 | 又黄又爽又色的视频 | 精品无码国产一区二区三区av | 无码精品国产va在线观看dvd | 日本又色又爽又黄的a片18禁 | 日韩欧美群交p片內射中文 | 无码播放一区二区三区 | 国产色在线 | 国产 | 日韩欧美中文字幕公布 | 国产精品美女久久久网av | 国产乱人伦偷精品视频 | 色婷婷综合激情综在线播放 | 九九综合va免费看 | 国产日产欧产精品精品app | 日本丰满护士爆乳xxxx | 国产香蕉97碰碰久久人人 | 中国女人内谢69xxxx | 国产在线精品一区二区三区直播 | 国产凸凹视频一区二区 | 久久精品丝袜高跟鞋 | 免费乱码人妻系列无码专区 | 人妻有码中文字幕在线 | 国产成人无码午夜视频在线观看 | 亚洲精品中文字幕乱码 | 蜜桃臀无码内射一区二区三区 | 夜夜高潮次次欢爽av女 | 国产精品久久久久久亚洲影视内衣 | 在线天堂新版最新版在线8 | 丰满诱人的人妻3 | 少女韩国电视剧在线观看完整 | av无码久久久久不卡免费网站 | 婷婷色婷婷开心五月四房播播 | 亚洲色欲色欲欲www在线 | 久久99久久99精品中文字幕 | 色婷婷香蕉在线一区二区 | 人妻人人添人妻人人爱 | 国产办公室秘书无码精品99 | 无码av最新清无码专区吞精 | 久久久久成人片免费观看蜜芽 | 国产午夜亚洲精品不卡 | 日韩成人一区二区三区在线观看 | 超碰97人人射妻 | 亚洲国产精品无码久久久久高潮 | 伊人久久大香线蕉av一区二区 | 精品国产av色一区二区深夜久久 | 久久五月精品中文字幕 | 久久久久成人精品免费播放动漫 | 国产精品毛多多水多 | 欧美日本免费一区二区三区 | 人人妻人人澡人人爽欧美精品 | 波多野结衣乳巨码无在线观看 | 国产精品久久久一区二区三区 | 日日天日日夜日日摸 | 欧洲极品少妇 | 国产真实夫妇视频 | 又紧又大又爽精品一区二区 | 亚洲人交乣女bbw | 国产激情无码一区二区app | 精品无码成人片一区二区98 | 又大又硬又黄的免费视频 | 国产做国产爱免费视频 | 久久精品国产精品国产精品污 | 18无码粉嫩小泬无套在线观看 | 无码人妻精品一区二区三区不卡 | 亚洲精品中文字幕 | 亚洲精品中文字幕久久久久 | 丰满人妻被黑人猛烈进入 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品无码mv在线观看 | 色爱情人网站 | 少妇人妻av毛片在线看 | 狠狠色丁香久久婷婷综合五月 | 国产精品美女久久久久av爽李琼 | 色欲久久久天天天综合网精品 | 久久久久久久久蜜桃 | 十八禁真人啪啪免费网站 | 国产亚洲人成在线播放 | 少妇人妻偷人精品无码视频 | 无码av岛国片在线播放 | 久久精品国产亚洲精品 | 香蕉久久久久久av成人 | 国产麻豆精品精东影业av网站 | 对白脏话肉麻粗话av | 精品国产一区二区三区av 性色 | 高清无码午夜福利视频 | 少妇久久久久久人妻无码 | 又色又爽又黄的美女裸体网站 | 久久精品国产一区二区三区 | 亚洲高清偷拍一区二区三区 | 亚洲国产av精品一区二区蜜芽 | 亚洲综合在线一区二区三区 | 国产午夜亚洲精品不卡下载 | 影音先锋中文字幕无码 | 色欲久久久天天天综合网精品 | 亚洲中文字幕va福利 | 婷婷丁香六月激情综合啪 | 久久人人爽人人爽人人片ⅴ | 3d动漫精品啪啪一区二区中 | 日日碰狠狠躁久久躁蜜桃 | 亚洲经典千人经典日产 | 老子影院午夜精品无码 | 欧美熟妇另类久久久久久不卡 | 天堂亚洲2017在线观看 | 日日橹狠狠爱欧美视频 | 激情五月综合色婷婷一区二区 | 亚洲综合无码久久精品综合 | 亚洲欧美国产精品专区久久 | 久久人人爽人人爽人人片av高清 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 夫妻免费无码v看片 | 少妇无码吹潮 | 色综合久久久无码网中文 | 无码人中文字幕 | 亚洲午夜无码久久 | 久久国语露脸国产精品电影 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕无码av波多野吉衣 | 午夜无码人妻av大片色欲 | 乱人伦人妻中文字幕无码 | 无人区乱码一区二区三区 | 日韩精品无码一区二区中文字幕 | 国产日产欧产精品精品app | 男人扒开女人内裤强吻桶进去 | 午夜精品久久久久久久 | 免费国产成人高清在线观看网站 | 亚洲国产高清在线观看视频 | 国产精品内射视频免费 | 97精品人妻一区二区三区香蕉 | 狠狠色欧美亚洲狠狠色www | 中文无码成人免费视频在线观看 | 亚洲gv猛男gv无码男同 | 性欧美牲交xxxxx视频 | 日本乱偷人妻中文字幕 | 欧美一区二区三区视频在线观看 | 久久97精品久久久久久久不卡 | 99久久人妻精品免费二区 | 欧美大屁股xxxxhd黑色 | 午夜福利试看120秒体验区 | 97精品国产97久久久久久免费 | 午夜时刻免费入口 | 欧美老人巨大xxxx做受 | 一本一道久久综合久久 | 国产乱人偷精品人妻a片 | 亚洲色欲色欲欲www在线 | 美女毛片一区二区三区四区 | 粗大的内捧猛烈进出视频 | 国产肉丝袜在线观看 | 久久精品无码一区二区三区 | 亚洲精品久久久久中文第一幕 | 在教室伦流澡到高潮hnp视频 | 国产精品久久久久久亚洲毛片 | 无码人中文字幕 | 日韩精品久久久肉伦网站 | 爆乳一区二区三区无码 | 午夜福利一区二区三区在线观看 | 精品国产一区二区三区四区在线看 | 亚洲精品一区三区三区在线观看 | 国产亚洲精品久久久久久国模美 | 99久久久无码国产精品免费 | 日韩av无码中文无码电影 | 亚洲高清偷拍一区二区三区 | 久久伊人色av天堂九九小黄鸭 | 免费乱码人妻系列无码专区 | 成 人 免费观看网站 | 亚洲理论电影在线观看 | 亚洲日韩av一区二区三区四区 | 欧美第一黄网免费网站 | 荫蒂被男人添的好舒服爽免费视频 | 人妻尝试又大又粗久久 | 久久99精品久久久久婷婷 | 欧美日韩视频无码一区二区三 | 亚拍精品一区二区三区探花 | 性开放的女人aaa片 | 免费无码一区二区三区蜜桃大 | 97色伦图片97综合影院 | √8天堂资源地址中文在线 | 国产精品久久精品三级 | 中文字幕中文有码在线 | 人人妻人人澡人人爽人人精品 | 久久久久久av无码免费看大片 | 精品国偷自产在线视频 | 午夜无码人妻av大片色欲 | 在线 国产 欧美 亚洲 天堂 | 久久综合久久自在自线精品自 | 成人三级无码视频在线观看 | 免费观看激色视频网站 | 国产艳妇av在线观看果冻传媒 | 无码一区二区三区在线观看 | 大色综合色综合网站 | 麻豆精品国产精华精华液好用吗 | 一二三四社区在线中文视频 | 少妇激情av一区二区 | 无码av最新清无码专区吞精 | 在线成人www免费观看视频 | 好爽又高潮了毛片免费下载 | 国产乱人偷精品人妻a片 | 99久久99久久免费精品蜜桃 | 亚洲人成人无码网www国产 | 日韩精品a片一区二区三区妖精 | 久久人人爽人人爽人人片av高清 | 人妻有码中文字幕在线 | 久久综合色之久久综合 | 午夜嘿嘿嘿影院 | 狂野欧美性猛交免费视频 | 女人被男人躁得好爽免费视频 | 色一情一乱一伦一区二区三欧美 | 日本乱偷人妻中文字幕 | 熟妇人妻无乱码中文字幕 | 丁香啪啪综合成人亚洲 |