22 .Name = u
"ntoskrnl.exe",
23 .Path = u
"\\SystemRoot\\System32\\ntoskrnl.exe",
32 .Path = u
"\\SystemRoot\\System32\\hal.dll",
41 .Name = u
"iastor.sys",
42 .Path = u
"\\SystemRoot\\System32\\drivers\\iastor.sys",
43 .DriverObject = u
"\\driver\\iastor",
50 .Path = u
"\\SystemRoot\\System32\\drivers\\ndis.sys",
51 .DriverObject = u
"\\driver\\ndis",
58 .Path = u
"\\SystemRoot\\System32\\drivers\\netio.sys",
65 .Name = u
"iastorV.sys",
66 .Path = u
"\\SystemRoot\\System32\\drivers\\iastorV.sys",
67 .DriverObject = u
"\\driver\\iastorv",
73 .Name = u
"iastorAV.sys",
74 .Path = u
"\\SystemRoot\\System32\\drivers\\iastorAV.sys",
75 .DriverObject = u
"\\driver\\iastorav",
82 .Path = u
"\\SystemRoot\\System32\\drivers\\disk.sys",
83 .DriverObject = u
"\\driver\\disk",
90 .Path = u
"\\SystemRoot\\System32\\drivers\\atapi.sys",
91 .DriverObject = u
"\\driver\\atapi",
97 .Name = u
"storahci.sys",
98 .Path = u
"\\SystemRoot\\System32\\drivers\\storahci.sys",
99 .DriverObject = u
"\\driver\\storahci",
105 .Name = u
"ataport.sys",
106 .Path = u
"\\SystemRoot\\System32\\drivers\\ataport.sys",
107 .DriverObject = NULL,
114 .Path = u
"\\SystemRoot\\System32\\drivers\\ntfs.sys",
115 .DriverObject = u
"\\filesystem\\ntfs",
122 .Path = u
"\\SystemRoot\\System32\\drivers\\refs.sys",
123 .DriverObject = u
"\\filesystem\\refs",
129 .Name = u
"tcpip.sys",
130 .Path = u
"\\SystemRoot\\System32\\drivers\\tcpip.sys",
131 .DriverObject = u
"\\driver\\tcpip",
138 .Path = u
"\\SystemRoot\\System32\\drivers\\srv.sys",
139 .DriverObject = NULL,
146 .Path = u
"\\SystemRoot\\System32\\drivers\\srv2.sys",
147 .DriverObject = NULL,
153 .Name = u
"srvnet.sys",
154 .Path = u
"\\SystemRoot\\System32\\drivers\\srvnet.sys",
155 .DriverObject = NULL,
162 .Path = u
"\\SystemRoot\\system32\\drivers\\lxss.sys",
163 .DriverObject = u
"\\Driver\\lxss",
169 .Name = u
"lxcore.sys",
170 .Path = u
"\\SystemRoot\\system32\\drivers\\LXCORE.SYS",
171 .DriverObject = NULL,
182 .Path = u
"\\systemroot\\system32\\drivers\\avc3.sys",
183 .DriverObject = u
"\\filesystem\\avc3",
189 .Name = u
"avckf.sys",
190 .Path = u
"\\systemroot\\system32\\drivers\\avckf.sys",
191 .DriverObject = u
"\\filesystem\\avckf",
197 .Name = u
"winguest.sys",
198 .Path = u
"\\systemroot\\system32\\drivers\\winguest.sys",
199 .DriverObject = u
"\\driver\\winguest",
205 .Name = u
"trufos.sys",
206 .Path = u
"\\systemroot\\system32\\drivers\\trufos.sys",
207 .DriverObject = u
"\\filesystem\\trufos",
213 .Name = u
"trufosalt.sys",
214 .Path = u
"\\systemroot\\system32\\drivers\\trufosalt.sys",
215 .DriverObject = u
"\\filesystem\\trufosalt",
221 .Name = u
"gzflt.sys",
222 .Path = u
"\\systemroot\\system32\\drivers\\gzflt.sys",
223 .DriverObject = u
"\\filesystem\\gzflt",
229 .Name = u
"bdvedisk.sys",
230 .Path = u
"\\systemroot\\system32\\drivers\\bdvedisk.sys",
231 .DriverObject = u
"\\driver\\bdvedisk",
237 .Name = u
"bdsandbox.sys",
238 .Path = u
"\\systemroot\\system32\\drivers\\bdsandbox.sys",
239 .DriverObject = u
"\\filesystem\\BDSandBox",
245 .Name = u
"bdfndisf6.sys",
246 .Path = u
"\\systemroot\\system32\\drivers\\bdfndisf6.sys",
247 .DriverObject = u
"\\driver\\BdfNdisf",
253 .Name = u
"bdfwfpf.sys",
254 .Path = u
"\\systemroot\\system32\\drivers\\bdfwfpf.sys",
255 .DriverObject = u
"\\driver\\bdfwfpf",
261 .Name = u
"bdelam.sys",
262 .Path = u
"\\systemroot\\system32\\drivers\\bdelam.sys",
263 .DriverObject = u
"\\driver\\bdelam",
269 .Name = u
"bddci.sys",
270 .Path = u
"\\systemroot\\system32\\drivers\\bddci.sys",
271 .DriverObject = u
"\\driver\\bddci",
277 .Name = u
"edrsensor.sys",
278 .Path = u
"\\systemroot\\system32\\drivers\\edrsensor.sys",
279 .DriverObject = u
"\\filesystem\\edrsensor",
285 .Name = u
"ignis.sys",
286 .Path = u
"\\systemroot\\system32\\drivers\\ignis.sys",
287 .DriverObject = u
"\\driver\\ignis",
294 .Path = u
"\\systemroot\\system32\\drivers\\atc.sys",
295 .DriverObject = u
"\\filesystem\\atc",
301 .Name = u
"gemma.sys",
302 .Path = u
"\\systemroot\\system32\\drivers\\gemma.sys",
303 .DriverObject = u
"\\filesystem\\gemma",
313 .Name = u
"picadm.sys",
314 .Path = u
"\\SystemRoot\\System32\\drivers\\picadm.sys",
315 .DriverObject = u
"\\FileSystem\\picadm",
321 .Name = u
"ctxad.sys",
322 .Path = u
"\\SystemRoot\\System32\\drivers\\ctxad.sys",
323 .DriverObject = u
"\\Driver\\ctxad",
329 .Name = u
"ctxusbb.sys",
330 .Path = u
"\\SystemRoot\\System32\\drivers\\ctxusbb.sys",
331 .DriverObject = u
"\\Driver\\ctxusbb",
337 .Name = u
"ctxsmcdrv.sys",
338 .Path = u
"\\SystemRoot\\System32\\drivers\\ctxsmcdrv.sys",
339 .DriverObject = u
"\\Driver\\ctxsmcdrv",
347 .Name = u
"picapar.sys",
348 .Path = u
"\\SystemRoot\\System32\\drivers\\picapar.sys",
349 .DriverObject = u
"\\FileSystem\\picapar",
356 .Name = u
"picaser.sys",
357 .Path = u
"\\SystemRoot\\System32\\drivers\\picaser.sys",
358 .DriverObject = u
"\\FileSystem\\picaser",
364 .Name = u
"picakbm.sys",
365 .Path = u
"\\SystemRoot\\System32\\drivers\\picakbm.sys",
366 .DriverObject = u
"\\Driver\\picakbm",
372 .Name = u
"picakbf.sys",
373 .Path = u
"\\SystemRoot\\System32\\drivers\\picakbf.sys",
374 .DriverObject = u
"\\Driver\\picakbf",
380 .Name = u
"picamouf.sys",
381 .Path = u
"\\SystemRoot\\System32\\drivers\\picamouf.sys",
382 .DriverObject = u
"\\Driver\\picamouf",
388 .Name = u
"picaTwComms.sys",
389 .Path = u
"\\SystemRoot\\System32\\drivers\\picaTwComms.sys",
390 .DriverObject = NULL,
396 .Name = u
"picavc.sys",
397 .Path = u
"\\SystemRoot\\System32\\drivers\\picavc.sys",
398 .DriverObject = NULL,
404 .Name = u
"picacdd2.sys",
405 .Path = u
"\\SystemRoot\\System32\\drivers\\picacdd2.sys",
406 .DriverObject = NULL,
412 .Name = u
"picadd.sys",
413 .Path = u
"\\SystemRoot\\System32\\drivers\\picadd.sys",
414 .DriverObject = NULL,
423 _In_ size_t InfoSize,
436 for (
size_t i = 0; i < InfoSize; i++)
452 _In_ size_t InfoSize,
470 for (
size_t i = 0; i < InfoSize; i++)
472 if (NULL != Info[i].DriverObject && !
wstrcasecmp(Info[i].DriverObject, Name))
499 QWORD RequiredProtection;
514 for (
size_t i = 0; i <
ARRAYSIZE(pms); i++)
563 for (
size_t i = 0; i <
ARRAYSIZE(pms); i++)
#define INTRO_OPT_PROT_KM_DRVOBJ
Enable driver object & fast I/O dispatch protection.
static const PROTECTED_MODULE_INFO gAvModules[]
Describe protection information for antivirus Kernel modules.
PROTECTED_MODULE_TYPE Type
The type of the module.
#define INTRO_OPT_PROT_KM_AV_DRIVERS
Enable AV drivers protection (Windows only).
static const PROTECTED_MODULE_INFO gNtModule
Describe protection information for the NT Kernel.
#define INTRO_OPT_PROT_KM_NT
Enable kernel image protection (Windows only).
Exposes the types, constants and functions used to describe protected Windows Kernel modules and driv...
#define INTRO_OPT_PROT_KM_HAL
Enable HAL protection (Windows only).
static const PROTECTED_MODULE_INFO gCoreModules[]
Describe protection information for the core Kernel modules.
Describes a kernel driver.
BOOLEAN IntWinDrvHasDriverObject(const KERNEL_DRIVER *Driver)
Check wether a kernel driver has a driver object that we care to protect.
const PROTECTED_MODULE_INFO * IntWinDrvObjIsProtected(const WIN_DRIVER_OBJECT *Driver)
Get the protected module information for a kernel driver object.
Holds information about a driver object.
static const PROTECTED_MODULE_INFO gXenModules[]
Describe protection information for XEN Kernel modules.
QWORD Current
The currently used options.
Xen-specific Citrix modules.
const WCHAR * DriverObject
The driver object that must be protected when protecting this module.
BOOLEAN IntWinDrvIsProtectedAv(const WCHAR *Driver)
Check wether a kernel driver is a known and protected antivirus.
BOOLEAN IntWinDrvObjIsProtectedAv(const WCHAR *DrvObj)
Checks if a driver object belongs to a known and protected antivirus.
static const PROTECTED_MODULE_INFO * IntWinDrvObjGetProtInfoByName(const PROTECTED_MODULE_INFO *Info, size_t InfoSize, const WCHAR *Name)
Perform a search for a driver object by name in an array of protected kernel modules.
#define INTRO_OPT_PROT_KM_XEN_DRIVERS
GUEST_STATE gGuest
The current guest state.
Encapsulates a protected Windows kernel module.
int wstrcasecmp(const WCHAR *buf1, const WCHAR *buf2)
static const PROTECTED_MODULE_INFO gHalModule
Describe protection information for HAL.
static const PROTECTED_MODULE_INFO * IntWinDrvGetProtInfoByName(const PROTECTED_MODULE_INFO *Info, size_t InfoSize, const WCHAR *Name)
Perform a search for a driver by name in an array of protected kernel modules.
Core Windows kernel modules.
const PROTECTED_MODULE_INFO * IntWinDrvIsProtected(const KERNEL_DRIVER *Driver)
Get the protected module information for a kernel driver.
#define INTRO_OPT_PROT_KM_NT_DRIVERS
Enable core NT drivers protection (Windows only).
INTRO_PROT_OPTIONS CoreOptions
The activation and protection options for this guest.