BlackBone
Windows memory hacking library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
NativeStructs7.h
Go to the documentation of this file.
1 #pragma once
2 
3 //
4 // Native structures W7 x64 SP1
5 //
6 #pragma warning(disable : 4214 4201)
7 
8 struct _MMVAD_FLAGS // Size=8
9 {
10  unsigned __int64 CommitCharge: 51; // Size=8 Offset=0 BitOffset=0 BitCount=51
11  unsigned __int64 NoChange: 1; // Size=8 Offset=0 BitOffset=51 BitCount=1
12  unsigned __int64 VadType: 3; // Size=8 Offset=0 BitOffset=52 BitCount=3
13  unsigned __int64 MemCommit: 1; // Size=8 Offset=0 BitOffset=55 BitCount=1
14  unsigned __int64 Protection: 5; // Size=8 Offset=0 BitOffset=56 BitCount=5
15  unsigned __int64 Spare: 2; // Size=8 Offset=0 BitOffset=61 BitCount=2
16  unsigned __int64 PrivateMemory: 1; // Size=8 Offset=0 BitOffset=63 BitCount=1
17 };
18 
19 struct _MMVAD_FLAGS3 // Size=8
20 {
21  unsigned __int64 PreferredNode: 6; // Size=8 Offset=0 BitOffset=0 BitCount=6
22  unsigned __int64 Teb: 1; // Size=8 Offset=0 BitOffset=6 BitCount=1
23  unsigned __int64 Spare: 1; // Size=8 Offset=0 BitOffset=7 BitCount=1
24  unsigned __int64 SequentialAccess: 1; // Size=8 Offset=0 BitOffset=8 BitCount=1
25  unsigned __int64 LastSequentialTrim: 15; // Size=8 Offset=0 BitOffset=9 BitCount=15
26  unsigned __int64 Spare2: 8; // Size=8 Offset=0 BitOffset=24 BitCount=8
27  unsigned __int64 LargePageCreating: 1; // Size=8 Offset=0 BitOffset=32 BitCount=1
28  unsigned __int64 Spare3: 31; // Size=8 Offset=0 BitOffset=33 BitCount=31
29 };
30 
31 struct _MMVAD_FLAGS2 // Size=4
32 {
33  unsigned int FileOffset: 24; // Size=4 Offset=0 BitOffset=0 BitCount=24
34  unsigned int SecNoChange: 1; // Size=4 Offset=0 BitOffset=24 BitCount=1
35  unsigned int OneSecured: 1; // Size=4 Offset=0 BitOffset=25 BitCount=1
36  unsigned int MultipleSecured: 1; // Size=4 Offset=0 BitOffset=26 BitCount=1
37  unsigned int Spare: 1; // Size=4 Offset=0 BitOffset=27 BitCount=1
38  unsigned int LongVad: 1; // Size=4 Offset=0 BitOffset=28 BitCount=1
39  unsigned int ExtendableFile: 1; // Size=4 Offset=0 BitOffset=29 BitCount=1
40  unsigned int Inherit: 1; // Size=4 Offset=0 BitOffset=30 BitCount=1
41  unsigned int CopyOnWrite: 1; // Size=4 Offset=0 BitOffset=31 BitCount=1
42 };
43 
44 struct _MMSECURE_FLAGS // Size=4
45 {
46  unsigned long ReadOnly: 1; // Size=4 Offset=0 BitOffset=0 BitCount=1
47  unsigned long NoWrite: 1; // Size=4 Offset=0 BitOffset=1 BitCount=1
48  unsigned long Spare: 10; // Size=4 Offset=0 BitOffset=2 BitCount=10
49 };
50 
51 union ___unnamed710 // Size=8
52 {
53  struct
54  {
55  __int64 Balance: 2; // Size=8 Offset=0 BitOffset=0 BitCount=2
56  };
57  struct _MMADDRESS_NODE * Parent; // Size=8 Offset=0
58 };
59 
60 union ___unnamed712 // Size=8
61 {
62  unsigned __int64 LongFlags; // Size=8 Offset=0
63  struct _MMVAD_FLAGS VadFlags; // Size=8 Offset=0
64 };
65 union ___unnamed713 // Size=8
66 {
67  unsigned __int64 LongFlags3; // Size=8 Offset=0
68  struct _MMVAD_FLAGS3 VadFlags3; // Size=8 Offset=0
69 };
70 
71 union ___unnamed715 // Size=4
72 {
73  unsigned long LongFlags2; // Size=4 Offset=0
74  struct _MMVAD_FLAGS2 VadFlags2; // Size=4 Offset=0
75 };
76 
77 union ___unnamed1322 // Size=8
78 {
79  struct _MMSECURE_FLAGS Flags; // Size=4 Offset=0
80  void * StartVa; // Size=8 Offset=0
81 };
82 
83 struct _MMADDRESS_LIST // Size=16
84 {
85  union ___unnamed1322 u1; // Size=8 Offset=0
86  void * EndVa; // Size=8 Offset=8
87 };
88 
89 union ___unnamed1319 // Size=16
90 {
91  struct _LIST_ENTRY List; // Size=16 Offset=0
92  struct _MMADDRESS_LIST Secured; // Size=16 Offset=0
93 };
94 
95 union ___unnamed1320 // Size=8
96 {
97  struct _MMBANKED_SECTION * Banked; // Size=8 Offset=0
98  struct _MMEXTEND_INFO * ExtendedInfo; // Size=8 Offset=0
99 };
100 
101 typedef struct _MMADDRESS_NODE // Size=40
102 {
104  struct _MMADDRESS_NODE * LeftChild; // Size=8 Offset=8
105  struct _MMADDRESS_NODE * RightChild; // Size=8 Offset=16
106  unsigned __int64 StartingVpn; // Size=8 Offset=24
107  unsigned __int64 EndingVpn; // Size=8 Offset=32
108 
110 
111 typedef struct _MM_AVL_TABLE // Size=64
112 {
113  struct _MMADDRESS_NODE BalancedRoot; // Size=40 Offset=0
114  struct
115  {
116  unsigned __int64 DepthOfTree: 5; // Size=8 Offset=40 BitOffset=0 BitCount=5
117  unsigned __int64 Unused: 3; // Size=8 Offset=40 BitOffset=5 BitCount=3
118  unsigned __int64 NumberGenericTableElements: 56; // Size=8 Offset=40 BitOffset=8 BitCount=56
119  };
120  void * NodeHint; // Size=8 Offset=48
121  void * NodeFreeHint; // Size=8 Offset=56
122 
124 
125 typedef struct _MMVAD_SHORT // Size=64
126 {
127  union ___unnamed710 u1; // Size=8 Offset=0
128  struct _MMVAD * LeftChild; // Size=8 Offset=8
129  struct _MMVAD * RightChild; // Size=8 Offset=16
130  unsigned __int64 StartingVpn; // Size=8 Offset=24
131  unsigned __int64 EndingVpn; // Size=8 Offset=32
132  union ___unnamed712 u; // Size=8 Offset=40
133  void * PushLock; // Size=8 Offset=48
134  union ___unnamed713 u5; // Size=8 Offset=56
136 
137 typedef struct _MMVAD // Size=120
138 {
140  union ___unnamed715 u2; // Size=4 Offset=64
141  union
142  {
143  struct _SUBSECTION * Subsection; // Size=8 Offset=72
144  struct _MSUBSECTION * MappedSubsection; // Size=8 Offset=72
145  };
146  struct _MMPTE * FirstPrototypePte; // Size=8 Offset=80
147  struct _MMPTE * LastContiguousPte; // Size=8 Offset=88
148  struct _LIST_ENTRY ViewLinks; // Size=16 Offset=96
149  struct _EPROCESS * VadsProcess; // Size=8 Offset=112
150 } MMVAD, *PMMVAD;
151 
152 typedef struct _MMVAD_LONG // Size=144
153 {
155  union ___unnamed1319 u3; // Size=16 Offset=120
156  union ___unnamed1320 u4; // Size=8 Offset=136
158 
159 typedef struct _POOL_HEADER // Size=16
160 {
161  union
162  {
163  struct
164  {
165  unsigned long PreviousSize: 8; // Size=4 Offset=0 BitOffset=0 BitCount=8
166  unsigned long PoolIndex: 8; // Size=4 Offset=0 BitOffset=8 BitCount=8
167  unsigned long BlockSize: 8; // Size=4 Offset=0 BitOffset=16 BitCount=8
168  unsigned long PoolType: 8; // Size=4 Offset=0 BitOffset=24 BitCount=8
169  };
170  unsigned long Ulong1; // Size=4 Offset=0
171  };
172  unsigned long PoolTag; // Size=4 Offset=4
173  union
174  {
175  struct _EPROCESS * ProcessBilled; // Size=8 Offset=8
176  struct
177  {
178  unsigned short AllocatorBackTraceIndex; // Size=2 Offset=8
179  unsigned short PoolTagHash; // Size=2 Offset=10
180  };
181  };
183 
184 #pragma warning(default : 4214 4201)
185 
186 #define GET_VAD_ROOT(Table) &Table->BalancedRoot
struct _MMVAD_FLAGS VadFlags
Definition: NativeStructs7.h:63
Definition: NativeStructs7.h:77
unsigned __int64 EndingVpn
Definition: NativeStructs7.h:131
unsigned __int64 SequentialAccess
Definition: NativeStructs7.h:24
Definition: NativeStructs7.h:159
unsigned __int64 LastSequentialTrim
Definition: NativeStructs7.h:25
MMVAD vad
Definition: NativeStructs7.h:154
struct _LIST_ENTRY ViewLinks
Definition: NativeStructs7.h:148
Definition: NativeStructs7.h:89
struct _MMVAD * RightChild
Definition: NativeStructs7.h:129
struct _EPROCESS * ProcessBilled
Definition: NativeStructs7.h:175
unsigned long PoolTag
Definition: NativeStructs7.h:172
unsigned int OneSecured
Definition: NativeStructs7.h:35
struct _MMVAD * PMMVAD
struct _EPROCESS * VadsProcess
Definition: NativeStructs7.h:149
union ___unnamed1322 u1
Definition: NativeStructs7.h:85
Definition: NativeStructs7.h:137
union ___unnamed712 u
Definition: NativeStructs7.h:132
Definition: NativeStructs7.h:152
unsigned __int64 Protection
Definition: NativeStructs7.h:14
struct _MMADDRESS_LIST Secured
Definition: NativeStructs7.h:92
unsigned __int64 DepthOfTree
Definition: NativeStructs7.h:116
struct _MMADDRESS_NODE BalancedRoot
Definition: NativeStructs7.h:113
void * EndVa
Definition: NativeStructs7.h:86
struct _MMBANKED_SECTION * Banked
Definition: NativeStructs7.h:97
struct _MMPTE * LastContiguousPte
Definition: NativeStructs7.h:147
__int64 Balance
Definition: NativeStructs7.h:55
struct _MMADDRESS_NODE MMADDRESS_NODE
Definition: NativeStructs7.h:83
struct _MMADDRESS_NODE * PMM_AVL_NODE
unsigned __int64 Spare2
Definition: NativeStructs7.h:26
unsigned int LongVad
Definition: NativeStructs7.h:38
unsigned long PreviousSize
Definition: NativeStructs7.h:165
union ___unnamed710 u1
Definition: NativeStructs7.h:103
unsigned int FileOffset
Definition: NativeStructs7.h:33
unsigned __int64 LongFlags3
Definition: NativeStructs7.h:67
Definition: NativeStructs7.h:125
unsigned __int64 Unused
Definition: NativeStructs7.h:117
unsigned __int64 VadType
Definition: NativeStructs7.h:12
unsigned __int64 PrivateMemory
Definition: NativeStructs7.h:16
void * PushLock
Definition: NativeStructs7.h:133
struct _MMVAD_LONG * PMMVAD_LONG
struct _MM_AVL_TABLE * PMM_AVL_TABLE
unsigned short PoolTagHash
Definition: NativeStructs7.h:179
unsigned int MultipleSecured
Definition: NativeStructs7.h:36
unsigned __int64 CommitCharge
Definition: NativeStructs7.h:10
struct _MMADDRESS_NODE * RightChild
Definition: NativeStructs7.h:105
unsigned __int64 NoChange
Definition: NativeStructs7.h:11
struct _MMVAD_LONG MMVAD_LONG
void * StartVa
Definition: NativeStructs7.h:80
Definition: NativeStructs7.h:44
unsigned long LongFlags2
Definition: NativeStructs7.h:73
Definition: NativeStructs7.h:95
unsigned __int64 Spare3
Definition: NativeStructs7.h:28
unsigned int Spare
Definition: NativeStructs7.h:37
Definition: NativeStructs7.h:65
unsigned __int64 EndingVpn
Definition: NativeStructs7.h:107
union ___unnamed710 u1
Definition: NativeStructs7.h:127
struct _MMVAD_FLAGS3 VadFlags3
Definition: NativeStructs7.h:68
unsigned long NoWrite
Definition: NativeStructs7.h:47
struct _MMVAD * LeftChild
Definition: NativeStructs7.h:128
unsigned long Ulong1
Definition: NativeStructs7.h:170
struct _MMEXTEND_INFO * ExtendedInfo
Definition: NativeStructs7.h:98
void * NodeHint
Definition: NativeStructs7.h:120
unsigned long PoolIndex
Definition: NativeStructs7.h:166
struct _MSUBSECTION * MappedSubsection
Definition: NativeStructs7.h:144
struct _MMADDRESS_NODE * LeftChild
Definition: NativeStructs7.h:104
Definition: NativeStructs7.h:51
struct _MMVAD_FLAGS2 VadFlags2
Definition: NativeStructs7.h:74
MMVAD_SHORT vadShort
Definition: NativeStructs7.h:139
struct _MM_AVL_TABLE MM_AVL_TABLE
union ___unnamed715 u2
Definition: NativeStructs7.h:140
struct _MMPTE * FirstPrototypePte
Definition: NativeStructs7.h:146
unsigned __int64 Spare
Definition: NativeStructs7.h:15
unsigned int ExtendableFile
Definition: NativeStructs7.h:39
unsigned __int64 LargePageCreating
Definition: NativeStructs7.h:27
unsigned __int64 LongFlags
Definition: NativeStructs7.h:62
unsigned __int64 MemCommit
Definition: NativeStructs7.h:13
union ___unnamed1320 u4
Definition: NativeStructs7.h:156
Definition: NativeStructs7.h:19
struct _MMVAD MMVAD
unsigned __int64 Spare
Definition: NativeStructs7.h:23
struct _MMADDRESS_NODE * Parent
Definition: NativeStructs7.h:57
Definition: NativeStructs.h:281
unsigned long BlockSize
Definition: NativeStructs7.h:167
unsigned int CopyOnWrite
Definition: NativeStructs7.h:41
struct _MMADDRESS_NODE * PMMADDRESS_NODE
IN ACCESS_MASK IN PVOID IN HANDLE IN PVOID IN PVOID IN ULONG Flags
Definition: Private.h:115
unsigned long PoolType
Definition: NativeStructs7.h:168
Definition: NativeStructs7.h:8
unsigned __int64 NumberGenericTableElements
Definition: NativeStructs7.h:118
unsigned short AllocatorBackTraceIndex
Definition: NativeStructs7.h:178
struct _MMVAD_SHORT MMVAD_SHORT
unsigned int Inherit
Definition: NativeStructs7.h:40
unsigned __int64 PreferredNode
Definition: NativeStructs7.h:21
unsigned int SecNoChange
Definition: NativeStructs7.h:34
unsigned long Spare
Definition: NativeStructs7.h:48
struct _LIST_ENTRY List
Definition: NativeStructs7.h:91
struct _POOL_HEADER POOL_HEADER
void * NodeFreeHint
Definition: NativeStructs7.h:121
struct _MMVAD_SHORT * PMMVAD_SHORT
struct _POOL_HEADER * PPOOL_HEADER
Definition: NativeStructs7.h:111
unsigned __int64 Teb
Definition: NativeStructs7.h:22
Definition: NativeStructs7.h:71
unsigned long ReadOnly
Definition: NativeStructs7.h:46
Definition: NativeStructs7.h:101
Definition: NativeStructs7.h:31
union ___unnamed713 u5
Definition: NativeStructs7.h:134
union ___unnamed1319 u3
Definition: NativeStructs7.h:155
struct _SUBSECTION * Subsection
Definition: NativeStructs7.h:143
unsigned __int64 StartingVpn
Definition: NativeStructs7.h:106
unsigned __int64 StartingVpn
Definition: NativeStructs7.h:130
Definition: NativeStructs7.h:60