Bitdefender Hypervisor Memory Introspection
glue.h File Reference
#include "introtypes.h"
#include "memtags.h"
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Macros

#define INT_LOG(loglevel, fmt, ...)
 
#define NLOG(fmt, ...)
 
#define TRACE(fmt, ...)   INT_LOG(intLogLevelDebug, fmt, ##__VA_ARGS__)
 
#define INFO(fmt, ...)   INT_LOG(intLogLevelInfo, fmt, ##__VA_ARGS__)
 
#define WARNING(fmt, ...)   INT_LOG(intLogLevelWarning, fmt, ##__VA_ARGS__)
 
#define LOG(fmt, ...)   INT_LOG(intLogLevelError, fmt, ##__VA_ARGS__)
 
#define ERROR(fmt, ...)   INT_LOG(intLogLevelError, fmt, ##__VA_ARGS__)
 
#define CRITICAL(fmt, ...)   INT_LOG(intLogLevelCritical, fmt, ##__VA_ARGS__)
 
#define INVALID_EPTP_INDEX   0xFFFFFFFF
 
#define PHYS_MAP_FLG_NO_FASTMAP   0x80000000
 Indicates that IntPhysMemMap should not use the fast memory mapping mechanism. More...
 
#define HpAllocWithTag(Len, Tag)   (int)(Len) <= 0 ? NULL : calloc(1, (Len))
 
#define HpFreeAndNullWithTag(Add, Tag)
 

Functions

void IntGlueReset (void)
 Resets the global glue state (gIface. gUpIface, gIntHandle, gEventId, etc) More...
 
INTSTATUS IntGlueInit (GLUE_IFACE const *GlueInterface, UPPER_IFACE const *UpperInterface)
 Initializes the instances of GLUE_IFACE and UPPER_IFACE that will be used. More...
 
INTSTATUS IntQueryGuestInfo (DWORD InfoClass, void *InfoParam, void *Buffer, DWORD BufferLength)
 
INTSTATUS IntGpaToHpa (QWORD Gpa, QWORD *Hpa)
 
__must_check INTSTATUS IntPhysMemMap (QWORD PhysAddress, DWORD Length, DWORD Flags, void **HostPtr)
 Maps a guest physical address inside Introcore VA space. More...
 
INTSTATUS IntPhysMemUnmap (void **HostPtr)
 Unmaps an address previously mapped with IntPhysMemMap. More...
 
INTSTATUS IntReserveVaSpaceWithPt (void **FirstPageBase, DWORD *PagesCount, void **PtBase)
 Reserves a contiguous region of virtual memory which will then be used to map physical pages. More...
 
INTSTATUS GluePauseVcpus (void)
 
INTSTATUS GlueResumeVcpus (void)
 
INTSTATUS IntEnableMsrExit (DWORD Msr, BOOLEAN *OldValue)
 
INTSTATUS IntDisableMsrExit (DWORD Msr, BOOLEAN *OldValue)
 
INTSTATUS IntRegisterMSRHandler (PFUNC_IntMSRViolationCallback Callback)
 
INTSTATUS IntUnregisterMSRHandler (void)
 
INTSTATUS IntPhysMemGetTypeFromMtrrs (QWORD Gpa, IG_MEMTYPE *MemType)
 
INTSTATUS IntEnableCrWriteExit (DWORD Cr)
 
INTSTATUS IntDisableCrWriteExit (DWORD Cr)
 
INTSTATUS IntRegisterCrWriteHandler (PFUNC_IntCrWriteCallback Callback)
 
INTSTATUS IntUnregisterCrWriteHandler (void)
 
INTSTATUS IntRegisterBreakpointHandler (PFUNC_IntBreakpointCallback Callback)
 
INTSTATUS IntUnregisterBreakpointHandler (void)
 
INTSTATUS IntRegisterEventInjectionHandler (PFUNC_IntEventInjectionCallback Callback)
 
INTSTATUS IntUnregisterEventInjectionHandler (void)
 
INTSTATUS IntRegisterEnginesResultCallback (PFUNC_IntEventEnginesResultCallback Callback)
 Thin wrapper over the optional GLUE_IFACE.RegisterEnginesResultCallback API. More...
 
INTSTATUS IntUnregisterEnginesResultCalback (void)
 Thin wrapper over the optional GLUE_IFACE.UnregisterEnginesResultCalback API. More...
 
INTSTATUS IntGetEPTPageProtection (DWORD EptIndex, QWORD Gpa, BYTE *Read, BYTE *Write, BYTE *Execute)
 
INTSTATUS IntSetEPTPageProtection (DWORD EptIndex, QWORD Gpa, BYTE Read, BYTE Write, BYTE Execute)
 
INTSTATUS IntGetSPPPageProtection (QWORD Gpa, QWORD *Spp)
 
INTSTATUS IntSetSPPPageProtection (QWORD Gpa, QWORD Spp)
 
BOOLEAN GlueIsSppApiAvailable (void)
 Checks if the SPP APIs in GLUE_IFACE are implemented. More...
 
INTSTATUS IntRegisterEPTHandler (PFUNC_IntEPTViolationCallback Callback)
 
INTSTATUS IntUnregisterEPTHandler (void)
 
INTSTATUS IntRegisterIntroCallHandler (PFUNC_IntIntroCallCallback Callback)
 
INTSTATUS IntUnregisterIntroCallHandler (void)
 
INTSTATUS IntRegisterVmxTimerHandler (PFUNC_IntIntroTimerCallback Callback)
 
INTSTATUS IntUnregisterVmxTimerHandler (void)
 
INTSTATUS IntRegisterDtrHandler (PFUNC_IntIntroDescriptorTableCallback Callback)
 
INTSTATUS IntUnregisterDtrHandler (void)
 
INTSTATUS IntRegisterXcrWriteHandler (PFUNC_IntXcrWriteCallback Callback)
 
INTSTATUS IntUnregisterXcrWriteHandler (void)
 
INTSTATUS IntSpinLockInit (void **SpinLock, char *Name)
 
INTSTATUS IntSpinLockUnInit (void **SpinLock)
 
void IntSpinLockAcquire (void *SpinLock)
 
void IntSpinLockRelease (void *SpinLock)
 
INTSTATUS IntRwSpinLockInit (void **SpinLock, char *Name)
 
INTSTATUS IntRwSpinLockUnInit (void **SpinLock)
 
INTSTATUS IntRwSpinLockAcquireShared (void *SpinLock)
 
INTSTATUS IntRwSpinLockAcquireExclusive (void *SpinLock)
 
INTSTATUS IntRwSpinLockReleaseShared (void *SpinLock)
 
INTSTATUS IntRwSpinLockReleaseExclusive (void *SpinLock)
 
__noreturn void IntBugCheck (void)
 
INTSTATUS IntNotifyIntroActive (void)
 
INTSTATUS IntNotifyIntroInactive (void)
 
INTSTATUS IntNotifyIntroDetectedOs (INTRO_GUEST_TYPE OsType, DWORD OsVersion, BOOLEAN Is64)
 Wrapper over GLUE_IFACE.NotifyIntrospectionDetectedOs. More...
 
INTSTATUS IntNotifyIntroErrorState (INTRO_ERROR_STATE State, INTRO_ERROR_CONTEXT *Context)
 
INTSTATUS IntNotifyEngines (void *Parameters)
 
INTSTATUS IntSetIntroEmulatorContext (DWORD CpuNumber, QWORD VirtualAddress, DWORD BufferSize, BYTE *Buffer)
 
INTSTATUS IntInjectTrap (DWORD CpuNumber, BYTE TrapNumber, DWORD ErrorCode, QWORD Cr2)
 
INTSTATUS IntNotifyIntroEvent (INTRO_EVENT_TYPE EventClass, void *Param, size_t EventSize)
 Notifies the integrator about an introspection alert. More...
 
INTSTATUS IntGetAgentContent (DWORD AgentTag, BOOLEAN Is64, DWORD *Size, BYTE **Content)
 
INTSTATUS IntReleaseBuffer (void *Buffer, DWORD Size)
 
INTSTATUS IntToggleRepOptimization (BOOLEAN Enable)
 
INTSTATUS IntQueryHeapSize (size_t *TotalHeapSize, size_t *FreeHeapSize)
 
INTSTATUS IntSendMessage (char const *Message)
 Sends an Introcore message. More...
 
INTSTATUS IntSetVEInfoPage (DWORD CpuNumber, QWORD VeInfoGpa)
 
INTSTATUS IntCreateEPT (DWORD *EptIndex)
 
INTSTATUS IntDestroyEPT (DWORD EptIndex)
 
INTSTATUS IntSwitchEPT (DWORD NewEptIndex)
 
INTSTATUS IntGetEPTPageConvertible (DWORD EptIndex, QWORD Address, BOOLEAN *Convertible)
 
INTSTATUS IntSetEPTPageConvertible (DWORD EptIndex, QWORD Address, BOOLEAN Convertible)
 
INTSTATUS IntFlushEPTPermissions (void)
 
BOOLEAN GlueIsVeApiAvailable (void)
 Checks if the virtualization exception API is implemented. More...
 
BOOLEAN GlueIsScanEnginesApiAvailable (void)
 Checks if the third party memory scanning engines are present. More...
 

Variables

DWORD gCurLogBuffer
 Used for utf16_for_log to support calling that function 8 times in a single macro. More...
 
PFUNC_IntTracePrint GlueTracePrint
 The trace API used. More...
 
PFUNC_IntEnterDebugger GlueEnterDebugger
 The API used to break into the debugger. More...
 
IG_LOG_LEVEL gLogLevel
 The currently used log level. More...
 

Macro Definition Documentation

◆ CRITICAL

◆ ERROR

