HyperDbg Debugger
|
Go to the source code of this file.
Classes | |
struct | _PAGE_ENTRY |
Page Entries. More... | |
struct | _MEMORY_MAPPER_ADDRESSES |
Memory mapper PTE and reserved virtual address. More... | |
Macros | |
#define | PAGE_4KB_OFFSET ((UINT64)(1 << 12) - 1) |
#define | PAGE_2MB_OFFSET ((UINT64)(1 << 21) - 1) |
#define | PAGE_4MB_OFFSET ((UINT64)(1 << 22) - 1) |
#define | PAGE_1GB_OFFSET ((UINT64)(1 << 30) - 1) |
Typedefs | |
typedef enum _MEMORY_MAPPER_WRAPPER_FOR_MEMORY_READ | MEMORY_MAPPER_WRAPPER_FOR_MEMORY_READ |
Memory wrapper for reading safe from the memory. | |
typedef enum _MEMORY_MAPPER_WRAPPER_FOR_MEMORY_WRITE | MEMORY_MAPPER_WRAPPER_FOR_MEMORY_WRITE |
Memory wrapper for writing safe into the memory. | |
typedef struct _PAGE_ENTRY | PAGE_ENTRY |
Page Entries. | |
typedef struct _PAGE_ENTRY * | PPAGE_ENTRY |
typedef struct _MEMORY_MAPPER_ADDRESSES | MEMORY_MAPPER_ADDRESSES |
Memory mapper PTE and reserved virtual address. | |
typedef struct _MEMORY_MAPPER_ADDRESSES * | PMEMORY_MAPPER_ADDRESSES |
Enumerations | |
enum | _MEMORY_MAPPER_WRAPPER_FOR_MEMORY_READ { MEMORY_MAPPER_WRAPPER_READ_PHYSICAL_MEMORY , MEMORY_MAPPER_WRAPPER_READ_VIRTUAL_MEMORY } |
Memory wrapper for reading safe from the memory. More... | |
enum | _MEMORY_MAPPER_WRAPPER_FOR_MEMORY_WRITE { MEMORY_MAPPER_WRAPPER_WRITE_PHYSICAL_MEMORY , MEMORY_MAPPER_WRAPPER_WRITE_VIRTUAL_MEMORY_SAFE , MEMORY_MAPPER_WRAPPER_WRITE_VIRTUAL_MEMORY_UNSAFE } |
Memory wrapper for writing safe into the memory. More... | |
Functions | |
VOID | MemoryMapperInitialize () |
Initialize the Memory Mapper. | |
VOID | MemoryMapperUninitialize () |
uninitialize the Memory Mapper | |
BOOLEAN | MemoryMapperCheckIfPageIsPresentByCr3 (_In_ PVOID Va, _In_ CR3_TYPE TargetCr3) |
VOID | MemoryMapperMapPhysicalAddressToPte (_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ PVOID TargetProcessVirtualAddress, _In_ CR3_TYPE TargetProcessKernelCr3) |
#define PAGE_1GB_OFFSET ((UINT64)(1 << 30) - 1) |
#define PAGE_2MB_OFFSET ((UINT64)(1 << 21) - 1) |
#define PAGE_4KB_OFFSET ((UINT64)(1 << 12) - 1) |
#define PAGE_4MB_OFFSET ((UINT64)(1 << 22) - 1) |
typedef struct _MEMORY_MAPPER_ADDRESSES MEMORY_MAPPER_ADDRESSES |
Memory mapper PTE and reserved virtual address.
Memory mapper details for each core, contains PTE Virtual Address, Actual Kernel Virtual Address
Memory wrapper for reading safe from the memory.
Memory wrapper for writing safe into the memory.
typedef struct _PAGE_ENTRY PAGE_ENTRY |
Page Entries.
typedef struct _MEMORY_MAPPER_ADDRESSES * PMEMORY_MAPPER_ADDRESSES |
typedef struct _PAGE_ENTRY * PPAGE_ENTRY |
Memory wrapper for reading safe from the memory.
Enumerator | |
---|---|
MEMORY_MAPPER_WRAPPER_READ_PHYSICAL_MEMORY | |
MEMORY_MAPPER_WRAPPER_READ_VIRTUAL_MEMORY |
Memory wrapper for writing safe into the memory.
Enumerator | |
---|---|
MEMORY_MAPPER_WRAPPER_WRITE_PHYSICAL_MEMORY | |
MEMORY_MAPPER_WRAPPER_WRITE_VIRTUAL_MEMORY_SAFE | |
MEMORY_MAPPER_WRAPPER_WRITE_VIRTUAL_MEMORY_UNSAFE |
VOID MemoryMapperInitialize | ( | ) |
Initialize the Memory Mapper.
This function should be called in vmx non-root in a IRQL <= APC_LEVEL
VOID MemoryMapperMapPhysicalAddressToPte | ( | _In_ PHYSICAL_ADDRESS | PhysicalAddress, |
_In_ PVOID | TargetProcessVirtualAddress, | ||
_In_ CR3_TYPE | TargetProcessKernelCr3 ) |
VOID MemoryMapperUninitialize | ( | ) |
uninitialize the Memory Mapper
This function should be called in vmx non-root in a IRQL <= APC_LEVEL