aboutsummaryrefslogtreecommitdiff
path: root/KMemDriver
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2019-06-10 11:57:58 +0200
committerToni Uhlig <matzeton@googlemail.com>2019-06-10 11:57:58 +0200
commit6f041b291bd25915c8cb756bf6076f0fe6a7b7f2 (patch)
treed55514593f7fe6103d1c3a9a49c8feb0411e7c95 /KMemDriver
parent3b8ee025edd045b962c21d09dd1ef86e1e48aae4 (diff)
get VAD root for win10 1803
Diffstat (limited to 'KMemDriver')
-rw-r--r--KMemDriver/Driver.c10
-rw-r--r--KMemDriver/Native.h28
2 files changed, 37 insertions, 1 deletions
diff --git a/KMemDriver/Driver.c b/KMemDriver/Driver.c
index 12af90d..dcf19c6 100644
--- a/KMemDriver/Driver.c
+++ b/KMemDriver/Driver.c
@@ -587,6 +587,16 @@ NTSTATUS UpdatePPEPIfRequired(IN HANDLE wantedPID,
if (!NT_SUCCESS(status)) {
KDBG("ObOpenObjectByPointer failed with 0x%X\n", status);
}
+ else {
+ PEPROCESS pep = *lastPEP;
+ PMM_AVL_TABLE avltable = (PMM_AVL_TABLE)((ULONG_PTR *)pep + 0x628);
+ KDBG("VAD-ROOT.....: 0x%p\n", avltable->BalancedRoot);
+ KDBG("NODE-HINT....: 0x%p\n", avltable->NodeHint);
+ KDBG("NMBR-OF-ELEMs: %d\n", avltable->NumberGenericTableElements);
+ KDBG("FLAGS........: 0x%p\n", *((UINT32 *)pep + 0x304));
+ KDBG("VSIZE........: %d\n", *((UINT64 *)pep + 0x338));
+ KDBG("IMAGEFILENAME: %.*s\n", 15, ((const char *)pep + 0x450));
+ }
}
}
return status;
diff --git a/KMemDriver/Native.h b/KMemDriver/Native.h
index e421bda..232a0d7 100644
--- a/KMemDriver/Native.h
+++ b/KMemDriver/Native.h
@@ -79,4 +79,30 @@ typedef struct _KLDR_DATA_TABLE_ENTRY {
ULONG CheckSum;
PVOID LoadedImports;
PVOID PatchInformation;
-} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY; \ No newline at end of file
+} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
+
+typedef struct _MM_AVL_NODE // Size=24
+{
+ struct _MM_AVL_NODE * LeftChild; // Size=8 Offset=0
+ struct _MM_AVL_NODE * RightChild; // Size=8 Offset=8
+
+ union // Size=8
+ {
+ struct
+ {
+ INT Red : 1; // Size=8 Offset=0 BitOffset=0 BitCount=1
+ } s1;
+ struct
+ {
+ INT Balance : 2; // Size=8 Offset=0 BitOffset=0 BitCount=2
+ } s2;
+ struct _MM_AVL_NODE * Parent; // Size=8 Offset=0
+ } u1;
+} MM_AVL_NODE, *PMM_AVL_NODE, *PMMADDRESS_NODE;
+
+typedef struct _RTL_AVL_TREE // Size=8
+{
+ PMM_AVL_NODE BalancedRoot;
+ void * NodeHint;
+ UINT64 NumberGenericTableElements;
+} RTL_AVL_TREE, *PRTL_AVL_TREE, MM_AVL_TABLE, *PMM_AVL_TABLE; \ No newline at end of file