3 #include "../Include/Winheaders.h"
4 #include "RPC/RemoteMemory.h"
17 BLACKBONE_API ~ProcessMemory();
26 BLACKBONE_API
MemBlock Allocate(
size_t size, DWORD protection = PAGE_EXECUTE_READWRITE, ptr_t desired = 0 );
35 BLACKBONE_API NTSTATUS
Free( ptr_t pAddr,
size_t size = 0, DWORD freeType = MEM_RELEASE );
43 BLACKBONE_API NTSTATUS
Query( ptr_t pAddr, PMEMORY_BASIC_INFORMATION64 pInfo );
53 BLACKBONE_API NTSTATUS
Protect( ptr_t pAddr,
size_t size, DWORD flProtect, DWORD *pOld = NULL );
66 BLACKBONE_API NTSTATUS
Read( ptr_t dwAddress,
size_t dwSize, PVOID pResult,
bool handleHoles =
false );
75 BLACKBONE_API NTSTATUS
Write( ptr_t pAddress,
size_t dwSize,
const void* pData );
83 inline T
Read( ptr_t dwAddress )
86 Read( dwAddress,
sizeof(T), &res );
97 inline NTSTATUS
Read( ptr_t dwAddress, T& result )
99 return Read( dwAddress,
sizeof( result ), &result );
109 inline NTSTATUS
Write( ptr_t dwAddress,
const T& data )
111 return Write( dwAddress,
sizeof(T), &data );
120 BLACKBONE_API
size_t EnumRegions( std::list<MEMORY_BASIC_INFORMATION64>& results,
bool includeFree =
false );
122 BLACKBONE_API
inline class ProcessCore& core() {
return _core; }
123 BLACKBONE_API
inline class Process* process() {
return _process; }
126 ProcessMemory(
const ProcessMemory& ) =
delete;
127 ProcessMemory& operator =(
const ProcessMemory&) =
delete;
130 class Process* _process;
131 class ProcessCore& _core;
BLACKBONE_API NTSTATUS Protect(ptr_t pAddr, size_t size, DWORD flProtect, DWORD *pOld=NULL)
Change memory protection
Definition: ProcessMemory.cpp:61
BLACKBONE_API NTSTATUS Free(ptr_t pAddr, size_t size=0, DWORD freeType=MEM_RELEASE)
Free memory
Definition: ProcessMemory.cpp:37
BLACKBONE_API NTSTATUS Read(ptr_t dwAddress, size_t dwSize, PVOID pResult, bool handleHoles=false)
Read data
Definition: ProcessMemory.cpp:81
BLACKBONE_API NTSTATUS Query(ptr_t pAddr, PMEMORY_BASIC_INFORMATION64 pInfo)
Get memory region info
Definition: ProcessMemory.cpp:48
BLACKBONE_API size_t EnumRegions(std::list< MEMORY_BASIC_INFORMATION64 > &results, bool includeFree=false)
Enumerate valid memory regions
Definition: ProcessMemory.cpp:142
Definition: RemoteMemory.h:13
Definition: ProcessMemory.h:13
BLACKBONE_API MemBlock Allocate(size_t size, DWORD protection=PAGE_EXECUTE_READWRITE, ptr_t desired=0)
Allocate new memory block
Definition: ProcessMemory.cpp:25
NTSTATUS Write(ptr_t dwAddress, const T &data)
Write data
Definition: ProcessMemory.h:109
BLACKBONE_API NTSTATUS Write(ptr_t pAddress, size_t dwSize, const void *pData)
Write data
Definition: ProcessMemory.cpp:131
NTSTATUS Read(ptr_t dwAddress, T &result)
Read data
Definition: ProcessMemory.h:97
Definition: MemBlock.h:39
Definition: ProcessCore.h:13
T Read(ptr_t dwAddress)
Read data
Definition: ProcessMemory.h:83
Definition: AsmHelper32.cpp:6