Bitdefender Hypervisor Memory Introspection
handlers.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _HANDLERS_H_
6 #define _HANDLERS_H_
7 
8 #pragma pack(push, 8)
9 
10 typedef enum {
39 
41 } DETOUR_ID;
42 
43 typedef char * (d_path_fn)(void *path, char *buf, int buflen);
44 
45 typedef struct _LIX_GUEST_OS_SPECIFIC {
46  struct {
47  unsigned int CredAltered;
48  } Info;
49 
50  struct {
51  unsigned int MmOffset;
52  unsigned int FlagsOffset;
53  unsigned int FileOffset;
54  unsigned int VmNextOffset;
55  unsigned int VmPrevOffset;
56  unsigned int Rb;
57 
58  unsigned int ProtectionBit;
59  } Vma;
60 
61  struct {
62  unsigned int FlagsOffset;
63  unsigned int Rb;
64 
65  unsigned int ProtectionBit;
66  } Mm;
67 
68  struct {
69  unsigned int InExecve;
70  unsigned int InExecveBit;
71  } Task;
72 
73  struct {
74  unsigned int FileOffset;
75  } Binprm;
76 
77  struct {
78  unsigned int DentryOffset;
79  unsigned int PathOffset;
80  } File;
81 
82  struct {
83  unsigned int InodeOffset;
84  } Dentry;
85 
86  struct {
87  unsigned int Mode;
88  unsigned int Uid;
89  unsigned int Gid;
90  } Inode;
91 
92  unsigned int CurrentTaskOffset;
93  unsigned int CurrentCpuOffset;
94 
95  void *PercpuMemPtr;
98 
99 
100 typedef struct _LIX_GUEST_DETOUR {
101  char Name[32];
102  char HijackName[32];
103  unsigned long long Address;
104  unsigned long long RelocatedCode;
105  unsigned long long JumpBack;
106  unsigned long long EnableOptions;
108 
109 
110 typedef struct _LIX_HYPERCALL_PAGE
111 {
112  unsigned long long ProtectionOptions;
113  unsigned long long DetoursCount;
114 
116 
119 
120 #pragma pack(pop)
121 
122 #endif // _HANDLERS_H_
struct _LIX_GUEST_OS_SPECIFIC::@265 File
struct _LIX_GUEST_OS_SPECIFIC::@263 Task
struct _LIX_GUEST_OS_SPECIFIC::@262 Mm
struct _LIX_GUEST_DETOUR LIX_GUEST_DETOUR
unsigned long long Address
Definition: handlers.h:103
unsigned int VmPrevOffset
Definition: handlers.h:55
struct _LIX_GUEST_OS_SPECIFIC::@260 Info
struct _LIX_GUEST_OS_SPECIFIC::@266 Dentry
unsigned int DentryOffset
Definition: handlers.h:78
LIX_GUEST_OS_SPECIFIC OsSpecificFields
Definition: handlers.h:117
unsigned long long EnableOptions
Definition: handlers.h:106
unsigned int FileOffset
Definition: handlers.h:53
unsigned int Gid
Definition: handlers.h:89
char *() d_path_fn(void *path, char *buf, int buflen)
Definition: handlers.h:43
unsigned int Rb
Definition: handlers.h:56
unsigned int CurrentCpuOffset
Definition: handlers.h:93
d_path_fn * DPathFnPtr
Definition: handlers.h:96
unsigned int InExecveBit
Definition: handlers.h:70
unsigned int InodeOffset
Definition: handlers.h:83
unsigned int Uid
Definition: handlers.h:88
unsigned int CurrentTaskOffset
Definition: handlers.h:92
struct _LIX_HYPERCALL_PAGE LIX_HYPERCALL_PAGE
unsigned int InExecve
Definition: handlers.h:69
struct _LIX_GUEST_OS_SPECIFIC::@264 Binprm
unsigned int ProtectionBit
Definition: handlers.h:58
unsigned int MmOffset
Definition: handlers.h:51
unsigned int PathOffset
Definition: handlers.h:79
unsigned int VmNextOffset
Definition: handlers.h:54
unsigned int Mode
Definition: handlers.h:87
unsigned int FlagsOffset
Definition: handlers.h:52
unsigned long long RelocatedCode
Definition: handlers.h:104
unsigned long long ProtectionOptions
Definition: handlers.h:112
unsigned long long DetoursCount
Definition: handlers.h:113
struct _LIX_GUEST_OS_SPECIFIC LIX_GUEST_OS_SPECIFIC
unsigned long long JumpBack
Definition: handlers.h:105
unsigned int CredAltered
Definition: handlers.h:47
struct _LIX_GUEST_OS_SPECIFIC::@267 Inode
struct _LIX_GUEST_OS_SPECIFIC::@261 Vma
DETOUR_ID
Definition: handlers.h:10