#define ERROR (   fmt,
  ... 
)    INT_LOG(intLogLevelError, fmt, ##__VA_ARGS__)

Definition at line 62 of file glue.h.

Referenced by _IntLixTaskRead(), _IntLixTaskStartMap(), BitMaskClear(), BitMaskSet(), BitMaskTest(), BitMaskTestAndReset(), BitMaskTestAndSet(), DbgCrWriteTestCallback(), DbgDisasm(), DbgDumpCodeblocks(), DbgDumpEthreadToken(), DbgDumpExceptions(), DbgDumpGuestModules(), DbgDumpKmException(), DbgDumpPfn(), DbgDumpProcToken(), DbgDumpTranslation(), DbgDumpUmException(), DbgDumpUmExceptionGlobMatch(), DbgDumpVadRoot(), DbgDumpVaSpace(), DbgFindKsym(), DbgInjectAgent(), DbgInjectFileAgent(), DbgInjectPf(), DbgLogCurrentProcess(), DbgLogKpcr(), DbgProcAdd(), DbgProcRem(), DbgPtsHook(), DbgPtsUnhook(), DbgPtsWrite(), DbgSearchVaSpace(), DbgSetCoreOptions(), DbgSetLogLevel(), DbgSwap(), DbgTestCrHookRem(), DbgTestCrHookSet(), DbgTestRead(), DbgTestSse(), DbgVadFind(), IntAddExceptionFromAlert(), IntAddRemoveProtectedProcessUtf16(), IntAddRemoveProtectedProcessUtf8(), IntAgentHandleLogGatherVmcall(), IntAgentHandleRemediationVmcall(), IntAlertCreateCbSignature(), IntAlertCreateDtrException(), IntAlertCreateEptException(), IntAlertCreateIntegrityException(), IntAlertEptFillFromVictimZone(), IntAlertFillCodeBlocks(), IntAlertFillExecContext(), IntApiLeave(), IntCallbacksInit(), IntCamiFindSectionHeaderByHint(), IntCamiGetWinSupportedList(), IntCamiLoadLinux(), IntCamiLoadLixDistSigs(), IntCamiLoadOpaqueFields(), IntCamiLoadOsOptions(), IntCamiLoadPatternSignatures(), IntCamiLoadProtOptionsLinux(), IntCamiLoadProtOptionsWin(), IntCamiLoadSection(), IntCamiLoadSyscalls(), IntCamiLoadWindows(), IntCamiProtectedProcessAllocate(), IntCamiSetProcProtOptions(), IntCamiSetUpdateBuffer(), IntCr0Read(), IntCr3Read(), IntCr4Protect(), IntCr4Read(), IntCr4Unprotect(), IntCr8Read(), IntCrLixHandleWrite(), IntCrWinHandleWrite(), IntDbgCheckHooks(), IntDbgProcessCommand(), IntDecComputeLinearAddress(), IntDecComputeVsibLinearAddresses(), IntDecDecodeInstructionAtRip(), IntDecDecodeInstructionAtRipWithCache(), IntDecDecodeOperandSize(), IntDecEmulateInstruction(), IntDecEmulatePageWalk(), IntDecEmulatePTWrite(), IntDecEmulateRead(), IntDecGetAccessedMem(), IntDecGetSetSseRegValue(), IntDecGetWrittenValueFromInstruction(), IntDetCallCallback(), IntDetCreateObjectLix(), IntDetDisableLixHypercall(), IntDetGetArgumentInternal(), IntDetGetArguments(), IntDetHandleWrite(), IntDetModifyPublicData(), IntDetPatchArgument(), IntDetPatchFunction(), IntDetRelocate(), IntDetSetHook(), IntDetSetLixHook(), IntDetSetReturnValue(), IntDisableBreakpointNotifications(), IntDisableCrNotifications(), IntDisableDtrNotifications(), IntDisableEptNotifications(), IntDisableIntro(), IntDisableMsrNotifications(), IntDisableXcrNotifications(), IntDisasmBuffer(), IntDisasmGva(), IntDispatchPtAsEpt(), IntDispatchVeAsEpt(), IntDriverLoadHandler(), IntDriverUninit(), IntDriverUnloadHandler(), IntDtrGetProtOption(), IntDtrHandleWrite(), IntDumpBuffer(), IntDumpCodeAndRegs(), IntDumpGvaEx(), IntEnableBreakpointNotifications(), IntEnableCrNotifications(), IntEnableDtrNotifications(), IntEnableEptNotifications(), IntEnableMsrNotifications(), IntEnableXcrNotifications(), IntEngFillExecDetails(), IntEnginesResultCallback(), IntExcept(), IntExceptDumpSignatures(), IntExceptGetOriginatorFromModification(), IntExceptGetVictimEpt(), IntExceptGetVictimIntegrity(), IntExceptKernelLogLinuxInformation(), IntExceptKernelLogWindowsInformation(), IntExceptKernelUser(), IntExceptKernelUserLogWindowsInformation(), IntExceptMatchException(), IntExceptPrintCrInfo(), IntExceptPrintDrvObjInfo(), IntExceptPrintDtrInfo(), IntExceptPrintIdtInfo(), IntExceptPrintLixKmDrvInfo(), IntExceptPrintLixTaskInfo(), IntExceptPrintMsrInfo(), IntExceptPrintWinKmModInfo(), IntExceptPrintWinModInfo(), IntExceptPrintWinProcInfo(), IntExceptUserHandleMemoryFunctions(), IntExceptUserLogLinuxInformation(), IntExceptUserLogWindowsInformation(), IntExceptUserMatchVictim(), IntExceptVerifyCodeBlocksSig(), IntExceptVerifySignature(), IntExceptVerifyValueCodeSig(), IntExceptVerifyValueSig(), IntExceptWinGetVictimDriver(), IntExceptWinKernelGetOriginator(), IntFindKernelPcr(), IntFlushAlertExceptions(), IntFlushGpaCache(), IntFragDumpBlocks(), IntFragExtractCodeBlocks(), IntFragExtractPattern(), IntFragLogCodeBlocks(), IntGdtFindBase(), IntGdtrProtect(), IntGetCurrentInstructionLength(), IntGetCurrentInstructionMnemonic(), IntGetCurrentIntroOptions(), IntGetExceptionsVersion(), IntGetSupportVersion(), IntGetValueFromOperand(), IntGetXsaveArea(), IntGpaCacheAddEntry(), IntGpaCacheFlush(), IntGuestDetectOs(), IntGuestDetectOsSysCall(), IntGuestGetLastGpa(), IntGuestGetPagingMode(), IntGuestHandleCr3Write(), IntGuestInit(), IntGuestInitMemoryInfo(), IntGuestPreReturnCallback(), IntHandleBreakpoint(), IntHandleCowOnPage(), IntHandleCrWrite(), IntHandleDtrViolation(), IntHandleEptViolation(), IntHandleEventInjection(), IntHandleFetchRetryOnPageBoundary(), IntHandleIntroCall(), IntHandleMemAccess(), IntHandleMsrViolation(), IntHandleTimer(), IntHandleXcrWrite(), IntHookCommitAllHooks(), IntHookCrCommit(), IntHookCrRemoveAllHooks(), IntHookCrRemoveHook(), IntHookCrSetHook(), IntHookDtrCommit(), IntHookDtrRemoveAllHooks(), IntHookDtrRemoveHook(), IntHookGetGlaFromGpaHook(), IntHookGpaCommitHooks(), IntHookGpaDeleteHook(), IntHookGpaDeleteHookInternal(), IntHookGpaEnableDisablePtCache(), IntHookGpaEnableDisableVe(), IntHookGpaGetEPTPageProtection(), IntHookGpaInit(), IntHookGpaRemoveHook(), IntHookGpaRemoveHookInternal(), IntHookGpaSetHook(), IntHookGpaSetNewPageProtection(), IntHookGvaCommitHooks(), IntHookGvaDeleteHook(), IntHookGvaDeleteHookInternal(), IntHookGvaDisableHooks(), IntHookGvaEnableHooks(), IntHookGvaHandleSwap(), IntHookGvaRemoveHook(), IntHookGvaRemoveHookInternal(), IntHookGvaSetHook(), IntHookInit(), IntHookMsrCommit(), IntHookMsrRemoveAllHooks(), IntHookMsrRemoveHook(), IntHookMsrSetHook(), IntHookObjectCommit(), IntHookObjectDeleteRegion(), IntHookObjectDestroy(), IntHookObjectDestroyAll(), IntHookObjectHookRegion(), IntHookObjectRemoveRegion(), IntHookObjectRemoveRegionInternal(), IntHookObjectUninit(), IntHookPtmAddTable(), IntHookPtmCommitHooks(), IntHookPtmDeleteHook(), IntHookPtmDeleteHookInternal(), IntHookPtmDeleteTableHook(), IntHookPtmRemoveHook(), IntHookPtmRemoveHookInternal(), IntHookPtmRemoveTableHook(), IntHookPtmSetHook(), IntHookPtmWriteCallback(), IntHookPtsCleanupList(), IntHookPtsCommitHooks(), IntHookPtsCreateEntry(), IntHookPtsDeleteHook(), IntHookPtsDeleteHookInternal(), IntHookPtsDeleteParents(), IntHookPtsDeletePdHook(), IntHookPtsDisableEntry(), IntHookPtsEnableEntry(), IntHookPtsHandleModification(), IntHookPtsInvokeCallbacks(), IntHookPtsMergeEntry(), IntHookPtsRemapEntry(), IntHookPtsRemoveHook(), IntHookPtsRemoveHookInternal(), IntHookPtsRemovePteHook(), IntHookPtsSetHook(), IntHookPtsWriteCallback(), IntHookPtwEmulateWrite(), IntHookPtwProcessWrite(), IntHookRemoveChain(), IntHookUninit(), IntHookXcrCommit(), IntHookXcrRemoveAllHooks(), IntHookXcrRemoveHook(), IntIcAddInstruction(), IntIcAddInvdForInstruction(), IntIcDestroy(), IntIcFlush(), IntIcFlushAddress(), IntIcFlushGpaPage(), IntIcFlushGvaPage(), IntIcFlushVaSpace(), IntIcFreeInvdEntry(), IntIcInvdCacheEntry(), IntIcInvdEntry(), IntIcRemoveAllInvdEntries(), IntIdtFindBase(), IntIdtGetEntry(), IntIdtrProtect(), IntInit(), IntInjectExceptionInGuest(), IntInjectFileAgentInGuest(), IntInjectProcessAgentInGuest(), IntIntegrityAddRegion(), IntIntegrityCheckAll(), IntIntegrityRecalculate(), IntIterateVaSpace(), IntKsymExpandSymbol(), IntKsymFindByAddress(), IntKsymFindByName(), IntKsymFindIndexesTableStart(), IntKsymFindMarkersReducedTableEnd(), IntKsymFindMarkersTableEnd(), IntKsymFindNamesTableEnd(), IntKsymInit(), IntKsymInitAbsolute(), IntKsymInitRelative(), IntKsymRelativeFindOffsetTableEnd(), IntKsymRelativeFindOffsetTableStart(), IntLdrFixImports(), IntLdrGetImageSizeAndEntryPoint(), IntLdrLoadPEImage(), IntLdrPreLoadImage(), IntLixAccessRemoteVmHandler(), IntLixAgentActivatePendingAgent(), IntLixAgentAllocate(), IntLixAgentCreate(), IntLixAgentCreateThreadHypercall(), IntLixAgentError(), IntLixAgentExit(), IntLixAgentFillDataFromMemory(), IntLixAgentFindInstruction(), IntLixAgentFree(), IntLixAgentHandleBreakpoint(), IntLixAgentHandleInt3(), IntLixAgentHandleKernelVmcall(), IntLixAgentHandleUserVmcall(), IntLixAgentHandleVmcall(), IntLixAgentInject(), IntLixAgentNameIsRunning(), IntLixAgentResolveOffset(), IntLixAgentStart(), IntLixAgentThreadCreate(), IntLixAgentThreadError(), IntLixAgentThreadExit(), IntLixAgentThreadHandleBreakpoint(), IntLixAgentThreadInject(), IntLixApiHijackHook(), IntLixApiHook(), IntLixApiHookAll(), IntLixApiUpdateHooks(), IntLixCmdLineInspect(), IntLixCommitCredsHandle(), IntLixCrashDumpDmesg(), IntLixCrashEnoughHeapAvailable(), IntLixCrashFetchDmesgSymbol(), IntLixCrashHandle(), IntLixCrashSendPanicEvent(), IntLixCredAdd(), IntLixCredAnalyzeStack(), IntLixCredCheckIntegrity(), IntLixCredInitMap(), IntLixCredRemove(), IntLixCredsDump(), IntLixCredsVerify(), IntLixDentryGetName(), IntLixDepDeployFileHypercall(), IntLixDepGetInternalArgs(), IntLixDepGetInternalContent(), IntLixDepInjectFile(), IntLixDepInjectProcess(), IntLixDepRunCommand(), IntLixDrvActivateProtection(), IntLixDrvCreateDriverObject(), IntLixDrvCreateFromAddress(), IntLixDrvDeactivateProtection(), IntLixDrvFindList(), IntLixDrvHandleWrite(), IntLixDrvInitVfreeHandler(), IntLixDrvIsLegitimateTextPoke(), IntLixDrvIterateList(), IntLixDrvRemoveDuplicate(), IntLixDrvRemoveFromAddress(), IntLixEngExecSendNotification(), IntLixFileCacheCreateDentryPath(), IntLixFileGetDentry(), IntLixFileGetPath(), IntLixFileReadDentry(), IntLixFindDataStart(), IntLixFsrInitMap(), IntLixFsrRead(), IntLixGetFileName(), IntLixGetInitTask(), IntLixGuestActivateProtection(), IntLixGuestAllocate(), IntLixGuestAllocateDeploy(), IntLixGuestAllocateFill(), IntLixGuestAllocateHook(), IntLixGuestAllocateInit(), IntLixGuestClearGuestMemory(), IntLixGuestDeployUninitAgent(), IntLixGuestFindKernel(), IntLixGuestFindKernelBase(), IntLixGuestFindKernelVersionAndRo(), IntLixGuestFindPgd(), IntLixGuestFindProperSyscall(), IntLixGuestInit(), IntLixGuestInitAgentCompletion(), IntLixGuestInitAgentHypercall(), IntLixGuestIsKptiActive(), IntLixGuestNew(), IntLixGuestResolveExTableLimits(), IntLixGuestResolveOffsets(), IntLixGuestUnhookGuestCode(), IntLixGuestUninit(), IntLixGuestUninitGuestCode(), IntLixHandleCmdLineCallback(), IntLixHookKernelRead(), IntLixHookKernelWrite(), IntLixIdtProtectOnCpu(), IntLixIdtUnprotectAll(), IntLixIdtWriteHandler(), IntLixJumpLabelHandler(), IntLixKernelHandleRead(), IntLixKernelReadProtect(), IntLixKernelWriteProtect(), IntLixMmFetchVma(), IntLixMmFindVmaInLinkedList(), IntLixMmFindVmaInRbTree(), IntLixMmFindVmaRange(), IntLixMmGetInitMm(), IntLixMmListVmasInternal(), IntLixMmPopulateVmas(), IntLixMmPopulateVmasInternal(), IntLixMsrHandleWrite(), IntLixNetFileIsSocket(), IntLixNetGetConnectionFromSocket(), IntLixNetIterateTaskConnections(), IntLixNetSendGuestConnections(), IntLixPatchHandler(), IntLixPatchSwapgs(), IntLixResolveCurrentCpuOffset(), IntLixResolveCurrentProcessOffset(), IntLixResolveExeFileOffset(), IntLixResolveThreadStructOffset(), IntLixStackDumpUmStackTrace(), IntLixStackTraceGet(), IntLixStackTraceGetReg(), IntLixTaskActivateExploitProtection(), IntLixTaskActivateProtection(), IntLixTaskAdd(), IntLixTaskAddProtected(), IntLixTaskAdjustProtections(), IntLixTaskChangeProtectionFlags(), IntLixTaskCreate(), IntLixTaskCreateFromBinprm(), IntLixTaskCreateInitTask(), IntLixTaskDeactivateExploitProtection(), IntLixTaskDestroy(), IntLixTaskFetchCmdLine(), IntLixTaskFetchMm(), IntLixTaskGetCurrentTaskStruct(), IntLixTaskGetDpiMitreId(), IntLixTaskGetPath(), IntLixTaskGetTrapFrame(), IntLixTaskGetUserStack(), IntLixTaskHandleExec(), IntLixTaskHandleFork(), IntLixTaskHandleInjection(), IntLixTaskHandlePtrace(), IntLixTaskHandleVmRw(), IntLixTaskIsUserStackPivoted(), IntLixTaskIterateGuestTasks(), IntLixTaskIterateThreadGroup(), IntLixTaskIterateThreadNode(), IntLixTaskMarkAgent(), IntLixTaskPathGetByDentry(), IntLixTaskPathGetByFile(), IntLixTaskRemoveProtected(), IntLixTaskSendCredViolationEvent(), IntLixTaskUpdateProtection(), IntLixUnpatchSwapgs(), IntLixValidateExecStack(), IntLixValidateProcessCreationRights(), IntLixVdsoDynamicProtect(), IntLixVdsoDynamicProtectNonRelocate(), IntLixVdsoDynamicProtectRelocate(), IntLixVdsoFetchAddress(), IntLixVdsoFixedProtect(), IntLixVdsoHandleKernelModeWrite(), IntLixVdsoHandleUserModeWrite(), IntLixVdsoProtect(), IntLixVdsoResolveDynamicOffset(), IntLixVdsoResolveImageAddress(), IntLixVdsoUnprotect(), IntLixVmaAdjust(), IntLixVmaAdjustInternal(), IntLixVmaChangeProtection(), IntLixVmaExpandDownwards(), IntLixVmaFill(), IntLixVmaGetPageCount(), IntLixVmaHandlePageExecution(), IntLixVmaInsert(), IntLixVmaIntervalChanged(), IntLixVmaProtect(), IntLixVmaRemoveProtection(), IntLogContextRecord(), IntLogCurrentIP(), IntLogExceptionRecord(), IntLogTrapFrame(), IntMemClkCloakRegion(), IntMemClkHandleRead(), IntMemClkHandleSwap(), IntMemClkHashRegion(), IntMemClkModifyPatchedData(), IntMemClkUncloakRegion(), IntMemClkUncloakRegionInternal(), IntMemClkUnInit(), IntModBlockHandleBlockModHeadersInMemory(), IntModifyDynamicOptions(), IntMsrSyscallProtect(), IntMtblCheckAccess(), IntMtblPatchInstruction(), IntNetAddrToStr(), IntNewGuestNotification(), IntNotifyGuestPowerStateChange(), IntPauseVcpus(), IntPeFindExportByName(), IntPeFindExportByOrdinal(), IntPeFindExportByRva(), IntPeFindFunctionByPattern(), IntPeFindFunctionByPatternInBuffer(), IntPeFindFunctionStart(), IntPeGetDirectory(), IntPeGetExportNameByRva(), IntPeGetExportNameByRvaInBuffer(), IntPeGetRuntimeFunction(), IntPeGetRuntimeFunctionInBuffer(), IntPeGetSectionHeaderByIndex(), IntPeGetSectionHeaderByRva(), IntPeGetSectionHeadersByName(), IntPeListSectionsHeaders(), IntPeParseUnwindData(), IntPeParseUnwindDataInBuffer(), IntPeValidateHeader(), IntPeValidateOptionalHeader(), IntPhysMemUnmap(), IntPtCompleteUnloader(), IntPtiAllocMemtableSpace(), IntPtiCacheAdd(), IntPtiCacheRemove(), IntPtiCompleteLoader(), IntPtiDeliverDriverForLoad(), IntPtiDeliverDriverForUnload(), IntPtiDisableFiltering(), IntPtiEnableFiltering(), IntPtiHookPtDriver(), IntPtiInjectPtFilter(), IntPtiIsPtrInAgent(), IntPtiMonitorAllPtWriteCandidates(), IntPtiRemoveInstruction(), IntPtiRemovePtFilter(), IntPtiUnhookPtFilter(), IntReadString(), IntRemoveAllProtectedProcesses(), IntRemoveException(), IntResumeVcpus(), IntRipRead(), IntRtlpVirtualUnwindCheckAccess(), IntSerializeException(), IntSerializeExtractCodeBlocks(), IntSerializeRipCode(), IntSerializeValidObjectSize(), IntSetGprs(), IntSetValueForOperand(), IntShcIsSuspiciousCode(), IntSlackAllocLinux(), IntSlackAllocWindows(), IntStatStop(), IntStructFill(), IntSwapgsInstallHandler(), IntSwapgsStartMitigation(), IntSwapMemCancelTransaction(), IntSwapMemHandleBreakpointAgent(), IntSwapMemInjectPendingPF(), IntSwapMemPageSwappedIn(), IntSwapMemReadData(), IntSwapMemRemoveTransaction(), IntSwapMemRemoveTransactionsForVaSpace(), IntThrSafeCheckThreads(), IntThrSafeInspectRunningThreads(), IntThrSafeLixInspectRunningThreadOnCpu(), IntThrSafeLixInspectWaitingThread(), IntThrSafeMoveRip(), IntThrSafeWinInspectRunningThreadOnCpu(), IntThrSafeWinInspectWaitingThread(), IntTranslateVirtualAddress(), IntUninit(), IntUnpPageExecuteCallback(), IntUnpPageWriteCallback(), IntUnpRemovePages(), IntUnpUnWatchPage(), IntUnpUnWatchPageInternal(), IntUnpUnWatchVaSpacePages(), IntUnpWatchPage(), IntUpdateAddExceptionFromAlert(), IntUpdateAddKmException(), IntUpdateAddKmUmException(), IntUpdateAddUmException(), IntUpdateAddUserExceptionGlob(), IntUpdateCreateExportSignatureFromAlert(), IntUpdateCreateIdtSignatureFromAlert(), IntUpdateCreateProcessCreationSignatureFromAlert(), IntUpdateExceptions(), IntUpdateIsValidEntry(), IntUpdateLoadExceptions(), IntUpdateRemoveSignaturesForException(), IntUpdateSetIdForException(), IntUpdateSupport(), IntValidatePageRights(), IntValidatePageRightsEx(), IntValidateRangeForWrite(), IntValidateTranslation(), IntVasDump(), IntVasHookTables(), IntVasPageTableWriteCallback(), IntVasStartMonitorVaSpace(), IntVasStopMonitorVaSpace(), IntVasUnHookTables(), IntVeCompleteLoader(), IntVeCompleteUnloader(), IntVeDeliverDriverForLoad(), IntVeDeliverDriverForUnload(), IntVeEnableDisableDriverAccessInProtectedView(), IntVeFindKernelKvaShadowAndKernelExit(), IntVeHandleAccess(), IntVeHandleEPTViolationInProtectedView(), IntVeHandleHypercall(), IntVeHandleSwap(), IntVeHookVeDriver(), IntVeInit(), IntVeLockDriver(), IntVePatchVeCoreJmpKiKernelExit(), IntVePatchVeCoreJmpTrampoline(), IntVeRemoveAgent(), IntVeSetVeInfoPage(), IntVeUnhookVeAgent(), IntVeUnInit(), IntVeUpdateCacheEntry(), IntVirtMemSafeWrite(), IntVirtMemUnmap(), IntVmaMarkProtection(), IntWinAgentActivatePendingAgent(), IntWinAgentDeployWinDriver(), IntWinAgentFindInstruction(), IntWinAgentFindPropperSyscall(), IntWinAgentFindSyscallLinkage(), IntWinAgentHandleAppVmcall(), IntWinAgentHandleBreakpointAgent(), IntWinAgentHandleDriverVmcall(), IntWinAgentHandleInt3(), IntWinAgentHandleLoader1Hypercall(), IntWinAgentHandleLoader2Hypercall(), IntWinAgentHandleVmcall(), IntWinAgentInject(), IntWinAgentInjectBreakpoint(), IntWinAgentInjectTrampoline(), IntWinAgentReleaseBootstrap(), IntWinAgentReleaseBootstrapAndRemoveAgent(), IntWinAgentRemove(), IntWinAgentRemoveAgentAndResetState(), IntWinAgentRestoreState32(), IntWinAgentRestoreState64(), IntWinAgentUnInit(), IntWinApiHook(), IntWinApiHookAll(), IntWinApiHookVeHandler(), IntWinBcHandleBugCheck(), IntWinCrashHandleDepViolation(), IntWinDagentCheckNativeSubsystem(), IntWinDagentCheckSuspiciousDllLoad(), IntWinDagentHandleDoubleAgent(), IntWinDagentHandleSlackWritable(), IntWinDagentHandleSuspModExecution(), IntWinDagentHandleSuspModHeaders(), IntWinDagentHandleVerifierReason(), IntWinDagentSendDoubleAgentAlert(), IntWinDepInjectFile(), IntWinDepInjectProcess(), IntWinDpiCheckCreation(), IntWinDpiGatherDpiInfo(), IntWinDpiGetProcessDebugFlag(), IntWinDpiValidateHeapSpray(), IntWinDpiValidatePivotedStack(), IntWinDpiValidateThreadStart(), IntWinDrvCreateFromAddress(), IntWinDrvForceDisableReadNtEat(), IntWinDrvHandleDriverEntry(), IntWinDrvHandleRead(), IntWinDrvHandleWrite(), IntWinDrvHeadersInMemory(), IntWinDrvIterateLoadedModules(), IntWinDrvObjCreateFromAddress(), IntWinDrvObjHandleModification(), IntWinDrvObjHandleWrite(), IntWinDrvObjIsValidDriverObject(), IntWinDrvObjProtect(), IntWinDrvObjProtectFastIoDispatch(), IntWinDrvObjRemove(), IntWinDrvObjRemoveFromAddress(), IntWinDrvObjUninit(), IntWinDrvObjUnprotect(), IntWinDrvObjUnprotectFastIoDispatch(), IntWinDrvObjUpdateProtection(), IntWinDrvRemoveEntry(), IntWinDrvRemoveFromAddress(), IntWinDrvUpdateProtection(), IntWinEngExecSendNotification(), IntWinGetAccessTokenFromProcess(), IntWinGetAccesTokenFromThread(), IntWinGetPrcoCmdLineHandleCmdLineInMemory(), IntWinGetPrcoCmdLineHandleUserParamsInMemory(), IntWinGetProcCmdLineHandleBufferInMemory(), IntWinGetStartUpTime(), IntWinGuestActivateProtection(), IntWinGuestCancelKernelRead(), IntWinGuestFindBuildNumber(), IntWinGuestFindDriversNamespace(), IntWinGuestFindDriversNamespaceNoBuffer(), IntWinGuestFindIdleCr3(), IntWinGuestFindKernel(), IntWinGuestFindKernelCr3(), IntWinGuestFindKernelObjects(), IntWinGuestFindKernelObjectsInternal(), IntWinGuestFindSelfMapIndex(), IntWinGuestFindSystemCr3(), IntWinGuestFinishInit(), IntWinGuestInit(), IntWinGuestIsSupported(), IntWinGuestKernelHeadersInMemory(), IntWinGuestNew(), IntWinGuestReadKernel(), IntWinGuestResolveImports(), IntWinGuestSectionInMemory(), IntWinGuestUninit(), IntWinHalCancelRead(), IntWinHalCreateHalData(), IntWinHalFindHalHeapAndInterruptController(), IntWinHalFindInterruptController(), IntWinHalFindPerformanceCounterInternal(), IntWinHalFinishRead(), IntWinHalHandleDispatchTableWrite(), IntWinHalHandleHalHeapExec(), IntWinHalHandleHalIntCtrlWrite(), IntWinHalHandlePerfCounterModification(), IntWinHalProtectHalDispatchTable(), IntWinHalProtectHalHeapExecs(), IntWinHalProtectHalIntCtrl(), IntWinHalProtectHalPerfCounter(), IntWinHalReadHal(), IntWinHalSectionInMemory(), IntWinHalUnprotectHalDispatchTable(), IntWinHalUnprotectHalPerfCounter(), IntWinHalUpdateProtection(), IntWinHandleCmdLineCallback(), IntWinHandleException(), IntWinIdtHandleModification(), IntWinIdtProtectOnCpuEpt(), IntWinIdtProtectOnCpuIntegrity(), IntWinIdtUnprotectOnCpuEpt(), IntWinIdtUnprotectOnCpuIntergity(), IntWinIdtWriteHandler(), IntWinInfCheckCtxLoggerOnRelocation(), IntWinInfHookEptSppHandleWrite(), IntWinInfHookGetCircularCtxLogger(), IntWinInfHookGetCpuClockIntegrityCallback(), IntWinInfHookGetEtwpDebuggerData(), IntWinInfHookGetWmiLoggerGetCpuClock(), IntWinInfHookHandleSiloFirstWrite(), IntWinInfHookHookSppWmiGetClock(), IntWinInfHookIntegrityHandleWrite(), IntWinInfHookProtect(), IntWinInfHookSiloWmiPtrIntegrityCallback(), IntWinInfHookSppHookWmiSiloPtr(), IntWinInfHookSppViolationCallbackWmiPtrChanged(), IntWinInfHookUnprotect(), IntWinInfHookWmiGetCpuClockSppCallback(), IntWinInspectCommandLine(), IntWinIntObjHandleArrayModification(), IntWinIntObjHandleModification(), IntWinIntObjHandleObjectModification(), IntWinIntObjProtect(), IntWinIntObjUnprotect(), IntWinModBlockBlockModuleLoad(), IntWinModBlockHandleExecution(), IntWinModBlockRemoveBlockObject(), IntWinModCancelExportTransactions(), IntWinModFillInjectionData(), IntWinModFillProcessInjectionData(), IntWinModHandleExportsInMemory(), IntWinModHandleKernelWrite(), IntWinModHandleLoadFromVad(), IntWinModHandleMainModuleInMemory(), IntWinModHandleModuleHeadersInMemory(), IntWinModHandleModulePathInMemory(), IntWinModHandleUserWrite(), IntWinModHookModule(), IntWinModHookPoly(), IntWinModRemoveModule(), IntWinModulesChangeProtectionFlags(), IntWinModUnHookModule(), IntWinMsrHandleWrite(), IntWinNetFindTcpObjects(), IntWinNetIterateConnections(), IntWinNetIterateLinkedList(), IntWinNetParseTcpBitmap(), IntWinNetParseTcpPartition(), IntWinObjCheckDrvDirSearchState(), IntWinObjCleanup(), IntWinObjGetObjectNameInfo(), IntWinObjHandleDirectoryEntryInMemory(), IntWinObjHandleDriverDirectoryEntryInMemory(), IntWinObjHandleObjectInMemory(), IntWinObjHandleRootDirTagInMemory(), IntWinObjParseDriverDirectory(), IntWinPfnHandleTranslationChange(), IntWinPfnIsMmPfnDatabase(), IntWinPfnLockAddress(), IntWinPfnModifyRefCount(), IntWinPfnMoveLock(), IntWinPfnRemoveLock(), IntWinPfnUnInit(), IntWinPfnUnlockAddress(), IntWinPoolHandleAlloc(), IntWinPoolHandleFree(), IntWinPowDisableSpinWait(), IntWinPowEnableSpinWait(), IntWinPowHandleEventCommon(), IntWinPowHandlePowerStateChange(), IntWinProcAdd(), IntWinProcAddProtectedProcess(), IntWinProcChangeProtectionFlags(), IntWinProcCreateProcessObject(), IntWinProcDeleteProcessObject(), IntWinProcDumpEgFlags(), IntWinProcEnforceProcessDep(), IntWinProcHandleCopyMemory(), IntWinProcHandleCreate(), IntWinProcHandleCreateInternal(), IntWinProcHandleDuplicate(), IntWinProcHandleInstrument(), IntWinProcHandleTerminate(), IntWinProcIsEnoughHeapAvailable(), IntWinProcIterateGuestProcesses(), IntWinProcLockCr3(), IntWinProcMapEprocess(), IntWinProcMarkAgent(), IntWinProcMarkAsSystemProcess(), IntWinProcPatchSpareValue(), IntWinProcPrepareInstrument(), IntWinProcProtect(), IntWinProcReadCommandLine(), IntWinProcRemoveProcess(), IntWinProcRemoveProtectedProcess(), IntWinProcSwapIn(), IntWinProcSwapOut(), IntWinProcUninit(), IntWinProcUnlockCr3(), IntWinProcUnprotect(), IntWinProcUpdateProtection(), IntWinProcValidateSystemCr3(), IntWinProtectReadNtEat(), IntWinSDCheckAclIntegrity(), IntWinSDCheckIntegrity(), IntWinSDCheckSecDescIntegrity(), IntWinSDDumpAclEntries(), IntWinSDFetchSecDescAddress(), IntWinSDFetchSecDescValues(), IntWinSDIsSecDescPtrAltered(), IntWinSDProtectSecDesc(), IntWinSDReadSecDesc(), IntWinSelfMapCheckSelfMapEntry(), IntWinSelfMapDisableSelfMapEntryProtection(), IntWinSelfMapEnableSelfMapEntryProtection(), IntWinSelfMapGetAndCheckSelfMapEntry(), IntWinSelfMapHandleCr3SelfMapModification(), IntWinSelfMapHandleCr3SelfMapWrite(), IntWinSelfMapProtectSelfMapIndex(), IntWinSelfMapUnprotectSelfMapIndex(), IntWinSelfMapValidateSelfMapEntries(), IntWinSetUmExceptionEvent(), IntWinStackHandleUserStackPagedOut(), IntWinStackTraceGet64(), IntWinStackTraceGetUser(), IntWinStackTraceGetUser32(), IntWinStackTraceGetUser64(), IntWinStackUserCheckIsPivoted(), IntWinStackUserTrapFrameGet32(), IntWinStackUserTrapFrameGet64(), IntWinStackUserTrapFrameGetGeneric(), IntWinStackWow64CheckIsPivoted(), IntWinSudCheckIntegrity(), IntWinSudHandleFieldModification(), IntWinSudHandleKernelSudExec(), IntWinSudHandleSudExec(), IntWinSudHandleUserSudExec(), IntWinSudProtectIntegrity(), IntWinSudProtectSudExec(), IntWinSudUnprotectSudExec(), IntWinThrGetCurrentStackBaseAndLimit(), IntWinThrGetCurrentThread(), IntWinThrGetCurrentTib(), IntWinThrGetUmStackBaseAndLimitFromTib(), IntWinThrHandleQueueApc(), IntWinThrHandleThreadHijack(), IntWinThrIterateThreads(), IntWinThrPrepareApcHandler(), IntWinTokenCheckIntegrity(), IntWinTokenFetchTokenAddress(), IntWinTokenPrivsCheckIntegrityOnProcess(), IntWinTokenPrivsHandleSwap(), IntWinTokenPrivsHandleWrite(), IntWinTokenPrivsProtectOnProcess(), IntWinTokenPrivsShouldHook(), IntWinTokenPrivsUnprotectOnProcess(), IntWinTokenProtectPrivsInternal(), IntWinTokenPtrIsStolen(), IntWinUmCheckInitializationInjection(), IntWinUmModCacheFillExports(), IntWinUmModCacheFillHeaders(), IntWinUmPathCreate(), IntWinUnprotectReadNtEat(), IntWinVadAdjustRange(), IntWinVadCreateObject(), IntWinVadDestroyObject(), IntWinVadFetchByRange(), IntWinVadFetchImageName(), IntWinVadFetchVadFromMemory(), IntWinVadFindNodeInGuestSpace(), IntWinVadHandleCommit(), IntWinVadHandleDeleteGeneric(), IntWinVadHandleDeleteVaRange(), IntWinVadHandleFinishVadDeletion(), IntWinVadHandleInsert(), IntWinVadHandleInsertGeneric(), IntWinVadHandleInsertMap(), IntWinVadHandleInsertPrivate(), IntWinVadHandlePageExecution(), IntWinVadHandleProtectGeneric(), IntWinVadHandleVirtualProtect(), IntWinVadImportProcessTree(), IntWinVadInOrderRecursiveTraversal(), IntWinVadIsExecSuspicious(), IntWinVadIsInTree(), IntWinVadProcImportMainModuleVad(), IntWinVadReimportProcessTree(), IntWinVadRemoveAllPages(), IntWinVadRemoveRange(), IntWinVadRescanVad(), IntWinVadStaticInsertNodeIntoProcess(), and utf16_for_log().

◆ HpAllocWithTag

#define HpAllocWithTag (   Len,
  Tag 
)    (int)(Len) <= 0 ? NULL : calloc(1, (Len))

