53 lines
1.0 KiB
C++
53 lines
1.0 KiB
C++
/***
|
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: ProcessMap.hpp
|
|
Date: 2021-6-10
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
namespace Aurora::Process
|
|
{
|
|
struct PublicModule;
|
|
|
|
struct ModuleMeta
|
|
{
|
|
AuString moduleName;
|
|
AuString modulePath;
|
|
AuUInt moduleBase;
|
|
AuUInt origVa;
|
|
};
|
|
|
|
struct PageTable
|
|
{
|
|
bool NX;
|
|
bool writable;
|
|
bool readable;
|
|
bool acSanity;
|
|
};
|
|
|
|
struct Segment
|
|
{
|
|
AuUInt baseVa;
|
|
AuUInt origVa;
|
|
AuUInt fsOff;
|
|
AuUInt size;
|
|
PageTable pt;
|
|
AuString name;
|
|
AuWPtr<PublicModule> moduleMeta;
|
|
};
|
|
|
|
using Segments = AuList<Segment>;
|
|
|
|
struct PublicModule
|
|
{
|
|
AuList<Segment> segments;
|
|
AuSPtr<ModuleMeta> moduleMeta;
|
|
};
|
|
|
|
AUKN_SYM AuOptional<Segment> GetSegment(AuUInt pointer);
|
|
AUKN_SYM PublicModule DumpExecutableRoot();
|
|
AUKN_SYM Segments DumpExecutableAll();
|
|
AUKN_SYM void TryRescanSlow();
|
|
} |