├── EptHook
├── BlogVT.sln
└── BlogVT
│ ├── Asm.asm
│ ├── Asm.h
│ ├── BlogVT.vcxproj
│ ├── BlogVT.vcxproj.filters
│ ├── DriverEntry.cpp
│ ├── EPT.cpp
│ ├── EptHook.cpp
│ ├── HOOK.h
│ ├── InitVMCS.cpp
│ ├── TinyVT.cpp
│ ├── TinyVT.h
│ ├── VmExitHandler.cpp
│ ├── def.h
│ ├── ia32.h
│ ├── nmd_assembly.h
│ ├── test.cpp
│ └── util.cpp
├── LICENSE
├── NoEPT
├── BlogVT.sln
└── BlogVT
│ ├── Asm.asm
│ ├── Asm.h
│ ├── BlogVT.vcxproj
│ ├── BlogVT.vcxproj.filters
│ ├── DriverEntry.cpp
│ ├── InitVMCS.cpp
│ ├── TinyVT.cpp
│ ├── TinyVT.h
│ ├── VmExitHandler.cpp
│ ├── def.h
│ ├── ia32.h
│ └── util.cpp
├── README.md
└── UseEPT
├── BlogVT.sln
└── BlogVT
├── Asm.asm
├── Asm.h
├── BlogVT.vcxproj
├── BlogVT.vcxproj.filters
├── DriverEntry.cpp
├── EPT.cpp
├── InitVMCS.cpp
├── TinyVT.cpp
├── TinyVT.h
├── VmExitHandler.cpp
├── def.h
├── ia32.h
└── util.cpp
/EptHook/BlogVT.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30204.135
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BlogVT", "BlogVT\BlogVT.vcxproj", "{47D1F9E5-7C9B-451F-83F4-A92C79B82570}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|ARM = Debug|ARM
11 | Debug|ARM64 = Debug|ARM64
12 | Debug|x64 = Debug|x64
13 | Debug|x86 = Debug|x86
14 | Release|ARM = Release|ARM
15 | Release|ARM64 = Release|ARM64
16 | Release|x64 = Release|x64
17 | Release|x86 = Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.ActiveCfg = Debug|ARM
21 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Build.0 = Debug|ARM
22 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Deploy.0 = Debug|ARM
23 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.ActiveCfg = Debug|ARM64
24 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Build.0 = Debug|ARM64
25 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Deploy.0 = Debug|ARM64
26 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.ActiveCfg = Debug|x64
27 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Build.0 = Debug|x64
28 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Deploy.0 = Debug|x64
29 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.ActiveCfg = Debug|Win32
30 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Build.0 = Debug|Win32
31 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Deploy.0 = Debug|Win32
32 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.ActiveCfg = Release|ARM
33 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Build.0 = Release|ARM
34 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Deploy.0 = Release|ARM
35 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.ActiveCfg = Release|ARM64
36 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Build.0 = Release|ARM64
37 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Deploy.0 = Release|ARM64
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.ActiveCfg = Release|x64
39 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Build.0 = Release|x64
40 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Deploy.0 = Release|x64
41 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.ActiveCfg = Release|Win32
42 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Build.0 = Release|Win32
43 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Deploy.0 = Release|Win32
44 | EndGlobalSection
45 | GlobalSection(SolutionProperties) = preSolution
46 | HideSolutionNode = FALSE
47 | EndGlobalSection
48 | GlobalSection(ExtensibilityGlobals) = postSolution
49 | SolutionGuid = {D5A05110-0CA8-48CD-8F3F-AC6B0E9E470F}
50 | EndGlobalSection
51 | EndGlobal
52 |
--------------------------------------------------------------------------------
/EptHook/BlogVT/Asm.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/Asm.asm
--------------------------------------------------------------------------------
/EptHook/BlogVT/Asm.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include"def.h"
3 |
4 | enum VmCall
5 | {
6 | CallExitVT,
7 | CallEptHook,
8 | CallEptUnHook,
9 | };
10 |
11 | EXTERN_C
12 | {
13 | BOOLEAN __fastcall AsmVmxLaunch(PVOID callBack,PVOID thisPoint);
14 | void __fastcall AsmVmmEntryPoint();
15 | void __fastcall AsmInvd();
16 | void __fastcall AsmVmxCall(ULONG_PTR num, ULONG_PTR param);
17 |
18 | unsigned char __fastcall __fastcall AsmInvvpid(
19 | _In_ ULONG_PTR invvpid_type,
20 | _In_ ULONG_PTR* invvpid_descriptor);
21 |
22 |
23 | void _sgdt(void*);
24 | /// Writes to GDT
25 | /// @param gdtr A value to write
26 | void __fastcall AsmWriteGDT(_In_ const Gdtr* gdtr);
27 |
28 | /// Reads SLDT
29 | /// @return LDT
30 | USHORT __fastcall AsmReadLDTR();
31 |
32 | /// Writes to TR
33 | /// @param task_register A value to write
34 | void __fastcall AsmWriteTR(_In_ USHORT task_register);
35 |
36 | /// Reads STR
37 | /// @return TR
38 | USHORT __fastcall AsmReadTR();
39 |
40 | /// Writes to ES
41 | /// @param segment_selector A value to write
42 | void __fastcall AsmWriteES(_In_ USHORT segment_selector);
43 |
44 | /// Reads ES
45 | /// @return ES
46 | USHORT __fastcall AsmReadES();
47 |
48 | /// Writes to CS
49 | /// @param segment_selector A value to write
50 | void __fastcall AsmWriteCS(_In_ USHORT segment_selector);
51 |
52 | /// Reads CS
53 | /// @return CS
54 | USHORT __fastcall AsmReadCS();
55 |
56 | /// Writes to SS
57 | /// @param segment_selector A value to write
58 | void __fastcall AsmWriteSS(_In_ USHORT segment_selector);
59 |
60 | /// Reads SS
61 | /// @return SS
62 | USHORT __fastcall AsmReadSS();
63 |
64 | /// Writes to DS
65 | /// @param segment_selector A value to write
66 | void __fastcall AsmWriteDS(_In_ USHORT segment_selector);
67 |
68 | /// Reads DS
69 | /// @return DS
70 | USHORT __fastcall AsmReadDS();
71 |
72 | /// Writes to FS
73 | /// @param segment_selector A value to write
74 | void __fastcall AsmWriteFS(_In_ USHORT segment_selector);
75 |
76 | /// Reads FS
77 | /// @return FS
78 | USHORT __fastcall AsmReadFS();
79 |
80 | /// Writes to GS
81 | /// @param segment_selector A value to write
82 | void __fastcall AsmWriteGS(_In_ USHORT segment_selector);
83 |
84 | /// Reads GS
85 | /// @return GS
86 | USHORT __fastcall AsmReadGS();
87 |
88 | /// Loads access rights byte
89 | /// @param segment_selector A value to get access rights byte
90 | /// @return An access rights byte
91 | ULONG_PTR __fastcall AsmLoadAccessRightsByte(_In_ ULONG_PTR segment_selector);
92 |
93 | }
94 |
--------------------------------------------------------------------------------
/EptHook/BlogVT/BlogVT.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 | Debug
22 | ARM
23 |
24 |
25 | Release
26 | ARM
27 |
28 |
29 | Debug
30 | ARM64
31 |
32 |
33 | Release
34 | ARM64
35 |
36 |
37 |
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}
39 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d}
40 | v4.5
41 | 12.0
42 | Debug
43 | Win32
44 | BlogVT
45 |
46 |
47 |
48 | Windows10
49 | true
50 | WindowsKernelModeDriver10.0
51 | Driver
52 | WDM
53 |
54 |
55 | Windows10
56 | false
57 | WindowsKernelModeDriver10.0
58 | Driver
59 | WDM
60 |
61 |
62 | Windows10
63 | true
64 | WindowsKernelModeDriver10.0
65 | Driver
66 | WDM
67 |
68 |
69 | Windows10
70 | false
71 | WindowsKernelModeDriver10.0
72 | Driver
73 | WDM
74 |
75 |
76 | Windows10
77 | true
78 | WindowsKernelModeDriver10.0
79 | Driver
80 | WDM
81 |
82 |
83 | Windows10
84 | false
85 | WindowsKernelModeDriver10.0
86 | Driver
87 | WDM
88 |
89 |
90 | Windows10
91 | true
92 | WindowsKernelModeDriver10.0
93 | Driver
94 | WDM
95 |
96 |
97 | Windows10
98 | false
99 | WindowsKernelModeDriver10.0
100 | Driver
101 | WDM
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | DbgengKernelDebugger
113 |
114 |
115 | DbgengKernelDebugger
116 |
117 |
118 | DbgengKernelDebugger
119 | false
120 |
121 |
122 | DbgengKernelDebugger
123 |
124 |
125 | DbgengKernelDebugger
126 |
127 |
128 | DbgengKernelDebugger
129 |
130 |
131 | DbgengKernelDebugger
132 |
133 |
134 | DbgengKernelDebugger
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
--------------------------------------------------------------------------------
/EptHook/BlogVT/BlogVT.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {8E41214B-6785-4CFE-B992-037D68949A14}
18 | inf;inv;inx;mof;mc;
19 |
20 |
21 |
22 |
23 | Source Files
24 |
25 |
26 | Source Files
27 |
28 |
29 | Source Files
30 |
31 |
32 | Source Files
33 |
34 |
35 | Source Files
36 |
37 |
38 | Source Files
39 |
40 |
41 | Source Files
42 |
43 |
44 | Source Files
45 |
46 |
47 |
48 |
49 | Header Files
50 |
51 |
52 | Header Files
53 |
54 |
55 | Header Files
56 |
57 |
58 | Header Files
59 |
60 |
61 | Header Files
62 |
63 |
64 | Header Files
65 |
66 |
67 |
68 |
69 | Source Files
70 |
71 |
72 |
--------------------------------------------------------------------------------
/EptHook/BlogVT/DriverEntry.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/DriverEntry.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/EPT.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/EPT.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/EptHook.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/EptHook.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/HOOK.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/HOOK.h
--------------------------------------------------------------------------------
/EptHook/BlogVT/InitVMCS.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/InitVMCS.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/TinyVT.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/TinyVT.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/TinyVT.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/TinyVT.h
--------------------------------------------------------------------------------
/EptHook/BlogVT/VmExitHandler.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/VmExitHandler.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/def.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include"ia32.h"
5 |
6 | #define Log(format, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID,DPFLTR_ERROR_LEVEL,"[MyVT]: " format "\n",##__VA_ARGS__)
7 |
8 | EXTERN_C
9 | NTKERNELAPI
10 | _IRQL_requires_(DISPATCH_LEVEL)
11 | _IRQL_requires_same_
12 | VOID
13 | KeSignalCallDpcDone(
14 | _In_ PVOID SystemArgument1
15 | );
16 |
17 | EXTERN_C
18 | NTKERNELAPI
19 | _IRQL_requires_(DISPATCH_LEVEL)
20 | _IRQL_requires_same_
21 | LOGICAL
22 | KeSignalCallDpcSynchronize(
23 | _In_ PVOID SystemArgument2
24 | );
25 |
26 | EXTERN_C
27 | NTKERNELAPI
28 | _IRQL_requires_max_(APC_LEVEL)
29 | _IRQL_requires_min_(PASSIVE_LEVEL)
30 | _IRQL_requires_same_
31 | VOID
32 | KeGenericCallDpc(
33 | _In_ PKDEFERRED_ROUTINE Routine,
34 | _In_opt_ PVOID Context
35 | );
36 |
37 | _IRQL_requires_max_(DISPATCH_LEVEL)
38 | void* __cdecl operator new(size_t size);
39 |
40 | _IRQL_requires_max_(DISPATCH_LEVEL)
41 | void __cdecl operator delete(void* p, SIZE_T size);
42 |
43 | BOOLEAN CheckVTSupport();
44 | BOOLEAN CheckVTEnable();
45 | PVOID kmalloc(ULONG_PTR size);
46 | void kfree(PVOID p);
--------------------------------------------------------------------------------
/EptHook/BlogVT/ia32.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/ia32.h
--------------------------------------------------------------------------------
/EptHook/BlogVT/test.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/test.cpp
--------------------------------------------------------------------------------
/EptHook/BlogVT/util.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/EptHook/BlogVT/util.cpp
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 吾无法无天
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/NoEPT/BlogVT.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30204.135
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BlogVT", "BlogVT\BlogVT.vcxproj", "{47D1F9E5-7C9B-451F-83F4-A92C79B82570}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|ARM = Debug|ARM
11 | Debug|ARM64 = Debug|ARM64
12 | Debug|x64 = Debug|x64
13 | Debug|x86 = Debug|x86
14 | Release|ARM = Release|ARM
15 | Release|ARM64 = Release|ARM64
16 | Release|x64 = Release|x64
17 | Release|x86 = Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.ActiveCfg = Debug|ARM
21 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Build.0 = Debug|ARM
22 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Deploy.0 = Debug|ARM
23 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.ActiveCfg = Debug|ARM64
24 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Build.0 = Debug|ARM64
25 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Deploy.0 = Debug|ARM64
26 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.ActiveCfg = Debug|x64
27 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Build.0 = Debug|x64
28 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Deploy.0 = Debug|x64
29 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.ActiveCfg = Debug|Win32
30 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Build.0 = Debug|Win32
31 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Deploy.0 = Debug|Win32
32 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.ActiveCfg = Release|ARM
33 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Build.0 = Release|ARM
34 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Deploy.0 = Release|ARM
35 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.ActiveCfg = Release|ARM64
36 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Build.0 = Release|ARM64
37 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Deploy.0 = Release|ARM64
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.ActiveCfg = Release|x64
39 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Build.0 = Release|x64
40 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Deploy.0 = Release|x64
41 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.ActiveCfg = Release|Win32
42 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Build.0 = Release|Win32
43 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Deploy.0 = Release|Win32
44 | EndGlobalSection
45 | GlobalSection(SolutionProperties) = preSolution
46 | HideSolutionNode = FALSE
47 | EndGlobalSection
48 | GlobalSection(ExtensibilityGlobals) = postSolution
49 | SolutionGuid = {D5A05110-0CA8-48CD-8F3F-AC6B0E9E470F}
50 | EndGlobalSection
51 | EndGlobal
52 |
--------------------------------------------------------------------------------
/NoEPT/BlogVT/Asm.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/Asm.asm
--------------------------------------------------------------------------------
/NoEPT/BlogVT/Asm.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include"def.h"
3 |
4 | enum VmCall
5 | {
6 | CallExitVT,
7 | CallEptHook,
8 | CallEptUnHook,
9 | };
10 |
11 | EXTERN_C
12 | {
13 | BOOLEAN __fastcall AsmVmxLaunch(PVOID callBack,PVOID thisPoint);
14 | void __fastcall AsmVmmEntryPoint();
15 | void __fastcall AsmInvd();
16 | void __fastcall AsmVmxCall(ULONG_PTR num, ULONG_PTR param);
17 |
18 | unsigned char __fastcall __fastcall AsmInvvpid(
19 | _In_ ULONG_PTR invvpid_type,
20 | _In_ ULONG_PTR* invvpid_descriptor);
21 |
22 |
23 | void _sgdt(void*);
24 | /// Writes to GDT
25 | /// @param gdtr A value to write
26 | void __fastcall AsmWriteGDT(_In_ const Gdtr* gdtr);
27 |
28 | /// Reads SLDT
29 | /// @return LDT
30 | USHORT __fastcall AsmReadLDTR();
31 |
32 | /// Writes to TR
33 | /// @param task_register A value to write
34 | void __fastcall AsmWriteTR(_In_ USHORT task_register);
35 |
36 | /// Reads STR
37 | /// @return TR
38 | USHORT __fastcall AsmReadTR();
39 |
40 | /// Writes to ES
41 | /// @param segment_selector A value to write
42 | void __fastcall AsmWriteES(_In_ USHORT segment_selector);
43 |
44 | /// Reads ES
45 | /// @return ES
46 | USHORT __fastcall AsmReadES();
47 |
48 | /// Writes to CS
49 | /// @param segment_selector A value to write
50 | void __fastcall AsmWriteCS(_In_ USHORT segment_selector);
51 |
52 | /// Reads CS
53 | /// @return CS
54 | USHORT __fastcall AsmReadCS();
55 |
56 | /// Writes to SS
57 | /// @param segment_selector A value to write
58 | void __fastcall AsmWriteSS(_In_ USHORT segment_selector);
59 |
60 | /// Reads SS
61 | /// @return SS
62 | USHORT __fastcall AsmReadSS();
63 |
64 | /// Writes to DS
65 | /// @param segment_selector A value to write
66 | void __fastcall AsmWriteDS(_In_ USHORT segment_selector);
67 |
68 | /// Reads DS
69 | /// @return DS
70 | USHORT __fastcall AsmReadDS();
71 |
72 | /// Writes to FS
73 | /// @param segment_selector A value to write
74 | void __fastcall AsmWriteFS(_In_ USHORT segment_selector);
75 |
76 | /// Reads FS
77 | /// @return FS
78 | USHORT __fastcall AsmReadFS();
79 |
80 | /// Writes to GS
81 | /// @param segment_selector A value to write
82 | void __fastcall AsmWriteGS(_In_ USHORT segment_selector);
83 |
84 | /// Reads GS
85 | /// @return GS
86 | USHORT __fastcall AsmReadGS();
87 |
88 | /// Loads access rights byte
89 | /// @param segment_selector A value to get access rights byte
90 | /// @return An access rights byte
91 | ULONG_PTR __fastcall AsmLoadAccessRightsByte(_In_ ULONG_PTR segment_selector);
92 |
93 | }
94 |
--------------------------------------------------------------------------------
/NoEPT/BlogVT/BlogVT.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 | Debug
22 | ARM
23 |
24 |
25 | Release
26 | ARM
27 |
28 |
29 | Debug
30 | ARM64
31 |
32 |
33 | Release
34 | ARM64
35 |
36 |
37 |
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}
39 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d}
40 | v4.5
41 | 12.0
42 | Debug
43 | Win32
44 | BlogVT
45 |
46 |
47 |
48 | Windows10
49 | true
50 | WindowsKernelModeDriver10.0
51 | Driver
52 | WDM
53 |
54 |
55 | Windows10
56 | false
57 | WindowsKernelModeDriver10.0
58 | Driver
59 | WDM
60 |
61 |
62 | Windows10
63 | true
64 | WindowsKernelModeDriver10.0
65 | Driver
66 | WDM
67 |
68 |
69 | Windows10
70 | false
71 | WindowsKernelModeDriver10.0
72 | Driver
73 | WDM
74 |
75 |
76 | Windows10
77 | true
78 | WindowsKernelModeDriver10.0
79 | Driver
80 | WDM
81 |
82 |
83 | Windows10
84 | false
85 | WindowsKernelModeDriver10.0
86 | Driver
87 | WDM
88 |
89 |
90 | Windows10
91 | true
92 | WindowsKernelModeDriver10.0
93 | Driver
94 | WDM
95 |
96 |
97 | Windows10
98 | false
99 | WindowsKernelModeDriver10.0
100 | Driver
101 | WDM
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | DbgengKernelDebugger
113 |
114 |
115 | DbgengKernelDebugger
116 |
117 |
118 | DbgengKernelDebugger
119 | false
120 |
121 |
122 | DbgengKernelDebugger
123 |
124 |
125 | DbgengKernelDebugger
126 |
127 |
128 | DbgengKernelDebugger
129 |
130 |
131 | DbgengKernelDebugger
132 |
133 |
134 | DbgengKernelDebugger
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
--------------------------------------------------------------------------------
/NoEPT/BlogVT/BlogVT.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {8E41214B-6785-4CFE-B992-037D68949A14}
18 | inf;inv;inx;mof;mc;
19 |
20 |
21 |
22 |
23 | Source Files
24 |
25 |
26 | Source Files
27 |
28 |
29 | Source Files
30 |
31 |
32 | Source Files
33 |
34 |
35 | Source Files
36 |
37 |
38 |
39 |
40 | Header Files
41 |
42 |
43 | Header Files
44 |
45 |
46 | Header Files
47 |
48 |
49 | Header Files
50 |
51 |
52 |
53 |
54 | Source Files
55 |
56 |
57 | Source Files
58 |
59 |
60 |
--------------------------------------------------------------------------------
/NoEPT/BlogVT/DriverEntry.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/DriverEntry.cpp
--------------------------------------------------------------------------------
/NoEPT/BlogVT/InitVMCS.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/InitVMCS.cpp
--------------------------------------------------------------------------------
/NoEPT/BlogVT/TinyVT.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/TinyVT.cpp
--------------------------------------------------------------------------------
/NoEPT/BlogVT/TinyVT.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/TinyVT.h
--------------------------------------------------------------------------------
/NoEPT/BlogVT/VmExitHandler.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/VmExitHandler.cpp
--------------------------------------------------------------------------------
/NoEPT/BlogVT/def.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include"ia32.h"
5 |
6 | #define Log(format, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID,DPFLTR_ERROR_LEVEL,"[MyVT]: " format "\n",##__VA_ARGS__)
7 |
8 | EXTERN_C
9 | NTKERNELAPI
10 | _IRQL_requires_(DISPATCH_LEVEL)
11 | _IRQL_requires_same_
12 | VOID
13 | KeSignalCallDpcDone(
14 | _In_ PVOID SystemArgument1
15 | );
16 |
17 | EXTERN_C
18 | NTKERNELAPI
19 | _IRQL_requires_(DISPATCH_LEVEL)
20 | _IRQL_requires_same_
21 | LOGICAL
22 | KeSignalCallDpcSynchronize(
23 | _In_ PVOID SystemArgument2
24 | );
25 |
26 | EXTERN_C
27 | NTKERNELAPI
28 | _IRQL_requires_max_(APC_LEVEL)
29 | _IRQL_requires_min_(PASSIVE_LEVEL)
30 | _IRQL_requires_same_
31 | VOID
32 | KeGenericCallDpc(
33 | _In_ PKDEFERRED_ROUTINE Routine,
34 | _In_opt_ PVOID Context
35 | );
36 |
37 | _IRQL_requires_max_(DISPATCH_LEVEL)
38 | void* __cdecl operator new(size_t size);
39 |
40 | _IRQL_requires_max_(DISPATCH_LEVEL)
41 | void __cdecl operator delete(void* p, SIZE_T size);
42 |
43 | BOOLEAN CheckVTSupport();
44 | BOOLEAN CheckVTEnable();
45 | PVOID kmalloc(ULONG_PTR size);
46 | void kfree(PVOID p);
--------------------------------------------------------------------------------
/NoEPT/BlogVT/ia32.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/ia32.h
--------------------------------------------------------------------------------
/NoEPT/BlogVT/util.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/NoEPT/BlogVT/util.cpp
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TinyVT
2 | 轻量级VT框架和Ept无痕HOOK,测试环境:Win11 20H2,WIN10 1903,WIN7
3 | HOOK的例子代码,注意自己更改成适合自己系统的(SSDT获取方式,NtOpenProcess函数下标)
4 |
5 | # [VT虚拟化驱动教程](https://blog.csdn.net/weixin_44286745/category_10565173.html?spm=1001.2101.3001.4235)
6 |
--------------------------------------------------------------------------------
/UseEPT/BlogVT.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30204.135
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BlogVT", "BlogVT\BlogVT.vcxproj", "{47D1F9E5-7C9B-451F-83F4-A92C79B82570}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|ARM = Debug|ARM
11 | Debug|ARM64 = Debug|ARM64
12 | Debug|x64 = Debug|x64
13 | Debug|x86 = Debug|x86
14 | Release|ARM = Release|ARM
15 | Release|ARM64 = Release|ARM64
16 | Release|x64 = Release|x64
17 | Release|x86 = Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.ActiveCfg = Debug|ARM
21 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Build.0 = Debug|ARM
22 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM.Deploy.0 = Debug|ARM
23 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.ActiveCfg = Debug|ARM64
24 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Build.0 = Debug|ARM64
25 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|ARM64.Deploy.0 = Debug|ARM64
26 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.ActiveCfg = Debug|x64
27 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Build.0 = Debug|x64
28 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x64.Deploy.0 = Debug|x64
29 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.ActiveCfg = Debug|Win32
30 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Build.0 = Debug|Win32
31 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Debug|x86.Deploy.0 = Debug|Win32
32 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.ActiveCfg = Release|ARM
33 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Build.0 = Release|ARM
34 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM.Deploy.0 = Release|ARM
35 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.ActiveCfg = Release|ARM64
36 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Build.0 = Release|ARM64
37 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|ARM64.Deploy.0 = Release|ARM64
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.ActiveCfg = Release|x64
39 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Build.0 = Release|x64
40 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x64.Deploy.0 = Release|x64
41 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.ActiveCfg = Release|Win32
42 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Build.0 = Release|Win32
43 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}.Release|x86.Deploy.0 = Release|Win32
44 | EndGlobalSection
45 | GlobalSection(SolutionProperties) = preSolution
46 | HideSolutionNode = FALSE
47 | EndGlobalSection
48 | GlobalSection(ExtensibilityGlobals) = postSolution
49 | SolutionGuid = {D5A05110-0CA8-48CD-8F3F-AC6B0E9E470F}
50 | EndGlobalSection
51 | EndGlobal
52 |
--------------------------------------------------------------------------------
/UseEPT/BlogVT/Asm.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/Asm.asm
--------------------------------------------------------------------------------
/UseEPT/BlogVT/Asm.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include"def.h"
3 |
4 | enum VmCall
5 | {
6 | CallExitVT,
7 | CallEptHook,
8 | CallEptUnHook,
9 | };
10 |
11 | EXTERN_C
12 | {
13 | BOOLEAN __fastcall AsmVmxLaunch(PVOID callBack,PVOID thisPoint);
14 | void __fastcall AsmVmmEntryPoint();
15 | void __fastcall AsmInvd();
16 | void __fastcall AsmVmxCall(ULONG_PTR num, ULONG_PTR param);
17 |
18 | unsigned char __fastcall __fastcall AsmInvvpid(
19 | _In_ ULONG_PTR invvpid_type,
20 | _In_ ULONG_PTR* invvpid_descriptor);
21 |
22 |
23 | void _sgdt(void*);
24 | /// Writes to GDT
25 | /// @param gdtr A value to write
26 | void __fastcall AsmWriteGDT(_In_ const Gdtr* gdtr);
27 |
28 | /// Reads SLDT
29 | /// @return LDT
30 | USHORT __fastcall AsmReadLDTR();
31 |
32 | /// Writes to TR
33 | /// @param task_register A value to write
34 | void __fastcall AsmWriteTR(_In_ USHORT task_register);
35 |
36 | /// Reads STR
37 | /// @return TR
38 | USHORT __fastcall AsmReadTR();
39 |
40 | /// Writes to ES
41 | /// @param segment_selector A value to write
42 | void __fastcall AsmWriteES(_In_ USHORT segment_selector);
43 |
44 | /// Reads ES
45 | /// @return ES
46 | USHORT __fastcall AsmReadES();
47 |
48 | /// Writes to CS
49 | /// @param segment_selector A value to write
50 | void __fastcall AsmWriteCS(_In_ USHORT segment_selector);
51 |
52 | /// Reads CS
53 | /// @return CS
54 | USHORT __fastcall AsmReadCS();
55 |
56 | /// Writes to SS
57 | /// @param segment_selector A value to write
58 | void __fastcall AsmWriteSS(_In_ USHORT segment_selector);
59 |
60 | /// Reads SS
61 | /// @return SS
62 | USHORT __fastcall AsmReadSS();
63 |
64 | /// Writes to DS
65 | /// @param segment_selector A value to write
66 | void __fastcall AsmWriteDS(_In_ USHORT segment_selector);
67 |
68 | /// Reads DS
69 | /// @return DS
70 | USHORT __fastcall AsmReadDS();
71 |
72 | /// Writes to FS
73 | /// @param segment_selector A value to write
74 | void __fastcall AsmWriteFS(_In_ USHORT segment_selector);
75 |
76 | /// Reads FS
77 | /// @return FS
78 | USHORT __fastcall AsmReadFS();
79 |
80 | /// Writes to GS
81 | /// @param segment_selector A value to write
82 | void __fastcall AsmWriteGS(_In_ USHORT segment_selector);
83 |
84 | /// Reads GS
85 | /// @return GS
86 | USHORT __fastcall AsmReadGS();
87 |
88 | /// Loads access rights byte
89 | /// @param segment_selector A value to get access rights byte
90 | /// @return An access rights byte
91 | ULONG_PTR __fastcall AsmLoadAccessRightsByte(_In_ ULONG_PTR segment_selector);
92 |
93 | }
94 |
--------------------------------------------------------------------------------
/UseEPT/BlogVT/BlogVT.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 | Debug
22 | ARM
23 |
24 |
25 | Release
26 | ARM
27 |
28 |
29 | Debug
30 | ARM64
31 |
32 |
33 | Release
34 | ARM64
35 |
36 |
37 |
38 | {47D1F9E5-7C9B-451F-83F4-A92C79B82570}
39 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d}
40 | v4.5
41 | 12.0
42 | Debug
43 | Win32
44 | BlogVT
45 |
46 |
47 |
48 | Windows10
49 | true
50 | WindowsKernelModeDriver10.0
51 | Driver
52 | WDM
53 |
54 |
55 | Windows10
56 | false
57 | WindowsKernelModeDriver10.0
58 | Driver
59 | WDM
60 |
61 |
62 | Windows10
63 | true
64 | WindowsKernelModeDriver10.0
65 | Driver
66 | WDM
67 |
68 |
69 | Windows10
70 | false
71 | WindowsKernelModeDriver10.0
72 | Driver
73 | WDM
74 |
75 |
76 | Windows10
77 | true
78 | WindowsKernelModeDriver10.0
79 | Driver
80 | WDM
81 |
82 |
83 | Windows10
84 | false
85 | WindowsKernelModeDriver10.0
86 | Driver
87 | WDM
88 |
89 |
90 | Windows10
91 | true
92 | WindowsKernelModeDriver10.0
93 | Driver
94 | WDM
95 |
96 |
97 | Windows10
98 | false
99 | WindowsKernelModeDriver10.0
100 | Driver
101 | WDM
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | DbgengKernelDebugger
113 |
114 |
115 | DbgengKernelDebugger
116 |
117 |
118 | DbgengKernelDebugger
119 | false
120 |
121 |
122 | DbgengKernelDebugger
123 |
124 |
125 | DbgengKernelDebugger
126 |
127 |
128 | DbgengKernelDebugger
129 |
130 |
131 | DbgengKernelDebugger
132 |
133 |
134 | DbgengKernelDebugger
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/UseEPT/BlogVT/BlogVT.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {8E41214B-6785-4CFE-B992-037D68949A14}
18 | inf;inv;inx;mof;mc;
19 |
20 |
21 |
22 |
23 | Source Files
24 |
25 |
26 | Source Files
27 |
28 |
29 | Source Files
30 |
31 |
32 | Source Files
33 |
34 |
35 | Source Files
36 |
37 |
38 | Source Files
39 |
40 |
41 |
42 |
43 | Header Files
44 |
45 |
46 | Header Files
47 |
48 |
49 | Header Files
50 |
51 |
52 | Header Files
53 |
54 |
55 |
56 |
57 | Source Files
58 |
59 |
60 | Source Files
61 |
62 |
63 |
--------------------------------------------------------------------------------
/UseEPT/BlogVT/DriverEntry.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/DriverEntry.cpp
--------------------------------------------------------------------------------
/UseEPT/BlogVT/EPT.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/EPT.cpp
--------------------------------------------------------------------------------
/UseEPT/BlogVT/InitVMCS.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/InitVMCS.cpp
--------------------------------------------------------------------------------
/UseEPT/BlogVT/TinyVT.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/TinyVT.cpp
--------------------------------------------------------------------------------
/UseEPT/BlogVT/TinyVT.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/TinyVT.h
--------------------------------------------------------------------------------
/UseEPT/BlogVT/VmExitHandler.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/VmExitHandler.cpp
--------------------------------------------------------------------------------
/UseEPT/BlogVT/def.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include"ia32.h"
5 |
6 | #define Log(format, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID,DPFLTR_ERROR_LEVEL,"[MyVT]: " format "\n",##__VA_ARGS__)
7 |
8 | EXTERN_C
9 | NTKERNELAPI
10 | _IRQL_requires_(DISPATCH_LEVEL)
11 | _IRQL_requires_same_
12 | VOID
13 | KeSignalCallDpcDone(
14 | _In_ PVOID SystemArgument1
15 | );
16 |
17 | EXTERN_C
18 | NTKERNELAPI
19 | _IRQL_requires_(DISPATCH_LEVEL)
20 | _IRQL_requires_same_
21 | LOGICAL
22 | KeSignalCallDpcSynchronize(
23 | _In_ PVOID SystemArgument2
24 | );
25 |
26 | EXTERN_C
27 | NTKERNELAPI
28 | _IRQL_requires_max_(APC_LEVEL)
29 | _IRQL_requires_min_(PASSIVE_LEVEL)
30 | _IRQL_requires_same_
31 | VOID
32 | KeGenericCallDpc(
33 | _In_ PKDEFERRED_ROUTINE Routine,
34 | _In_opt_ PVOID Context
35 | );
36 |
37 | _IRQL_requires_max_(DISPATCH_LEVEL)
38 | void* __cdecl operator new(size_t size);
39 |
40 | _IRQL_requires_max_(DISPATCH_LEVEL)
41 | void __cdecl operator delete(void* p, SIZE_T size);
42 |
43 | BOOLEAN CheckVTSupport();
44 | BOOLEAN CheckVTEnable();
45 | PVOID kmalloc(ULONG_PTR size);
46 | void kfree(PVOID p);
--------------------------------------------------------------------------------
/UseEPT/BlogVT/ia32.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/ia32.h
--------------------------------------------------------------------------------
/UseEPT/BlogVT/util.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/WWFWT/TinyVT/c0fe9b03f68859ff32aa0bdc16a25e2b0b452c80/UseEPT/BlogVT/util.cpp
--------------------------------------------------------------------------------