Definition at line 516 of file glue.h.

Referenced by BitMaskAlloc(), DbgDumpCodeblocks(), DbgDumpEthreadToken(), DbgDumpProcToken(), DbgIterateVaSpace(), IntAddRemoveProtectedProcessUtf8(), IntCamiLoadLinux(), IntCamiLoadPatternSignatures(), IntCamiLoadWindows(), IntCamiProtectedProcessAllocate(), IntDetCreateObjectLix(), IntDetSetHook(), IntDumpGvaEx(), IntExceptInit(), IntExceptVerifyValueCodeSig(), IntExceptVerifyValueSig(), IntFragDumpBlocks(), IntGetXsaveArea(), IntGpaCacheAddVictim(), IntGpaCacheInit(), IntGuestInit(), IntHookCrInit(), IntHookCrSetHook(), IntHookDtrInit(), IntHookDtrSetHook(), IntHookGpaGetEptEntry(), IntHookGpaGetSppEntry(), IntHookGpaSetHook(), IntHookGvaSetHook(), IntHookInit(), IntHookMsrInit(), IntHookMsrSetHook(), IntHookObjectCreate(), IntHookObjectHookRegion(), IntHookPtmAddTable(), IntHookPtmSetHook(), IntHookPtmWriteCallback(), IntHookPtsCloneCallbacks(), IntHookPtsCreateEntry(), IntHookPtsSetHook(), IntHookXcrInit(), IntHookXcrSetHook(), IntIcAddInvdForInstruction(), IntIcCreate(), IntIntegrityAddRegion(), IntKsymInit(), IntKsymRelativeFindOffsetTableStart(), IntLdrFixImports(), IntLixAgentCreate(), IntLixAgentFillDataFromHandler(), IntLixAgentFillDataFromMemory(), IntLixAgentFindInstruction(), IntLixAgentNameCreate(), IntLixAgentThreadCreate(), IntLixCmdLineInspect(), IntLixCredAdd(), IntLixDentryGetName(), IntLixDrvCreateDriverObject(), IntLixDrvCreateKernel(), IntLixEngExecSendNotification(), IntLixFileCacheCreateDentryPath(), IntLixTaskAddProtected(), IntLixTaskCreate(), IntLixTaskCreateInitTask(), IntLixTaskFetchCmdLine(), IntLixTaskHandleExec(), IntLixTaskPathGetByDentry(), IntLixVmaCreate(), IntMemClkCloakRegion(), IntMtblCheckAccess(), IntPeFindExportByName(), IntPeValidateHeader(), IntPtiDeliverDriverForLoad(), IntPtiMonitorAllPtWriteCandidates(), IntReadString(), IntSlackAllocLinux(), IntSlackAllocWindows(), IntSwapgsInstallHandler(), IntSwapgsStartMitigation(), IntSwapMemReadData(), IntUDAddToPendingList(), IntUnpWatchPage(), IntUpdateAddCbSignature(), IntUpdateAddExportSignature(), IntUpdateAddIdtSignature(), IntUpdateAddKernelException(), IntUpdateAddKernelUserException(), IntUpdateAddKmException(), IntUpdateAddKmUmException(), IntUpdateAddProcessCreationSignature(), IntUpdateAddUmException(), IntUpdateAddUserException(), IntUpdateAddUserExceptionGlob(), IntUpdateAddValueCodeSignature(), IntUpdateAddValueSignature(), IntUpdateAddVersionIntroSignature(), IntUpdateAddVersionOsSignature(), IntUpdateCreateCbSignatureFromAlert(), IntUpdateCreateExportSignatureFromAlert(), IntUpdateCreateIdtSignatureFromAlert(), IntUpdateCreateProcessCreationSignatureFromAlert(), IntVasHookTables(), IntVasStartMonitorVaSpace(), IntVeDeliverDriverForLoad(), IntVeFindKernelKvaShadowAndKernelExit(), IntVeLockDriver(), IntVirtMemMapMultiPage(), IntVirtMemSafeWrite(), IntWinAgentActivatePendingAgent(), IntWinAgentDeployWinDriver(), IntWinAgentFindInstruction(), IntWinAgentHandleDriverVmcall(), IntWinAgentInject(), IntWinAgentInjectBreakpoint(), IntWinDrvCreateFromAddress(), IntWinDrvHeadersInMemory(), IntWinDrvObjCreateFromAddress(), IntWinEngExecSendNotification(), IntWinGetProcCmdLineHandleBufferInMemory(), IntWinGuestFindBuildNumber(), IntWinGuestFindKernelObjectsInternal(), IntWinGuestNew(), IntWinGuestReadKernel(), IntWinGuestValidateKernel(), IntWinHalHandleHalHeapExec(), IntWinHalHeadersInMemory(), IntWinHalReadHal(), IntWinInspectCommandLine(), IntWinIntObjProtect(), IntWinModBlockBlockModuleLoad(), IntWinModBlockRegisterCallbackForReason(), IntWinModCacheCreate(), IntWinModHandleExportsInMemory(), IntWinModHandleLoadFromVad(), IntWinModHookModule(), IntWinObjHandleDirectoryEntryInMemory(), IntWinObjHandleDriverDirectoryEntryInMemory(), IntWinObjHandleObjectInMemory(), IntWinObjHandleRootDirTagInMemory(), IntWinObjParseDriverDirectory(), IntWinPfnLockAddress(), IntWinProcAddProtectedProcess(), IntWinProcCreateProcessObject(), IntWinProcCreateProcessSubsystem(), IntWinSudProtectIntegrity(), IntWinUmModCacheFillHeaders(), IntWinUmPathCreate(), IntWinVadAdjustRange(), IntWinVadCreateObject(), and IntWinVadHandleProtectGeneric().

