Bitdefender Hypervisor Memory Introspection
|
#include "debugger.h"
#include "codeblocks.h"
#include "decoder.h"
#include "deployer.h"
#include "gpacache.h"
#include "hook.h"
#include "hook_cr.h"
#include "icache.h"
#include "introapi.h"
#include "kernvm.h"
#include "memcloak.h"
#include "ptfilter.h"
#include "swapmem.h"
#include "vasmonitor.h"
#include "vecore.h"
#include "visibility.h"
#include "winnet.h"
#include "winpe.h"
#include "winpfn.h"
#include "winprocesshp.h"
#include "lixksym.h"
#include "swapgs.h"
Go to the source code of this file.
Data Structures | |
struct | _DEBUGGER_COMMAND |
Typedefs | |
typedef void(* | PFUNC_DebuggerFunctionArgs) (DWORD Argc, const char *Argv[]) |
typedef void(* | PFUNC_DebuggerFunctionNoArgs) (void) |
typedef struct _DEBUGGER_COMMAND | DEBUGGER_COMMAND |
Functions | |
static INTSTATUS | DbgSwapCallback (void *Context, QWORD Cr3, QWORD VirtualAddress, QWORD PhysicalAddress, void *Data, DWORD DataSize, DWORD Flags) |
static INTSTATUS | DbgVaModificationHandler (void *Context, QWORD VirtualAddress, QWORD OldEntry, QWORD NewEntry, QWORD OldPageSize, QWORD NewPageSize) |
static INTSTATUS | DbgVaSpaceIterationCallback (QWORD Cr3, QWORD VirtualAddress, QWORD Entry, QWORD PageSize) |
static INTSTATUS | DbgVaSpaceIterationCallbackCount (QWORD Cr3, QWORD VirtualAddress, QWORD PhysicalAddress, QWORD PageSize) |
static void | IntDbgCheckHooks (void) |
static void | DbgDumpKmException (KM_EXCEPTION *Exception) |
static void | DbgDumpUmException (UM_EXCEPTION *Exception) |
static void | DbgDumpUmExceptionGlobMatch (UM_EXCEPTION_GLOB *Exception) |
static INTSTATUS | DbgCrWriteTestCallback (void *Context, DWORD Cr, QWORD OldValue, QWORD NewValue, INTRO_ACTION *Action) |
static void | DbgShowHelp (void) |
static void | DbgDumpGuestModules (void) |
static void | DbgInjectPf (DWORD Argc, const char *Argv[]) |
static void | DbgDumpPfn (DWORD Argc, const char *Argv[]) |
static void | DbgDumpCodeblocks (DWORD Argc, const char *Argv[]) |
static void | DbgDumpExceptions (void) |
static void | DbgDumpHooksGva (void) |
static void | DbgDumpProcesses (void) |
static void | DbgProcAdd (DWORD Argc, const char *Argv[]) |
static void | DbgProcRem (DWORD Argc, const char *Argv[]) |
static void | DbgProcClear (void) |
static void | DbgProcList (void) |
static void | DbgDumpGpaCache (void) |
static void | DbgDisasm (DWORD Argc, const char *Argv[]) |
static void | DbgInjectAgent (DWORD Argc, const char *Argv[]) |
static void | DbgInjectFileAgent (DWORD Argc, const char *Argv[]) |
static void | DbgSearchVaSpace (DWORD Argc, const char *Argv[]) |
static void | DbgIterateVaSpace (void) |
static void | DbgDumpTranslation (DWORD Argc, const char *Argv[]) |
static void | DbgPtsHook (DWORD Argc, const char *Argv[]) |
static void | DbgPtsUnhook (DWORD Argc, const char *Argv[]) |
static void | DbgPtsWrite (DWORD Argc, const char *Argv[]) |
static void | DbgDumpCpuState (void) |
static void | DbgLogCoreOptions (void) |
static void | DbgSetCoreOptions (DWORD Argc, const char *Argv[]) |
static void | DbgLogCurrentProcess (void) |
static void | DbgFindKsym (DWORD Argc, const char *Argv[]) |
static void | DbgLogKpcr (void) |
static void | DbgDumpProcToken (DWORD Argc, const char *Argv[]) |
static void | DbgDumpEthreadToken (DWORD Argc, const char *Argv[]) |
static void | DbgDumpVaSpace (DWORD Argc, const char *Argv[]) |
static void | DbgSwap (DWORD Argc, const char *Argv[]) |
static void | DbgDumpVadRoot (DWORD Argc, const char *Argv[]) |
static void | DbgDumpVads (DWORD Argc, const char *Argv[]) |
static void | DbgVadFind (DWORD Argc, const char *Argv[]) |
static void | DbgLogFilePath (DWORD Argc, const char *Argv[]) |
static void | DbgLoadPt (void) |
static void | DbgUnloadPt (void) |
static void | DbgLoadVe (void) |
static void | DbgUnloadVe (void) |
static void | DbgTestSse (DWORD Argc, const char *Argv[]) |
static void | DbgTestRead (DWORD Argc, const char *Argv[]) |
static void | DbgTestCrHookSet (DWORD Argc, const char *Argv[]) |
static void | DbgTestCrHookRem (DWORD Argc, const char *Argv[]) |
static void | DbgFailAllocs (void) |
static void | DbgCheckEpt (void) |
static void | DbgSetLogLevel (DWORD Argc, const char *Argv[]) |
static void | DbgMitigateSwapgs (DWORD Argc, const char *Argv[]) |
INTSTATUS | IntDbgProcessCommand (DWORD Argc, const char *Argv[]) |
Variables | |
BOOLEAN | gFailAllocs = FALSE |
BOOLEAN | gInsideDebugger = FALSE |
Set to True when introcore is inside a debugger. More... | |
LIST_HEAD | gWinProcesses |
The list of all the processes inside the guest. More... | |
BOOLEAN | gLoadPtDriver |
BOOLEAN | gUnloadPtDriver |
BOOLEAN | gInjectVeLoader |
BOOLEAN | gInjectVeUnloader |
static QWORD | gTargetPML4 |
static QWORD | gPagesRead |
static QWORD | gPagesWrite |
static QWORD | gPagesDirty |
static BYTE * | gPagesBitmap = NULL |
BOOLEAN | swapgsMit = FALSE |
static DEBUGGER_COMMAND | gDbgCommands [] |
typedef struct _DEBUGGER_COMMAND DEBUGGER_COMMAND |
typedef void(* PFUNC_DebuggerFunctionArgs) (DWORD Argc, const char *Argv[]) |
Definition at line 37 of file debugger.c.
typedef void(* PFUNC_DebuggerFunctionNoArgs) (void) |
Definition at line 42 of file debugger.c.
|
static |
Definition at line 2359 of file debugger.c.
|
static |
Definition at line 392 of file debugger.c.
Referenced by DbgTestCrHookSet().
|
static |
Definition at line 1494 of file debugger.c.
|
static |
Definition at line 881 of file debugger.c.
|
static |
Definition at line 1766 of file debugger.c.
|
static |
Definition at line 1954 of file debugger.c.
|
static |
Definition at line 981 of file debugger.c.
|
static |
Definition at line 1485 of file debugger.c.
|
static |
Definition at line 652 of file debugger.c.
|
static |
Definition at line 1250 of file debugger.c.
|
static |
Definition at line 249 of file debugger.c.
Referenced by DbgDumpExceptions().
|
static |
Definition at line 782 of file debugger.c.
|
static |
Definition at line 1301 of file debugger.c.
|
static |
Definition at line 1916 of file debugger.c.
|
static |
Definition at line 1639 of file debugger.c.
|
static |
Definition at line 296 of file debugger.c.
Referenced by DbgDumpExceptions().
|
static |
Definition at line 344 of file debugger.c.
Referenced by DbgDumpExceptions().
|
static |
Definition at line 2052 of file debugger.c.
|
static |
Definition at line 2107 of file debugger.c.
|
static |
Definition at line 1996 of file debugger.c.
|
static |
Definition at line 2348 of file debugger.c.
|
static |
Definition at line 1835 of file debugger.c.
|
static |
Definition at line 1526 of file debugger.c.
|
static |
Definition at line 1553 of file debugger.c.
|
static |
Definition at line 755 of file debugger.c.
|
static |
Definition at line 1604 of file debugger.c.
|
static |
Definition at line 2165 of file debugger.c.
|
static |
Definition at line 2183 of file debugger.c.
|
static |
Definition at line 1786 of file debugger.c.
|
static |
Definition at line 1817 of file debugger.c.
|
static |
Definition at line 2152 of file debugger.c.
|
static |
Definition at line 1883 of file debugger.c.
|
static |
Definition at line 2406 of file debugger.c.
|
static |
Definition at line 1317 of file debugger.c.
|
static |
Definition at line 1460 of file debugger.c.
|
static |
Definition at line 1469 of file debugger.c.
|
static |
Definition at line 1389 of file debugger.c.
|
static |
Definition at line 1676 of file debugger.c.
|
static |
Definition at line 1710 of file debugger.c.
|
static |
Definition at line 1736 of file debugger.c.
|
static |
Definition at line 1579 of file debugger.c.
|
static |
Definition at line 1795 of file debugger.c.
|
static |
Definition at line 2379 of file debugger.c.
|
static |
Definition at line 2822 of file debugger.c.
Referenced by DbgCrWriteTestCallback().
|
static |
Definition at line 2021 of file debugger.c.
|
static |
Definition at line 48 of file debugger.c.
Referenced by DbgSwap().
|
static |
Definition at line 2323 of file debugger.c.
|
static |
Definition at line 2293 of file debugger.c.
|
static |
Definition at line 2257 of file debugger.c.
|
static |
Definition at line 2201 of file debugger.c.
|
static |
Definition at line 2174 of file debugger.c.
|
static |
Definition at line 2192 of file debugger.c.
|
static |
Definition at line 2126 of file debugger.c.
|
static |
Definition at line 69 of file debugger.c.
Referenced by DbgPtsHook().
|
static |
Definition at line 98 of file debugger.c.
Referenced by DbgSearchVaSpace().
|
static |
Definition at line 120 of file debugger.c.
Referenced by DbgIterateVaSpace().
|
static |
Definition at line 182 of file debugger.c.
Referenced by IntHookCommitAllHooks().
Definition at line 2857 of file debugger.c.
Referenced by IntDbgEnterDebugger2(), and IntProcessDebugCommand().
|
static |
Definition at line 2443 of file debugger.c.
Definition at line 27 of file debugger.c.
Referenced by DbgFailAllocs().
BOOLEAN gInjectVeLoader |
Definition at line 30 of file callbacks.c.
Referenced by DbgLoadVe(), and IntHandleTimer().
BOOLEAN gInjectVeUnloader |
Definition at line 30 of file callbacks.c.
Referenced by DbgUnloadVe(), and IntHandleTimer().
Set to True when introcore is inside a debugger.
This is used to avoid pausing VCPUs while trapped inside a debugger, as that can lead to deadlocks
Definition at line 28 of file debugger.c.
Referenced by IntDbgProcessCommand(), IntPauseVcpus(), and IntResumeVcpus().
BOOLEAN gLoadPtDriver |
Definition at line 31 of file callbacks.c.
Referenced by DbgLoadPt(), and IntHandleTimer().
|
static |
Definition at line 116 of file debugger.c.
|
static |
Definition at line 115 of file debugger.c.
|
static |
Definition at line 115 of file debugger.c.
|
static |
Definition at line 115 of file debugger.c.
|
static |
Definition at line 94 of file debugger.c.
BOOLEAN gUnloadPtDriver |
Definition at line 31 of file callbacks.c.
Referenced by DbgUnloadPt(), and IntHandleTimer().
LIST_HEAD gWinProcesses |
The list of all the processes inside the guest.
Definition at line 11 of file winprocesshp.c.
Definition at line 2403 of file debugger.c.