81 uintptr_t FileEndRVA = FileObject->FileSize;
113 OUT void** EntryPointAddress,
114 OUT void** BaseAddress
167 if (BssEndVa > NextPageVa) {
168 uintptr_t OverflowSize = BssEndVa - NextPageVa;
169 uintptr_t AllocBase = NextPageVa;
186 *BaseAddress = (
void*)load_base;
190 *EntryPointAddress = (
void*)RipAddress;
void gop_printf(uint32_t color, const char *fmt,...)
#define COLOR_RED
Colors definitions for easier access.
FORCEINLINE int kmemcmp(const void *s1, const void *s2, size_t n)
struct _MM_SECTION * PMM_SECTION
struct _MM_SECTION MM_SECTION
#define MT_SECTION_ALL_ACCESS
#define ALIGN_UP(x, align)
POBJECT_TYPE MmSectionType
#define MT_INVALID_IMAGE_FORMAT
#define MT_FAILURE(Status)
MTSTATUS ObCreateHandleForObject(IN void *Object, IN ACCESS_MASK DesiredAccess, OUT PHANDLE ReturnedHandle)
MTSTATUS ObReferenceObjectByHandle(IN HANDLE Handle, IN uint32_t DesiredAccess, IN POBJECT_TYPE DesiredType, OUT void **Object, _Out_Opt PHANDLE_TABLE_ENTRY HandleInformation)
void ObDereferenceObject(IN void *Object)
MTSTATUS ObCreateObject(IN POBJECT_TYPE ObjectType, IN uint32_t ObjectSize, OUT void **ObjectCreated)
MTSTATUS MmMapViewOfSection(IN HANDLE SectionHandle, IN PEPROCESS Process, OUT void **EntryPointAddress, OUT void **BaseAddress)
void MmpDeleteSection(void *Object)
MTSTATUS MmCreateSection(OUT PHANDLE SectionHandle, IN struct _FILE_OBJECT *FileObject)
uint64_t EntryPointOffset
struct _FILE_OBJECT * FileObject
MM_SUBSECTION WholeFileSection
struct _FILE_OBJECT * File
uint64_t PreferredImageBase
MTSTATUS MmFreeVirtualMemory(IN PEPROCESS Process, IN void *BaseAddress)
PMMVAD MiFindVad(IN PEPROCESS Process, IN uintptr_t VirtualAddress)
MTSTATUS MmAllocateVirtualMemory(IN PEPROCESS Process, _In_Opt _Out_Opt void **BaseAddress, IN size_t NumberOfBytes, IN VAD_FLAGS VadFlags)
MTSTATUS FsReadFile(IN PFILE_OBJECT FileObject, IN uint64_t FileOffset, OUT void *Buffer, IN size_t BufferSize, _Out_Opt size_t *BytesRead)