◆ HpFreeAndNullWithTag

#define HpFreeAndNullWithTag (   Add,
  Tag 
)
Value:
do { \
free(*(Add)); \
*(Add) = NULL; \
} while (0)

Definition at line 517 of file glue.h.

Referenced by BitMaskFree(), DbgDumpCodeblocks(), DbgDumpEthreadToken(), DbgDumpProcToken(), DbgIterateVaSpace(), IntAddRemoveProtectedProcessUtf8(), IntCamiLoadPatternSignatures(), IntCamiLoadWindows(), IntCamiProtectedProcessFree(), IntDetRemoveDetour(), IntDumpGvaEx(), IntExceptInit(), IntExceptUninit(), IntExceptVerifyValueCodeSig(), IntExceptVerifyValueSig(), IntFragDumpBlocks(), IntGetXsaveArea(), IntGpaCacheInit(), IntGpaCacheRelease(), IntGpaCacheUnInit(), IntGuestDetectOsSysCall(), IntGuestUninit(), IntHandleExecCallback(), IntHookCrDeleteHook(), IntHookCrSetHook(), IntHookCrUninit(), IntHookDtrDeleteHook(), IntHookDtrSetHook(), IntHookDtrUninit(), IntHookGpaDeleteHookInternal(), IntHookGpaSetHook(), IntHookGpaSetNewPageProtection(), IntHookGvaDeleteHookInternal(), IntHookInit(), IntHookMsrDeleteHook(), IntHookMsrSetHook(), IntHookMsrUninit(), IntHookObjectCommit(), IntHookObjectDeleteRegion(), IntHookPtmAddTable(), IntHookPtmDeleteHookInternal(), IntHookPtmDeleteTableHook(), IntHookPtmWriteCallback(), IntHookPtsCreateEntry(), IntHookPtsDeleteHookInternal(), IntHookPtsDeletePdHook(), IntHookPtsInvokeCallbacks(), IntHookPtsSetHook(), IntHookUninit(), IntHookXcrDeleteHook(), IntHookXcrSetHook(), IntHookXcrUninit(), IntIcCreate(), IntIcDestroy(), IntIcFreeInvdEntry(), IntIntegrityAddRegion(), IntIntegrityRemoveRegion(), IntKsymInit(), IntKsymRelativeFindOffsetTableStart(), IntKsymUninit(), IntLdrFixImports(), IntLixAgentCreate(), IntLixAgentFindInstruction(), IntLixAgentFree(), IntLixAgentNameRemove(), IntLixAgentThreadCreate(), IntLixAgentThreadFree(), IntLixCmdLineInspect(), IntLixCredAdd(), IntLixCredRemove(), IntLixDentryGetName(), IntLixDrvCreateDriverObject(), IntLixDrvCreateKernel(), IntLixDrvRemoveEntry(), IntLixEngExecSendNotification(), IntLixFileCacheCreateDentryPath(), IntLixFilesCacheUninit(), IntLixGuestFindKernel(), IntLixGuestUninit(), IntLixHandleCmdLineCallback(), IntLixMmListVmasInternal(), IntLixStackDumpUmStackTrace(), IntLixTaskAddProtected(), IntLixTaskCreate(), IntLixTaskPathFree(), IntLixTaskPathGetByDentry(), IntLixTaskRemoveEntry(), IntLixTaskRemoveProtected(), IntLixTaskUninit(), IntLixVmaCreate(), IntLixVmaDestroy(), IntMemClkCleanup(), IntMtblRemoveAgentEntries(), IntMtblUninit(), IntPeFindExportByName(), IntPeValidateHeader(), IntPtiDeleteInstruction(), IntPtiMonitorAllPtWriteCandidates(), IntPtiUnhookPtFilter(), IntReadString(), IntSlackAllocWindows(), IntSlackFree(), IntSlackUninit(), IntSwapgsUninit(), IntSwapMemCancelTransaction(), IntSwapMemCleanupCallback(), IntSwapMemPageSwappedIn(), IntUDRemoveEntry(), IntUninit(), IntUnpUnWatchPageInternal(), IntUpdateAddKmException(), IntUpdateAddKmUmException(), IntUpdateAddUmException(), IntVasDeleteTable(), IntVasHookTables(), IntVasStartMonitorVaSpace(), IntVasStopMonitorVaSpace(), IntVeFindKernelKvaShadowAndKernelExit(), IntVeUnhookVeAgent(), IntVeUnInit(), IntVeUnlockDriver(), IntVirtMemMapMultiPage(), IntVirtMemSafeWrite(), IntVirtMemUnmapMultiPage(), IntWinAgentActivatePendingAgent(), IntWinAgentCheckIfProcessAgentAndDecrement(), IntWinAgentDeployWinDriver(), IntWinAgentFindInstruction(), IntWinAgentFree(), IntWinAgentHandleDriverVmcall(), IntWinAgentInject(), IntWinAgentInjectBreakpoint(), IntWinAgentRemoveEntryByAgid(), IntWinAgentUnInit(), IntWinApiHookAll(), IntWinDrvCreateFromAddress(), IntWinDrvFreeEntry(), IntWinDrvObjFreeDriverObject(), IntWinDrvUnprotect(), IntWinEngExecSendNotification(), IntWinGuestCancelKernelRead(), IntWinGuestFindBuildNumber(), IntWinGuestFindKernelObjectsInternal(), IntWinGuestKernelHeadersInMemory(), IntWinGuestSectionInMemory(), IntWinGuestUninit(), IntWinGuestValidateKernel(), IntWinHalCancelRead(), IntWinHalHandleHalHeapExec(), IntWinHalSectionInMemory(), IntWinHalUninit(), IntWinHandleCmdLineCallback(), IntWinInspectCommandLine(), IntWinIntObjUnprotect(), IntWinModBlockBlockModuleLoad(), IntWinModBlockRegisterCallbackForReason(), IntWinModBlockRemoveBlockObject(), IntWinModHandleExportsInMemory(), IntWinModRemoveModule(), IntWinObjCleanup(), IntWinObjHandleDirectoryEntryInMemory(), IntWinObjHandleDriverDirectoryEntryInMemory(), IntWinObjHandleObjectInMemory(), IntWinObjHandleRootDirTagInMemory(), IntWinObjParseDriverDirectory(), IntWinPfnLockAddress(), IntWinPfnRemoveLock(), IntWinPfnUnlockAddress(), IntWinProcAddProtectedProcess(), IntWinProcRemoveAllProtectedProcesses(), IntWinProcRemoveProcess(), IntWinProcRemoveProtectedProcessInternal(), IntWinProcRemoveSubsystem(), IntWinProcUninit(), IntWinSudProtectIntegrity(), IntWinSudUnprotectIntegrity(), IntWinUmCacheRemoveCache(), IntWinUmPathCreate(), IntWinUmPathFree(), IntWinVadAdjustRange(), IntWinVadCreateObject(), IntWinVadDestroyObject(), IntWinVadRemoveAllPages(), and IntWinVadRemoveRange().

◆ INFO

