Exported functions to provide this functionality are:
- KseRegisterShim
- KseRegisterShimEx
- KseUnregisterShim
struct shim_descriptor
{
DWORD Size;
GUID *guid;
wchar_t *Name;
PVOID unk1;
PVOID HookDriverUntargeted; // func ptr
PVOID HookDriverTargeted; // func ptr
PVOID HookTab; // ptr to hooks descriptor table
};
KseRegisterShim called twice in ntoskrnl.exe with two shim descriptors:
Win7VersionLieShim
GUID: 3E28B2D1-E633-408C-8E9B-2AFA6F47FCC3
Hooks RtlGetVersion & PsGetVersion functions
KseDsShim
GUID: BC04AB45-EA7E-4A11-A7BB-977615F4CAAE
Hooks:
- IoCreateDevice
- PoRequestPowerIrp
- ExAllocatePoolWithTag
- ExFreePoolWithTag
- ExAllocatePool
- ExFreePool