#define INFO (   fmt,
  ... 
)    INT_LOG(intLogLevelInfo, fmt, ##__VA_ARGS__)

◆ INT_LOG

#define INT_LOG (   loglevel,
  fmt,
  ... 
)
Value:
do { \
if ((loglevel) < gLogLevel) break; \
GlueTracePrint(__FILENAME__, __LINE__, (fmt), ##__VA_ARGS__); \
gCurLogBuffer = 0; \
} while (0)
#define __FILENAME__
Definition: introdefs.h:33
IG_LOG_LEVEL gLogLevel
The currently used log level.
Definition: glue.c:68

Definition at line 36 of file glue.h.

◆ INVALID_EPTP_INDEX

#define INVALID_EPTP_INDEX   0xFFFFFFFF

Definition at line 66 of file glue.h.

Referenced by IntHookGpaInit(), IntVeDumpStats(), IntVeInit(), and IntVeUnInit().

◆ LOG

#define LOG (   fmt,
  ... 
)    INT_LOG(intLogLevelError, fmt, ##__VA_ARGS__)

Definition at line 61 of file glue.h.

Referenced by DbgCheckEpt(), DbgCrWriteTestCallback(), DbgDumpCodeblocks(), DbgDumpCpuState(), DbgDumpEthreadToken(), DbgDumpExceptions(), DbgDumpGuestModules(), DbgDumpHooksGva(), DbgDumpKmException(), DbgDumpPfn(), DbgDumpTranslation(), DbgDumpUmException(), DbgDumpUmExceptionGlobMatch(), DbgDumpVadRoot(), DbgDumpVads(), DbgFailAllocs(), DbgFindKsym(), DbgIterateVaSpace(), DbgLogCoreOptions(), DbgLogCurrentProcess(), DbgLogKpcr(), DbgMitigateSwapgs(), DbgPtsHook(), DbgSearchVaSpace(), DbgSetCoreOptions(), DbgSwapCallback(), DbgTestCrHookSet(), DbgTestSse(), DbgVadFind(), DbgVaModificationHandler(), DbgVaSpaceIterationCallback(), IntCamiLoadLinux(), IntCamiLoadPatternSignatures(), IntCamiLoadWindows(), IntCamiSetCoreOptions(), IntCamiSetShemuOptions(), IntCamiSetUpdateBuffer(), IntCamiUpdateProtOptions(), IntDbgEnterDebugger2(), IntDepInjectFile(), IntDepInjectProcess(), IntDetCallCallback(), IntDetDumpDetours(), IntDetModifyPublicData(), IntDetSetHook(), IntDetSetLixHook(), IntDisasmBuffer(), IntDisasmGva(), IntDriverDump(), IntDumpArchRegs(), IntDumpBuffer(), IntDumpCode(), IntDumpInstruction(), IntDumpLixUmTrapFrame(), IntDumpWinTrapFrame32(), IntDumpWinTrapFrame64(), IntEnterDebugger2(), IntExcept(), IntExceptGetVictimIntegrity(), IntExceptKernelLogLinuxInformation(), IntExceptKernelLogWindowsInformation(), IntExceptKernelMatchVictim(), IntExceptKernelUserLogWindowsInformation(), IntExceptKernelUserMatchObjectType(), IntExceptUser(), IntExceptUserLogLinuxInformation(), IntExceptUserLogWindowsInformation(), IntExceptUserMatchZoneType(), IntExceptVerifyCodeBlocksSig(), IntExceptVerifyValueCodeSig(), IntFragLogCodeBlocks(), IntGetVersionString(), IntGpaCacheDump(), IntGuestDetectOsSysCall(), IntGuestDisableIntro(), IntGuestHandleCr3Write(), IntGuestInit(), IntGuestPreReturnCallback(), IntGuestUninitOnBugcheck(), IntGuestUpdateCoreOptions(), IntGuestUpdateShemuOptions(), IntHandleDtrViolation(), IntHandleEptViolation(), IntHandleExecCallback(), IntHandleIntroCall(), IntHookGpaFindConvertible(), IntHookObjectDestroyAll(), IntHookPtsCheckIntegrity(), IntHookPtsInvokeCallbacks(), IntHookPtwEmulateWrite(), IntHookPtwProcessWrite(), IntIcDumpIcache(), IntInit(), IntIntegrityDump(), IntIntegrityUninit(), IntLixAgentCreateThreadCompletion(), IntLixAgentError(), IntLixAgentHandleUserVmcall(), IntLixAgentInit(), IntLixAgentStart(), IntLixAgentThreadError(), IntLixAgentThreadExit(), IntLixApiHookAll(), IntLixCmdLineInspect(), IntLixCrashDumpDmesg(), IntLixCrashHandle(), IntLixCredAnalyzeStack(), IntLixCredsDump(), IntLixDepComplete(), IntLixDepInjectFile(), IntLixDepInjectProcess(), IntLixDepRunCommand(), IntLixDepRunCommandComplete(), IntLixDrvCreateFromAddress(), IntLixDrvFindList(), IntLixDrvIsLegitimateTextPoke(), IntLixDumpStacktrace(), IntLixFileCacheCreateDentryPath(), IntLixGuestDeployUninitAgent(), IntLixGuestFindKernelVersionAndRo(), IntLixGuestIsKptiActive(), IntLixHandleCmdLineCallback(), IntLixMmListVmasInternal(), IntLixPatchSwapgs(), IntLixResolveCurrentCpuOffset(), IntLixResolveCurrentProcessOffset(), IntLixResolveExeFileOffset(), IntLixResolveThreadStructOffset(), IntLixStackDumpUmStackTrace(), IntLixTaskAddProtected(), IntLixTaskChangeProtectionFlags(), IntLixTaskCreate(), IntLixTaskDeactivateProtection(), IntLixTaskDestroy(), IntLixTaskDump(), IntLixTaskDumpKernelThreadTree(), IntLixTaskDumpProtected(), IntLixTaskDumpTree(), IntLixTaskGuestTerminating(), IntLixTaskHandleDoExit(), IntLixTaskHandleExec(), IntLixTaskHandleInjection(), IntLixTaskRemoveProtected(), IntLixTaskSendCredViolationEvent(), IntLixUnpatchSwapgs(), IntLixValidateProcessCreationRights(), IntLixVdsoDynamicProtectRelocate(), IntLixVdsoFixedProtect(), IntLixVdsoResolveDynamicOffset(), IntLixVmaHandlePageExecution(), IntLixVmaProtect(), IntLogCriticalProcessHasDied(), IntLogCriticalStructureCoruption(), IntLogGuestRegisters(), IntMemClkDump(), IntMemClkHandleRead(), IntModBlockHandleBlockModHeadersInMemory(), IntModBlockHandlePreInjection(), IntMtblCheckAccess(), IntMtblUninit(), IntNewGuestNotification(), IntPtCompleteUnloader(), IntPtiCompleteLoader(), IntPtiDeliverDriverForLoad(), IntPtiDeliverDriverForUnload(), IntPtiDeployLoader(), IntPtiDeployUnloader(), IntPtiDisableFiltering(), IntPtiDumpStats(), IntPtiEnableFiltering(), IntPtiHandleExecute(), IntPtiHandleWrite(), IntPtiRemoveInstruction(), IntPtiRemovePtFilter(), IntSerializeString(), IntStatsDumpAll(), IntStatsInit(), IntSwapgsStartMitigation(), IntSwapMemDump(), IntSwapMemReinjectFailedPF(), IntThrSafeInspectRunningThreads(), IntThrSafeLixInspectRunningThreadOnCpu(), IntThrSafeLixInspectWaitingThread(), IntThrSafeMoveReturn(), IntThrSafeWinGetCurrentStack(), IntThrSafeWinInspectRunningThreadOnCpu(), IntThrSafeWinInspectWaitingThread(), IntUpdateLoadExceptions(), IntVasDumpTables(), IntVasPageTableWriteCallback(), IntVeCompleteLoader(), IntVeCompleteUnloader(), IntVeDeliverDriverForLoad(), IntVeDeliverDriverForUnload(), IntVeDeployLoader(), IntVeDeployUnloader(), IntVeDumpStats(), IntVeDumpVeInfoPage(), IntVeDumpVeInfoPages(), IntVeHandleAccess(), IntVeHandleEPTViolationInProtectedView(), IntVeHandleHypercall(), IntVeHandleSwap(), IntVeHookVeDriver(), IntVeInit(), IntVeLockDriver(), IntVePatchVeCoreJmpKiKernelExit(), IntVeRemoveAgent(), IntVeSetVeInfoPage(), IntVeUnhookVeAgent(), IntWinAgentHandleAppVmcall(), IntWinAgentHandleDriverVmcall(), IntWinApiHookAll(), IntWinApiHookVeHandler(), IntWinBcHandleBugCheck(), IntWinBcLogBsodEvent(), IntWinCrashHandleDepViolation(), IntWinDagentHandleDoubleAgent(), IntWinDagentHandleSuspModExecution(), IntWinDepComplete(), IntWinDepDeploy(), IntWinDepInjectFile(), IntWinDepInjectProcess(), IntWinDpiForceFeedbackIfNeeded(), IntWinDpiGetDpiMitreId(), IntWinDumpPrivileges(), IntWinDumpPrivilegesMask(), IntWinDumpSid(), IntWinDumpToken(), IntWinGetProcCmdLineHandleBufferInMemory(), IntWinGuestFindDriversNamespace(), IntWinGuestFindSelfMapIndex(), IntWinGuestFindSystemCr3(), IntWinGuestFinishInit(), IntWinGuestIsIncreasedUserVa(), IntWinGuestIsSupported(), IntWinGuestNew(), IntWinHalCreateHalData(), IntWinHalHandleDispatchTableWrite(), IntWinHalHandleHalHeapExec(), IntWinHandleCmdLineCallback(), IntWinInfHookEptSppHandleWrite(), IntWinInfHookGetCircularCtxLogger(), IntWinInfHookGetCpuClockIntegrityCallback(), IntWinInfHookGetEtwpDebuggerData(), IntWinInfHookGetWmiLoggerGetCpuClock(), IntWinInfHookHookSppWmiGetClock(), IntWinInfHookSiloWmiPtrIntegrityCallback(), IntWinInfHookSppHookWmiSiloPtr(), IntWinInfHookSppViolationCallbackWmiPtrChanged(), IntWinInfHookSppWmiSiloStatsCallback(), IntWinInfHookWmiGetCpuClockSppStatsCallback(), IntWinInspectCommandLine(), IntWinModHandlePreInjection(), IntWinModPolyHandler(), IntWinNetDumpConnection(), IntWinObjCheckDrvDirSearchState(), IntWinObjFindRootDirectory(), IntWinObjHandleRootDirTagInMemory(), IntWinObjParseDriverDirectory(), IntWinPfnDump(), IntWinPfnHandleTranslationChange(), IntWinPfnLockAddress(), IntWinPfnUnlockAddress(), IntWinPowDisableSpinWait(), IntWinPowEnableSpinWait(), IntWinPowHandleEventCommon(), IntWinPowHandlePowerStateChange(), IntWinProcAdd(), IntWinProcDumpEgFlags(), IntWinProcDumpProtected(), IntWinProcHandleCopyMemory(), IntWinProcHandleInstrument(), IntWinProcSendProcessExceptionEvent(), IntWinProcUpdateProtection(), IntWinSDCheckAclIntegrity(), IntWinSDDumpAclEntries(), IntWinSDDumpSecDesc(), IntWinSelfMapHandleCr3SelfMapModification(), IntWinSetUmExceptionEvent(), IntWinStackHandleUserStackPagedOut(), IntWinStackTraceGet32(), IntWinStackTraceGet64(), IntWinStackTraceGetUser32(), IntWinSudHandleKernelSudExec(), IntWinSudHandleUserSudExec(), IntWinThrHandleQueueApc(), IntWinThrHandleThreadHijack(), IntWinTokenPrivsHandleSwap(), IntWinTokenPtrCheckIntegrityOnProcess(), IntWinVadFindAndUpdateIfNecessary(), IntWinVadIsExecSuspicious(), IntWinVadRescanVad(), and Shemuprint().

◆ NLOG

◆ PHYS_MAP_FLG_NO_FASTMAP

#define PHYS_MAP_FLG_NO_FASTMAP   0x80000000

Indicates that IntPhysMemMap should not use the fast memory mapping mechanism.

This is always true for hypervisors that are not Napoca

Definition at line 71 of file glue.h.

Referenced by IntGpaCacheAddEntry(), and IntPhysMemMap().

◆ TRACE

#define TRACE (   fmt,
  ... 
)    INT_LOG(intLogLevelDebug, fmt, ##__VA_ARGS__)

Definition at line 58 of file glue.h.

Referenced by IntAgentHandleLogGatherVmcall(), IntAgentHandleRemediationVmcall(), IntCamiSetProcProtOptions(), IntCamiUpdateProcessProtectionInfoLix(), IntCamiUpdateProcessProtectionInfoWin(), IntCr4Protect(), IntCr4Unprotect(), IntDecDecodeInstructionAtRipWithCache(), IntDecEmulatePTWrite(), IntDetDisableLixHypercall(), IntDetHandleWrite(), IntDetSetHook(), IntDisableBreakpointNotifications(), IntDisableCrNotifications(), IntDisableDtrNotifications(), IntDisableEptNotifications(), IntDisableMsrNotifications(), IntDisableXcrNotifications(), IntDispatchVeAsEpt(), IntEnableBreakpointNotifications(), IntEnableCrNotifications(), IntEnableDtrNotifications(), IntEnableEptNotifications(), IntEnableMsrNotifications(), IntEnableXcrNotifications(), IntExceptUser(), IntExceptVerifyValueSig(), IntExceptWinGetVictimDriver(), IntExceptWinKernelGetOriginator(), IntGdtrProtect(), IntGdtrUnprotect(), IntGpaCacheAddEntry(), IntGpaCacheLookupEntry(), IntGpaCacheRelease(), IntGuestDetectOs(), IntGuestDetectOsSysCall(), IntGuestHandleCr3Write(), IntGuestInit(), IntGuestUninit(), IntGuestUninitOnBugcheck(), IntHandleBreakpoint(), IntHandleCowOnPage(), IntHandleDtrViolation(), IntHandleEptViolation(), IntHandleEventInjection(), IntHandleFetchRetryOnPageBoundary(), IntHandleMemAccess(), IntHookGpaEnableDisablePtCache(), IntHookGpaEnableDisableVe(), IntHookPtmWriteCallback(), IntHookPtsCheckIntegrity(), IntHookPtsWriteCallback(), IntIcAddInstruction(), IntIdtrProtect(), IntIdtrUnprotect(), IntIntegrityAddRegion(), IntIntegrityDeleteRegion(), IntIntegrityRemoveRegion(), IntKsymInit(), IntKsymInitAbsolute(), IntKsymRelativeFindOffsetTableEnd(), IntKsymRelativeFindOffsetTableStart(), IntLdrFixImports(), IntLdrFixRelocations(), IntLdrGetImageSizeAndEntryPoint(), IntLdrLoadPEImage(), IntLixAgentActivatePendingAgent(), IntLixAgentCreate(), IntLixAgentHandleUserVmcall(), IntLixAgentInject(), IntLixAgentResolveOffset(), IntLixAgentStart(), IntLixAgentThreadInject(), IntLixApiHook(), IntLixApiHookAll(), IntLixCrashFetchDmesgSymbol(), IntLixDepDeployFileHypercall(), IntLixDepInjectFile(), IntLixDepInjectProcess(), IntLixDepRunCommand(), IntLixDrvActivateProtection(), IntLixDrvCreateFromAddress(), IntLixDrvRemoveFromAddress(), IntLixDrvValidate(), IntLixGetInitTask(), IntLixGuestAgentContentHandler(), IntLixGuestAllocate(), IntLixGuestAllocateDeploy(), IntLixGuestAllocateFill(), IntLixGuestDeployUninitAgent(), IntLixGuestDetourDataHandler(), IntLixGuestFindKernelVersionAndRo(), IntLixGuestInit(), IntLixGuestNew(), IntLixGuestParseVersion(), IntLixGuestUninit(), IntLixGuestUninitGuestCode(), IntLixHandleCmdLineCallback(), IntLixIdtProtectOnCpu(), IntLixMmGetInitMm(), IntLixNetProcessConnection(), IntLixPatchHandler(), IntLixPatchSwapgs(), IntLixProcUpdateProtectedProcess(), IntLixStackDumpUmStackTrace(), IntLixStackTraceGet(), IntLixTaskActivateProtection(), IntLixTaskCreate(), IntLixTaskCreateFromBinprm(), IntLixTaskCreateInitTask(), IntLixTaskHandleDoExit(), IntLixTaskHandleExec(), IntLixTaskSendExceptionEvent(), IntLixVdsoDynamicProtectNonRelocate(), IntLixVdsoDynamicProtectRelocate(), IntLixVdsoFixedProtect(), IntMemClkHandleRead(), IntMemClkHandleSwap(), IntModBlockHandleBlockModHeadersInMemory(), IntMsrSyscallProtect(), IntMsrSyscallUnprotect(), IntMtblCheckAccess(), IntMtblPatchInstruction(), IntNewGuestNotification(), IntPeFindFunctionByPattern(), IntPeFindFunctionByPatternInBuffer(), IntPeGetRuntimeFunction(), IntPeGetRuntimeFunctionInBuffer(), IntPeValidateHeader(), IntPhysMemReadWrite(), IntPtiAllocMemtableSpace(), IntPtiDeliverDriverForLoad(), IntPtiHookPtDriver(), IntPtiMonitorAllPtWriteCandidates(), IntRtlpVirtualUnwindCheckAccess(), IntSerializeDump(), IntShcIsSuspiciousCode(), IntSlackAllocLinux(), IntSlackAllocWindows(), IntSwapgsStartMitigation(), IntSwapMemCancelPendingPF(), IntSwapMemHandleBreakpointAgent(), IntSwapMemInjectPendingPF(), IntSwapMemPageSwappedIn(), IntSwapMemReadData(), IntSwapMemRemoveTransactionsForVaSpace(), IntThrSafeInspectRunningThreads(), IntThrSafeIsStackPtrInIntro(), IntUDGetEntry(), IntUninit(), IntUpdateAddKernelException(), IntUpdateAddKernelExceptionInOrder(), IntUpdateAddKernelUserException(), IntUpdateAddKernelUserExceptionInOrder(), IntUpdateAddUserException(), IntUpdateAddUserExceptionGlob(), IntUpdateAddUserExceptionInOrder(), IntUpdateCreateExportSignatureFromAlert(), IntUpdateCreateIdtSignatureFromAlert(), IntUpdateFlushAlertExceptions(), IntUpdateIsDuplicateKernelException(), IntUpdateIsDuplicateKernelUserException(), IntUpdateIsDuplicateUserException(), IntValidatePageRights(), IntValidatePageRightsEx(), IntVeDeliverDriverForLoad(), IntVeInit(), IntWinAgentActivatePendingAgent(), IntWinAgentDeployWinDriver(), IntWinAgentFindInstruction(), IntWinAgentFindSyscallLinkage(), IntWinAgentHandleAppVmcall(), IntWinAgentHandleBreakpointAgent(), IntWinAgentHandleLoader1Hypercall(), IntWinAgentHandleLoader2Hypercall(), IntWinAgentHandleVmcall(), IntWinAgentInject(), IntWinAgentInjectBreakpoint(), IntWinAgentInjectTrampoline(), IntWinAgentSelectBootstrapAddress(), IntWinApiHook(), IntWinApiHookAll(), IntWinApiUpdateHooks(), IntWinDagentCheckNativeSubsystem(), IntWinDagentHandleSuspModExecution(), IntWinDagentHandleSuspModHeaders(), IntWinDagentHandleVerifierReason(), IntWinDepInjectProcess(), IntWinDrvCreateFromAddress(), IntWinDrvHandleRead(), IntWinDrvHeadersInMemory(), IntWinDrvIsListHead(), IntWinDrvObjHandleWrite(), IntWinDrvObjProtect(), IntWinDrvObjProtectFastIoDispatch(), IntWinDrvObjRemoveFromAddress(), IntWinDrvObjUnprotect(), IntWinDrvObjUnprotectFastIoDispatch(), IntWinDrvObjUpdateProtection(), IntWinDrvRemoveFromAddress(), IntWinDrvUnprotect(), IntWinDrvUpdateProtection(), IntWinGetActiveCpuCount(), IntWinGetProcCmdLineHandleBufferInMemory(), IntWinGuestFindBuildNumber(), IntWinGuestFindDriversNamespace(), IntWinGuestFindIdleCr3(), IntWinGuestFindKernelCr3(), IntWinGuestFindKernelObjects(), IntWinGuestFindKernelObjectsInternal(), IntWinGuestFinishInit(), IntWinGuestNew(), IntWinGuestReadKernel(), IntWinGuestResolveImports(), IntWinGuestSectionInMemory(), IntWinGuestValidateKernel(), IntWinHalCreateHalData(), IntWinHalFindHalHeapAndInterruptController(), IntWinHalFindPerformanceCounterInternal(), IntWinHalHandleDispatchTableWrite(), IntWinHalHandleHalHeapExec(), IntWinHalProtectHalDispatchTable(), IntWinHalProtectHalHeapExecs(), IntWinHalProtectHalIntCtrl(), IntWinHalProtectHalPerfCounter(), IntWinHalReadHal(), IntWinHalSectionInMemory(), IntWinHalUnprotectHalDispatchTable(), IntWinHalUnprotectHalHeapExecs(), IntWinHalUnprotectHalIntCtrl(), IntWinHalUnprotectHalPerfCounter(), IntWinIdtProtectOnCpuEpt(), IntWinIdtProtectOnCpuIntegrity(), IntWinIdtUnprotectOnCpuEpt(), IntWinIdtUnprotectOnCpuIntergity(), IntWinInfHookWmiGetCpuClockSppCallback(), IntWinModBlockHandleExecution(), IntWinModCacheCreate(), IntWinModHandleExportsInMemory(), IntWinModHandleMainModuleInMemory(), IntWinModHandleModuleHeadersInMemory(), IntWinModHandleModulePathInMemory(), IntWinModHookModule(), IntWinModHookPoly(), IntWinModulesChangeProtectionFlags(), IntWinNetFindTcpBitmap(), IntWinNetFindTcpObjects(), IntWinNetFindTcpPartition(), IntWinObjCleanup(), IntWinObjGetPoolHeaderForObject(), IntWinObjHandleRootDirTagInMemory(), IntWinObjIsTypeObject(), IntWinPfnHandleTranslationChange(), IntWinProcAddProtectedProcess(), IntWinProcCreateProcessObject(), IntWinProcDeleteProcessObject(), IntWinProcIsEnoughHeapAvailable(), IntWinProcIsExploitGuardEnabled(), IntWinProcPrepareInstrument(), IntWinProcProtect(), IntWinProcSwapIn(), IntWinProcSwapOut(), IntWinProcUpdateProtectedProcess(), IntWinSDGatherAcl(), IntWinSelfMapProtectSelfMapIndex(), IntWinSelfMapUnprotectSelfMapIndex(), IntWinStackTraceGet32(), IntWinStackTraceGetUser(), IntWinStackTraceGetUser32(), IntWinStackUserTrapFrameGet32(), IntWinStackUserTrapFrameGet64(), IntWinThrGetCurrentThread(), IntWinThrHandleThreadHijack(), IntWinThrPrepareApcHandler(), IntWinTokenProtectPrivsInternal(), IntWinUmCheckInitializationInjection(), IntWinUmModCacheFetch(), IntWinUmModCacheFillExports(), IntWinUmModCacheFillHeaders(), IntWinVadCreateObject(), IntWinVadFetchByRange(), IntWinVadHandleDeleteGeneric(), IntWinVadHandleInsertGeneric(), IntWinVadHandlePageExecution(), IntWinVadHandleProtectGeneric(), IntWinVadImportProcessTree(), IntWinVadInOrderRecursiveTraversal(), IntWinVadRescanVad(), and IntWinVadStaticInsertNodeIntoProcess().

◆ WARNING

#define WARNING (   fmt,
  ... 
)    INT_LOG(intLogLevelWarning, fmt, ##__VA_ARGS__)

Definition at line 60 of file glue.h.

Referenced by DbgDumpCodeblocks(), DbgLogFilePath(), IntAddRemoveProtectedProcessUtf8(), IntAlertCoreGetFlags(), IntAlertCreateCbSignature(), IntAlertEptFillFromVictimZone(), IntAlertFillCodeBlocks(), IntAlertFillVersionInfo(), IntAlertProcGetFlags(), IntCamiClearUpdateBuffer(), IntCamiLoadWindows(), IntCamiSetUpdateBuffer(), IntCamiUpdateProcessProtectionInfoLix(), IntCamiUpdateProcessProtectionInfoWin(), IntCrLixHandleWrite(), IntCrSendAlert(), IntDecDecodeInstructionAtRipWithCache(), IntDecGetWrittenValueFromInstruction(), IntDetCallCallback(), IntDetGetArguments(), IntDetHandleWrite(), IntDetIsPtrInHandler(), IntDetRelocate(), IntDetSendIntegrityAlert(), IntDetSetHook(), IntDetSetLixHook(), IntDisasmLixFunction(), IntDtrSendAlert(), IntDumpBuffer(), IntEngSendExecViolation(), IntExceptDumpSignatures(), IntExceptGetOriginatorFromModification(), IntExceptGetVictimEpt(), IntExceptKernelUserMatchProcessHash(), IntExceptLixKernelGetOriginator(), IntExceptUserGetExecOriginator(), IntExceptUserGetOriginator(), IntExceptVerifyCodeBlocksSig(), IntExceptVerifyExportSig(), IntExceptVerifyValueCodeSig(), IntExceptWinKernelGetOriginator(), IntFindKernelPcr(), IntFragDumpBlocks(), IntFragExtractCodeBlocks(), IntFragExtractCodePattern(), IntFragExtractPattern(), IntGdtrProtect(), IntGetValueFromOperand(), IntGetVersionString(), IntGuestInit(), IntGuestIsSafeToDisable(), IntGuestUpdateCoreOptions(), IntHandleBreakpoint(), IntHandleDtrViolation(), IntHandleEptViolation(), IntHandleEventInjection(), IntHandleExecCallback(), IntHookGvaEnableHooks(), IntHookPtsCheckIntegrity(), IntHookPtsCleanupList(), IntIdtrProtect(), IntInjectFileAgentInGuest(), IntInjectProcessAgentInGuest(), IntIntegrityIsOverlappedRegions(), IntKsymExpandSymbol(), IntKsymInitAbsolute(), IntLdrFixRelocations(), IntLdrLoadPEImage(), IntLixAgentDecProcRef(), IntLixAgentHandleUserVmcall(), IntLixAgentInject(), IntLixAgentResolveOffset(), IntLixAgentSendEvent(), IntLixAgentThreadInject(), IntLixCmdLineSendViolationEvent(), IntLixCrashDumpDmesg(), IntLixCrashHandle(), IntLixDrvActivateProtection(), IntLixDrvIsLegitimateTextPoke(), IntLixDrvIterateList(), IntLixDrvRemoveDuplicate(), IntLixDrvSendEvent(), IntLixDrvSendViolationEvent(), IntLixEngExecSendNotification(), IntLixFindDataStart(), IntLixGuestDeployUninitAgent(), IntLixGuestFindKernel(), IntLixGuestFindKernelVersionAndRo(), IntLixGuestInit(), IntLixGuestIsKptiActive(), IntLixGuestNew(), IntLixGuestParseVersion(), IntLixGuestResolveOffsets(), IntLixHookKernelWrite(), IntLixIdtProtectOnCpu(), IntLixIdtWriteHandler(), IntLixKernelHandleRead(), IntLixMmFetchVma(), IntLixMsrHandleWrite(), IntLixNetGetConnectionFromSocket(), IntLixNetSendConnectionEvent(), IntLixPatchHandler(), IntLixPatchSwapgs(), IntLixProcUpdateProtectedProcess(), IntLixResolveCurrentCpuOffset(), IntLixResolveExeFileOffset(), IntLixResolveThreadStructOffset(), IntLixTaskActivateExploitProtection(), IntLixTaskAdd(), IntLixTaskChangeProtectionFlags(), IntLixTaskCreate(), IntLixTaskDeactivateProtection(), IntLixTaskDestroy(), IntLixTaskFetchCmdLine(), IntLixTaskGetCurrentTaskStruct(), IntLixTaskHandlePtrace(), IntLixTaskIsUserStackPivoted(), IntLixTaskIterateTasks(), IntLixTaskSendAgentEvent(), IntLixTaskSendBlockedEvent(), IntLixTaskSendCredViolationEvent(), IntLixTaskSendExceptionEvent(), IntLixTaskSendInjectionEvent(), IntLixTaskSendTaskEvent(), IntLixVdsoDynamicProtect(), IntLixVdsoDynamicProtectRelocate(), IntLixVdsoHandleWriteCommon(), IntLixVdsoProtect(), IntLixVdsoResolveDynamicOffset(), IntLixVmaHandlePageExecution(), IntLixVmaProtect(), IntMemClkHandleWrite(), IntMtblCheckAccess(), IntMtblIsPtrInReloc(), IntMtblPatchInstruction(), IntNewGuestNotification(), IntPeFindExportByName(), IntPeFindExportByNameInBuffer(), IntPeFindExportByOrdinal(), IntPeFindFunctionStart(), IntPeFindFunctionStartInBuffer(), IntPeGetExportNameByRva(), IntPeGetSectionHeaderByRva(), IntPeGetSectionHeadersByName(), IntPeParseUnwindData(), IntPeParseUnwindDataInBuffer(), IntPeValidateHeader(), IntPeValidateOptionalHeader(), IntPtiCompleteLoader(), IntSerializeCodeBlocks(), IntSerializeExtractCodeBlocks(), IntShcIsSuspiciousCode(), IntSlackSendIntegrityAlert(), IntStackAnalyzePointer(), IntSwapgsIsPtrInHandler(), IntThrSafeInspectRunningThreads(), IntThrSafeIsLiveRIPInIntro(), IntThrSafeIsStackPtrInIntro(), IntThrSafeLixInspectWaitingThread(), IntThrSafeMoveReturn(), IntThrSafeMoveRip(), IntThrSafeWinGetCurrentStack(), IntThrSafeWinInspectWaitingThread(), IntUDRemoveAllEntriesForCr3(), IntUpdateAddUmException(), IntUpdateCreateCbSignatureFromAlert(), IntUpdateLoadExceptions(), IntValidatePageRights(), IntValidatePageRightsEx(), IntVasStartMonitorVaSpace(), IntVeDeployAgent(), IntVeHandleAccess(), IntVeHandleEPTViolationInProtectedView(), IntVeUnlockDriver(), IntWinAgentCheckIfProcessAgentAndDecrement(), IntWinAgentHandleAppVmcall(), IntWinAgentHandleDriverVmcall(), IntWinAgentIsPtrInTrampoline(), IntWinApiHook(), IntWinApiHookAll(), IntWinBcSendBsodEvent(), IntWinCrashHandleDepViolation(), IntWinDagentHandleDoubleAgent(), IntWinDagentHandleSuspModHeaders(), IntWinDepComplete(), IntWinDepDeploy(), IntWinDpiSendProcessCreationViolation(), IntWinDpiValidatePivotedStack(), IntWinDpiValidateThreadStart(), IntWinDpiValidateTokenPrivs(), IntWinDrvHeadersInMemory(), IntWinDrvObjCreateFromAddress(), IntWinDrvObjHandleWrite(), IntWinDrvObjSendEptAlert(), IntWinDrvObjSendIntegrityAlert(), IntWinDrvRemoveFromAddress(), IntWinDrvSendAlert(), IntWinDrvSendEvent(), IntWinEngExecSendNotification(), IntWinGetActiveCpuCount(), IntWinGuestFindDriversNamespace(), IntWinGuestFindKernel(), IntWinGuestFinishInit(), IntWinGuestIsIncreasedUserVa(), IntWinGuestIsSystemCr3(), IntWinGuestNew(), IntWinGuestReadKernel(), IntWinGuestValidateKernel(), IntWinHalFindHalHeapAndInterruptController(), IntWinHalFindPerformanceCounterInternal(), IntWinHalHandleHalHeapExec(), IntWinHalProtectHalHeapExecs(), IntWinHalReadHal(), IntWinHalSendAlert(), IntWinHalSendPerfCntIntegrityAlert(), IntWinIdtSendIntegrityAlert(), IntWinIdtWriteHandler(), IntWinInfHookEptSppSendAlert(), IntWinInfHookGetWmiLoggerGetCpuClock(), IntWinInfHookIntegritySendAlert(), IntWinInfHookProtect(), IntWinInfHookSiloWmiPtrIntegrityCallback(), IntWinInfHookSppViolationCallbackWmiPtrChanged(), IntWinIntObjSendIntegrityAlert(), IntWinModBlockHandleExecution(), IntWinModFillDriverInjectionData(), IntWinModHandleExportsInMemory(), IntWinModHandleKernelWrite(), IntWinModHandleUserWrite(), IntWinModHookModule(), IntWinModPolyHandler(), IntWinMsrSendAlert(), IntWinNetGetTcpEndpoint(), IntWinNetGetTcpListener(), IntWinNetIterateConnections(), IntWinNetIterateLinkedList(), IntWinNetParseTcpBitmap(), IntWinNetParseTcpPartition(), IntWinNetSendConnectionEvent(), IntWinObjCancelRootTransactions(), IntWinPfnLockAddress(), IntWinPfnModifyRefCount(), IntWinPfnUnlockAddress(), IntWinPowFromGuestToIntroPowState(), IntWinProcCreateProcessObject(), IntWinProcHandleCopyMemory(), IntWinProcHandleInstrument(), IntWinProcIsExploitGuardEnabled(), IntWinProcMarkAsSystemProcess(), IntWinProcProtect(), IntWinProcReadCommandLine(), IntWinProcSendAgentEvent(), IntWinProcSendDllEvent(), IntWinProcSendProcessEvent(), IntWinProcSendProcessExceptionEvent(), IntWinProcUpdateProtectedProcess(), IntWinProcValidateSystemCr3(), IntWinReadToken(), IntWinSDCheckAclIntegrity(), IntWinSDCheckSecDescIntegrity(), IntWinSDDumpAclEntries(), IntWinSDDumpSecDesc(), IntWinSDFindAcls(), IntWinSDGatherAcl(), IntWinSDIsAclEdited(), IntWinSDIsSecDescPtrAltered(), IntWinSDProcessAcl(), IntWinSDProtectSecDesc(), IntWinSDReadSecDesc(), IntWinSDSendAclIntegrityViolation(), IntWinSDSendSecDescIntViolation(), IntWinSelfMapHandleCr3SelfMapModification(), IntWinSelfMapHandleCr3SelfMapWrite(), IntWinSendCmdLineViolation(), IntWinStackTraceGet32(), IntWinStackTraceGet64(), IntWinStackTraceGetUser32(), IntWinStackUserCheckIsPivoted(), IntWinStackUserTrapFrameGetGeneric(), IntWinStackWow64CheckIsPivoted(), IntWinSudCheckIntegrity(), IntWinSudSendSudExecAlert(), IntWinSudSendSudIntegrityAlert(), IntWinThrHandleQueueApc(), IntWinThrHandleThreadHijack(), IntWinTokenCheckCurrentPrivileges(), IntWinTokenPrivsCheckIntegrityOnProcess(), IntWinTokenPrivsSendEptAlert(), IntWinTokenPrivsSendIntegrityAlert(), IntWinTokenProtectPrivs(), IntWinTokenPtrCheckIntegrityOnProcess(), IntWinUmModCacheFillHeaders(), IntWinUmModCacheSetHeaders(), IntWinUmPathCreate(), IntWinVadHandleDeleteGeneric(), IntWinVadHandleInsertGeneric(), IntWinVadHandleProtectGeneric(), IntWinVadIsExecSuspicious(), and IntWinVadIsInTree().

Function Documentation

◆ GlueIsScanEnginesApiAvailable()

BOOLEAN GlueIsScanEnginesApiAvailable ( void  )

Checks if the third party memory scanning engines are present.

If the API needed for the scanning engines is not present, the support will be considered to be off and the feature will not be available.

Return values
Trueif the API is implemented
Falseif it is not

Definition at line 1284 of file glue.c.

Referenced by IntWinProcCreateProcessObject().

◆ GlueIsSppApiAvailable()

BOOLEAN GlueIsSppApiAvailable ( void  )

Checks if the SPP APIs in GLUE_IFACE are implemented.

Checks if GLUE_IFACE.GetSPPPageProtection and GLUE_IFACE.SetSPPPageProtection are implemented. These APIs are optional and their absence is treated as if the hypervisor does not have support for Intel SPP.

Return values
Trueif the APIs are available
Falseif the APIs are not available

Definition at line 705 of file glue.c.

Referenced by IntHookGpaInit().

◆ GlueIsVeApiAvailable()

BOOLEAN GlueIsVeApiAvailable ( void  )

Checks if the virtualization exception API is implemented.

If at least one of the APIs is not implemented, we will not use the #VE filtering mechanism even if the INTRO_OPT_VE option is used.

Return values
Trueif the API is implemented
Falseif it is not

Definition at line 1261 of file glue.c.

Referenced by IntVeInit().

◆ GluePauseVcpus()

INTSTATUS GluePauseVcpus ( void  )

Definition at line 481 of file glue.c.

Referenced by IntPauseVcpus().

◆ GlueResumeVcpus()

INTSTATUS GlueResumeVcpus ( void  )

Definition at line 490 of file glue.c.

Referenced by IntResumeVcpus().

◆ IntBugCheck()

◆ IntCreateEPT()

INTSTATUS IntCreateEPT ( DWORD EptIndex)

Definition at line 1168 of file glue.c.

Referenced by IntVeInit().

◆ IntDestroyEPT()

INTSTATUS IntDestroyEPT ( DWORD  EptIndex)

Definition at line 1182 of file glue.c.

Referenced by IntVeInit(), and IntVeUnInit().

◆ IntDisableCrWriteExit()

INTSTATUS IntDisableCrWriteExit ( DWORD  Cr)

Definition at line 556 of file glue.c.

Referenced by IntHookCrRemoveHook().

◆ IntDisableMsrExit()

INTSTATUS IntDisableMsrExit ( DWORD  Msr,
BOOLEAN OldValue 
)

Definition at line 509 of file glue.c.

Referenced by IntHookMsrRemoveHook().

◆ IntEnableCrWriteExit()

INTSTATUS IntEnableCrWriteExit ( DWORD  Cr)

Definition at line 547 of file glue.c.

Referenced by IntHookCrSetHook().

◆ IntEnableMsrExit()

INTSTATUS IntEnableMsrExit ( DWORD  Msr,
BOOLEAN OldValue 
)

Definition at line 499 of file glue.c.

Referenced by IntHookMsrSetHook().

◆ IntFlushEPTPermissions()

INTSTATUS IntFlushEPTPermissions ( void  )

Definition at line 1242 of file glue.c.

Referenced by IntHookPtmAddTable(), IntValidatePageRights(), and IntValidatePageRightsEx().

◆ IntGetAgentContent()

INTSTATUS IntGetAgentContent ( DWORD  AgentTag,
BOOLEAN  Is64,
DWORD Size,
BYTE **  Content 
)

Definition at line 1066 of file glue.c.

Referenced by IntLixDepGetInternalContent(), and IntWinDepInjectProcess().

◆ IntGetEPTPageConvertible()

INTSTATUS IntGetEPTPageConvertible ( DWORD  EptIndex,
QWORD  Address,
BOOLEAN Convertible 
)

◆ IntGetEPTPageProtection()

INTSTATUS IntGetEPTPageProtection ( DWORD  EptIndex,
QWORD  Gpa,
BYTE Read,
BYTE Write,
BYTE Execute 
)

◆ IntGetSPPPageProtection()

INTSTATUS IntGetSPPPageProtection ( QWORD  Gpa,
QWORD Spp 
)

Definition at line 685 of file glue.c.

◆ IntGlueInit()

INTSTATUS IntGlueInit ( GLUE_IFACE const *  GlueInterface,
UPPER_IFACE const *  UpperInterface 
)

Initializes the instances of GLUE_IFACE and UPPER_IFACE that will be used.

This is one of the first functions called when introcore starts, it needs to set up the interfaces used for communication with the integrator. On Napoca, it will also initialize the fast page map mechanism. Failure to initialize this is not treated as an error, and initialization can continue. Once this function returns, gIface and gUpIface can safely be used to call functions exposed by the integrator. It is important to note, that a failure reported by this function can't even be logged, as there is no logging API available before gUpIface is initialized.

Parameters
[in]GlueInterfaceInstance of the GLUE_IFACE interface which has the APIs exposed by the integrator initialized
[in]UpperInterfaceInstance of the UPPER_IFACE interface which has the APIs exposed by the integrator initialized
Return values
INT_STATUS_SUCCESSin case of success
INT_STATUS_ALREADY_INITIALIZED_HINTif gIface or gUpIface is already initialized
INT_STATUS_NOT_SUPPORTEDif the sizes reported inside the interfaces do not match GLUE_IFACE_VERSION_LATEST or GLUE_IFACE_VERSION_LATEST_SIZE, or the versions reported inside the interfaces do not match UPPER_IFACE_VERSION_LATEST or UPPER_IFACE_VERSION_LATEST_SIZE
INT_STATUS_INVALID_PARAMETER_1if one of the mandatory APIs inside GLUE_IFACE are not found in GlueInterface
INT_STATUS_INVALID_PARAMETER_2if one of the mandatory APIs inside UPPER_IFACE are not found in UpperInterface

Definition at line 101 of file glue.c.

Referenced by IntInit().

◆ IntGlueReset()

void IntGlueReset ( void  )

Resets the global glue state (gIface. gUpIface, gIntHandle, gEventId, etc)

Definition at line 77 of file glue.c.

Referenced by IntPreinit(), and IntUninit().

◆ IntGpaToHpa()

INTSTATUS IntGpaToHpa ( QWORD  Gpa,
QWORD Hpa 
)

Definition at line 240 of file glue.c.

Referenced by IntPhysMemFastMap().

◆ IntInjectTrap()

INTSTATUS IntInjectTrap ( DWORD  CpuNumber,
BYTE  TrapNumber,
DWORD  ErrorCode,
QWORD  Cr2 
)

Definition at line 1030 of file glue.c.

Referenced by IntInjectExceptionInGuest().

◆ IntNotifyEngines()

INTSTATUS IntNotifyEngines ( void *  Parameters)

◆ IntNotifyIntroActive()

INTSTATUS IntNotifyIntroActive ( void  )

Definition at line 927 of file glue.c.

Referenced by IntLixGuestInitAgentCompletion(), and IntWinGuestFinishInit().

◆ IntNotifyIntroDetectedOs()

INTSTATUS IntNotifyIntroDetectedOs ( INTRO_GUEST_TYPE  OsType,
DWORD  OsVersion,
BOOLEAN  Is64 
)

Wrapper over GLUE_IFACE.NotifyIntrospectionDetectedOs.

Simply encapsulates the guest information into a GUEST_INFO structure and sends it to the integrator.

Parameters
[in]OsTypeThe type of the OS
[in]OsVersionThe version of the OS kernel
[in]Is64True for 64-bit kernels, False for 32-bit kernels
Returns
INT_STATUS_SUCCESS if successful, or an appropriate INTSTATUS error value

Definition at line 955 of file glue.c.

Referenced by IntLixGuestNew(), and IntWinGuestFinishInit().

◆ IntNotifyIntroErrorState()

◆ IntNotifyIntroEvent()

INTSTATUS IntNotifyIntroEvent ( INTRO_EVENT_TYPE  EventClass,
void *  Param,
size_t  EventSize 
)

Notifies the integrator about an introspection alert.

It also sets the exception information inside the event before sending it

Parameters
[in]EventClassThe type of the event
[in]ParamThe event buffer
[in]EventSizeThe size of the Param buffer, in bytes
Returns
INT_STATUS_SUCCESS if successful, or an appropriate INTSTATUS error value

Definition at line 1042 of file glue.c.

Referenced by IntAgentHandleLogGatherVmcall(), IntAgentHandleRemediationVmcall(), IntCrSendAlert(), IntDetSendIntegrityAlert(), IntDtrSendAlert(), IntEngSendExecViolation(), IntHookGvaEnableHooks(), IntHookPtsCheckIntegrity(), IntLixAgentHandleUserVmcall(), IntLixAgentSendEvent(), IntLixCmdLineSendViolationEvent(), IntLixCrashSendPanicEvent(), IntLixDrvSendEvent(), IntLixDrvSendViolationEvent(), IntLixIdtWriteHandler(), IntLixKernelHandleRead(), IntLixMsrHandleWrite(), IntLixNetSendConnectionEvent(), IntLixTaskSendAgentEvent(), IntLixTaskSendBlockedEvent(), IntLixTaskSendCredViolationEvent(), IntLixTaskSendExceptionEvent(), IntLixTaskSendInjectionEvent(), IntLixTaskSendTaskEvent(), IntLixVdsoHandleWriteCommon(), IntLixVmaHandlePageExecution(), IntSendMessage(), IntSlackSendIntegrityAlert(), IntVeHandleAccess(), IntVeHandleEPTViolationInProtectedView(), IntWinAgentHandleAppVmcall(), IntWinAgentHandleDriverVmcall(), IntWinBcSendBsodEvent(), IntWinCrashHandleDepViolation(), IntWinDagentSendDoubleAgentAlert(), IntWinDepComplete(), IntWinDepDeploy(), IntWinDpiSendProcessCreationViolation(), IntWinDrvObjSendEptAlert(), IntWinDrvObjSendIntegrityAlert(), IntWinDrvSendAlert(), IntWinDrvSendEvent(), IntWinHalHandleDispatchTableWrite(), IntWinHalHandleHalHeapExec(), IntWinHalSendAlert(), IntWinHalSendPerfCntIntegrityAlert(), IntWinIdtSendIntegrityAlert(), IntWinIdtWriteHandler(), IntWinInfHookEptSppSendAlert(), IntWinInfHookIntegritySendAlert(), IntWinIntObjSendIntegrityAlert(), IntWinModHandleKernelWrite(), IntWinModHandleUserWrite(), IntWinModPolyHandler(), IntWinMsrSendAlert(), IntWinNetSendConnectionEvent(), IntWinProcHandleCopyMemory(), IntWinProcHandleInstrument(), IntWinProcSendAgentEvent(), IntWinProcSendDllEvent(), IntWinProcSendProcessEvent(), IntWinProcSendProcessExceptionEvent(), IntWinProcValidateSystemCr3(), IntWinSDSendAclIntegrityViolation(), IntWinSDSendSecDescIntViolation(), IntWinSelfMapHandleCr3SelfMapModification(), IntWinSelfMapHandleCr3SelfMapWrite(), IntWinSendCmdLineViolation(), IntWinSudSendSudExecAlert(), IntWinSudSendSudIntegrityAlert(), IntWinThrHandleQueueApc(), IntWinThrHandleThreadHijack(), IntWinTokenPrivsSendEptAlert(), IntWinTokenPrivsSendIntegrityAlert(), IntWinTokenPtrCheckIntegrityOnProcess(), and IntWinVadIsExecSuspicious().

◆ IntNotifyIntroInactive()

INTSTATUS IntNotifyIntroInactive ( void  )

Definition at line 941 of file glue.c.

Referenced by IntGuestUninit().

◆ IntPhysMemGetTypeFromMtrrs()

INTSTATUS IntPhysMemGetTypeFromMtrrs ( QWORD  Gpa,
IG_MEMTYPE MemType 
)

Definition at line 537 of file glue.c.

Referenced by IntPhysMemFastMap().

◆ IntPhysMemMap()

__must_check INTSTATUS IntPhysMemMap ( QWORD  PhysAddress,
DWORD  Length,
DWORD  Flags,
void **  HostPtr 
)

Maps a guest physical address inside Introcore VA space.

IntPhysMemUnmap must be used to unmap memory obtained from this function. For scenarios in which Introcore runs directly inside the VMX root, and if the fast map mechanism is implemented (by providing a GLUE_IFACE.ReserveVaSpaceWithPt implementation), it will map the page directly inside a predefined range reserved at startup. In this way, we avoid making long, slow calls to mapping APIs, which has a significant performance impact. If the fast mapping is not available, or no more free pages are found, we use the standard mapping API: GLUE_IFACE.PhysMemMapToHost. For most use-cases this is true, and this function can be considered a thin wrapper over GLUE_IFACE.PhysMemMapToHost.

Parameters
[in]PhysAddressThe guest physical address to be mapped
[in]LengthThe size to be mapped, in bytes
[in]FlagsFlags that control the mapping. Either 0 or PHYS_MAP_FLG_NO_FASTMAP. PHYS_MAP_FLG_NO_FASTMAP is ignored if the hypervisor is not Napoca, since that is true by default in those cases.
[out]HostPtrOn success, will hold a pointer to the memory at which PhysicalAddress is mapped
Returns
INT_STATUS_SUCCESS if successful, or an appropriate INTSTATUS error value

Definition at line 338 of file glue.c.

Referenced by IntDecEmulatePageWalk(), IntDumpCodeAndRegs(), IntGpaCacheAddEntry(), IntIterateVirtualAddressSpaceRec(), IntLixGuestFindKernelVersionAndRo(), IntMapGpaForTranslation(), IntPeFindFunctionStart(), IntPhysMemReadWrite(), IntPhysMemReadWriteAnySize(), IntVasHookTables(), IntVeHandleSwap(), IntVeSetVeInfoPage(), IntVirtMemMap(), IntVirtMemSafeWrite(), IntWinDrvObjIsValidDriverObject(), IntWinGuestFindSelfMapIndex(), IntWinGuestIsSystemCr3(), IntWinHalFindHalHeapAndInterruptController(), IntWinSelfMapHandleCr3SelfMapModification(), and IntWinSelfMapHandleCr3SelfMapWrite().

◆ IntPhysMemUnmap()

INTSTATUS IntPhysMemUnmap ( void **  HostPtr)

Unmaps an address previously mapped with IntPhysMemMap.

This function handles the cases in which memory came from the fast mapping mechanism by checking if the provided address is in the range [gFastPaPageBase, gFastPaPageBase + gFastPaPagesCount * PAGE_SIZE]. For most use-cases this is a thin wrapper over GLUE_IFACE.PhysMemUnmap.

Parameters
[in,out]HostPtrPoints to the address at the start of the area that must be unmapped. Must be the same address as obtained from IntPhysMemMap, partial unmaps are not possible. After this function returns it will point to NULL and the old address is no longer valid.
Returns
INT_STATUS_SUCCESS if successful, or an appropriate INTSTATUS error value

Definition at line 396 of file glue.c.

Referenced by IntDecEmulatePageWalk(), IntDumpCodeAndRegs(), IntGpaCacheAddEntry(), IntGpaCacheFlush(), IntGpaCacheRelease(), IntGpaCacheUnInit(), IntIterateVirtualAddressSpaceRec(), IntLixGuestFindKernelVersionAndRo(), IntPeFindFunctionStart(), IntPhysMemReadWrite(), IntUnmapGpaForTranslation(), IntVasHookTables(), IntVeHandleSwap(), IntVeSetVeInfoPage(), IntVirtMemSafeWrite(), IntVirtMemUnmap(), IntWinDrvObjIsValidDriverObject(), IntWinGuestFindSelfMapIndex(), IntWinGuestIsSystemCr3(), IntWinHalFindHalHeapAndInterruptController(), IntWinSelfMapHandleCr3SelfMapModification(), and IntWinSelfMapHandleCr3SelfMapWrite().

◆ IntQueryGuestInfo()

◆ IntQueryHeapSize()

INTSTATUS IntQueryHeapSize ( size_t *  TotalHeapSize,
size_t *  FreeHeapSize 
)

Definition at line 1112 of file glue.c.

Referenced by IntLixCrashEnoughHeapAvailable(), and IntWinProcIsEnoughHeapAvailable().

◆ IntRegisterBreakpointHandler()

INTSTATUS IntRegisterBreakpointHandler ( PFUNC_IntBreakpointCallback  Callback)

Definition at line 583 of file glue.c.

Referenced by IntEnableBreakpointNotifications(), and IntWinGuestInit().

◆ IntRegisterCrWriteHandler()

INTSTATUS IntRegisterCrWriteHandler ( PFUNC_IntCrWriteCallback  Callback)

Definition at line 565 of file glue.c.

Referenced by IntEnableCrNotifications().

◆ IntRegisterDtrHandler()

INTSTATUS IntRegisterDtrHandler ( PFUNC_IntIntroDescriptorTableCallback  Callback)

Definition at line 777 of file glue.c.

Referenced by IntEnableDtrNotifications().

◆ IntRegisterEnginesResultCallback()

INTSTATUS IntRegisterEnginesResultCallback ( PFUNC_IntEventEnginesResultCallback  Callback)

Thin wrapper over the optional GLUE_IFACE.RegisterEnginesResultCallback API.

Parameters
[in]CallbackThe callback to be registered
Returns
Since the API is optional, it either returns the same values as the API, or INT_STATUS_NOT_NEEDED_HINT if it is not implemented

Definition at line 619 of file glue.c.

Referenced by IntCallbacksInit().

◆ IntRegisterEPTHandler()

INTSTATUS IntRegisterEPTHandler ( PFUNC_IntEPTViolationCallback  Callback)

Definition at line 723 of file glue.c.

Referenced by IntEnableEptNotifications().

◆ IntRegisterEventInjectionHandler()

INTSTATUS IntRegisterEventInjectionHandler ( PFUNC_IntEventInjectionCallback  Callback)

Definition at line 601 of file glue.c.

Referenced by IntCallbacksInit().

◆ IntRegisterIntroCallHandler()

INTSTATUS IntRegisterIntroCallHandler ( PFUNC_IntIntroCallCallback  Callback)

Definition at line 741 of file glue.c.

Referenced by IntCallbacksInit().

◆ IntRegisterMSRHandler()

INTSTATUS IntRegisterMSRHandler ( PFUNC_IntMSRViolationCallback  Callback)

Definition at line 519 of file glue.c.

Referenced by IntEnableMsrNotifications().

◆ IntRegisterVmxTimerHandler()

INTSTATUS IntRegisterVmxTimerHandler ( PFUNC_IntIntroTimerCallback  Callback)

Definition at line 759 of file glue.c.

Referenced by IntCallbacksInit().

◆ IntRegisterXcrWriteHandler()

INTSTATUS IntRegisterXcrWriteHandler ( PFUNC_IntXcrWriteCallback  Callback)

Definition at line 795 of file glue.c.

Referenced by IntEnableXcrNotifications().

◆ IntReleaseBuffer()

INTSTATUS IntReleaseBuffer ( void *  Buffer,
DWORD  Size 
)

Definition at line 1083 of file glue.c.

Referenced by IntCamiClearUpdateBuffer(), IntLixAgentThreadFree(), and IntWinAgentFree().

◆ IntReserveVaSpaceWithPt()

INTSTATUS IntReserveVaSpaceWithPt ( void **  FirstPageBase,
DWORD PagesCount,
void **  PtBase 
)

Reserves a contiguous region of virtual memory which will then be used to map physical pages.

Will return the base address of the region, the number of pages reserved , and the Page Table base, which maps the given virtual address range. Calling this function more than once should be avoided.

Parameters
[in]FirstPageBaseOn success, will contain the start of the virtual address range
[in]PagesCountOn success, will contain the number of pages reserved
[in]PtBaseOn success, will contain a pointer to the page table that was reserved
Return values
INT_STATUS_SUCCESSin case of success
INT_STATUS_OPERATION_NOT_IMPLEMENTEDif GLUE_IFACE.ReserveVaSpaceWithPt is not implemented. Since this API is optional, this should not be treated as a fatal error

Definition at line 451 of file glue.c.

Referenced by IntGlueInit().

◆ IntRwSpinLockAcquireExclusive()

INTSTATUS IntRwSpinLockAcquireExclusive ( void *  SpinLock)

Definition at line 890 of file glue.c.

◆ IntRwSpinLockAcquireShared()

INTSTATUS IntRwSpinLockAcquireShared ( void *  SpinLock)

Definition at line 881 of file glue.c.

◆ IntRwSpinLockInit()

INTSTATUS IntRwSpinLockInit ( void **  SpinLock,
char *  Name 
)

Definition at line 862 of file glue.c.

◆ IntRwSpinLockReleaseExclusive()

INTSTATUS IntRwSpinLockReleaseExclusive ( void *  SpinLock)

Definition at line 908 of file glue.c.

◆ IntRwSpinLockReleaseShared()

INTSTATUS IntRwSpinLockReleaseShared ( void *  SpinLock)

Definition at line 899 of file glue.c.

◆ IntRwSpinLockUnInit()

INTSTATUS IntRwSpinLockUnInit ( void **  SpinLock)

Definition at line 872 of file glue.c.

◆ IntSendMessage()

INTSTATUS IntSendMessage ( char const *  Message)

Sends an Introcore message.

This will encapsulate Message inside a EVENT_INTROSPECTION_MESSAGE structure and will send an event of type introEventMessage

Parameters
[in]MessageNULL terminated string with the message
Returns
INT_STATUS_SUCCESS if successful, or an appropriate INTSTATUS error value

Definition at line 1130 of file glue.c.

◆ IntSetEPTPageConvertible()

INTSTATUS IntSetEPTPageConvertible ( DWORD  EptIndex,
QWORD  Address,
BOOLEAN  Convertible 
)

◆ IntSetEPTPageProtection()

◆ IntSetIntroEmulatorContext()

INTSTATUS IntSetIntroEmulatorContext ( DWORD  CpuNumber,
QWORD  VirtualAddress,
DWORD  BufferSize,
BYTE Buffer 
)

Definition at line 1018 of file glue.c.

Referenced by IntHandleEptViolation().

◆ IntSetSPPPageProtection()

INTSTATUS IntSetSPPPageProtection ( QWORD  Gpa,
QWORD  Spp 
)

Definition at line 695 of file glue.c.

Referenced by IntHookGpaSetHook(), and IntHookGpaSetNewPageProtection().

◆ IntSetVEInfoPage()

INTSTATUS IntSetVEInfoPage ( DWORD  CpuNumber,
QWORD  VeInfoGpa 
)

Definition at line 1153 of file glue.c.

Referenced by IntVeSetVeInfoPage().

◆ IntSpinLockAcquire()

◆ IntSpinLockInit()

INTSTATUS IntSpinLockInit ( void **  SpinLock,
char *  Name 
)

Definition at line 813 of file glue.c.

Referenced by IntInit().

◆ IntSpinLockRelease()

◆ IntSpinLockUnInit()

INTSTATUS IntSpinLockUnInit ( void **  SpinLock)

Definition at line 823 of file glue.c.

Referenced by IntUninit().

◆ IntSwitchEPT()

INTSTATUS IntSwitchEPT ( DWORD  NewEptIndex)

Definition at line 1196 of file glue.c.

◆ IntToggleRepOptimization()

INTSTATUS IntToggleRepOptimization ( BOOLEAN  Enable)

Definition at line 1098 of file glue.c.

Referenced by IntHandleEptViolation().

◆ IntUnregisterBreakpointHandler()

INTSTATUS IntUnregisterBreakpointHandler ( void  )

Definition at line 592 of file glue.c.

Referenced by IntCallbacksUnInit(), and IntDisableBreakpointNotifications().

◆ IntUnregisterCrWriteHandler()

INTSTATUS IntUnregisterCrWriteHandler ( void  )

Definition at line 574 of file glue.c.

Referenced by IntDisableCrNotifications().

◆ IntUnregisterDtrHandler()

INTSTATUS IntUnregisterDtrHandler ( void  )

Definition at line 786 of file glue.c.

Referenced by IntDisableDtrNotifications().

◆ IntUnregisterEnginesResultCalback()

INTSTATUS IntUnregisterEnginesResultCalback ( void  )

Thin wrapper over the optional GLUE_IFACE.UnregisterEnginesResultCalback API.

Returns
Since the API is optional, it either returns the same values as the API, or INT_STATUS_NOT_NEEDED_HINT if it is not implemented

Definition at line 640 of file glue.c.

Referenced by IntCallbacksUnInit().

◆ IntUnregisterEPTHandler()

INTSTATUS IntUnregisterEPTHandler ( void  )

Definition at line 732 of file glue.c.

Referenced by IntDisableEptNotifications().

◆ IntUnregisterEventInjectionHandler()

INTSTATUS IntUnregisterEventInjectionHandler ( void  )

Definition at line 610 of file glue.c.

Referenced by IntCallbacksUnInit().

◆ IntUnregisterIntroCallHandler()

INTSTATUS IntUnregisterIntroCallHandler ( void  )

Definition at line 750 of file glue.c.

Referenced by IntCallbacksUnInit().

◆ IntUnregisterMSRHandler()

INTSTATUS IntUnregisterMSRHandler ( void  )

Definition at line 528 of file glue.c.

Referenced by IntDisableMsrNotifications().

◆ IntUnregisterVmxTimerHandler()

INTSTATUS IntUnregisterVmxTimerHandler ( void  )

Definition at line 768 of file glue.c.

Referenced by IntCallbacksUnInit().

◆ IntUnregisterXcrWriteHandler()

INTSTATUS IntUnregisterXcrWriteHandler ( void  )

Definition at line 804 of file glue.c.

Referenced by IntDisableXcrNotifications().

Variable Documentation

◆ gCurLogBuffer

DWORD gCurLogBuffer

Used for utf16_for_log to support calling that function 8 times in a single macro.

Definition at line 58 of file glue.c.

Referenced by utf16_for_log().

◆ gLogLevel

IG_LOG_LEVEL gLogLevel

The currently used log level.

For debug builds, this defaults to intLogLevelDebug; for Release builds the default value is intLogLevelWarning. Can be changed at runtime by the integrator using the GLUE_IFACE.SetLogLevel API. INT_LOG will check this before deciding if a message will be logged or not.

Definition at line 68 of file glue.c.

Referenced by DbgSetLogLevel(), and IntSetLogLevel().

◆ GlueEnterDebugger

PFUNC_IntEnterDebugger GlueEnterDebugger

The API used to break into the debugger.

Definition at line 74 of file glue.c.

Referenced by IntDbgEnterDebugger2(), IntEnterDebugger2(), and IntGlueInit().

◆ GlueTracePrint

PFUNC_IntTracePrint GlueTracePrint

The trace API used.

Definition at line 72 of file glue.c.

Referenced by IntGlueInit().