of using 70 constantly.merge-requests/5/head
parent
8e3878583e
commit
f37470d2f8
@ -1,91 +0,0 @@
|
||||
#pragma once
|
||||
#include <windows.h>
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
|
||||
extern "C" NTSTATUS __protect_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void** base_addr,
|
||||
std::size_t* bytes_to_protect,
|
||||
std::uint32_t new_protect,
|
||||
std::uint32_t* old_protect
|
||||
);
|
||||
|
||||
extern "C" NTSTATUS __write_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void* base_addr,
|
||||
void* buffer,
|
||||
std::size_t size,
|
||||
std::size_t* bytes_written
|
||||
);
|
||||
|
||||
extern "C" NTSTATUS __read_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void* base_addr,
|
||||
void* buffer,
|
||||
std::size_t size,
|
||||
std::size_t* bytes_written
|
||||
);
|
||||
|
||||
extern "C" NTSTATUS __alloc_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void** base_addr,
|
||||
std::uint32_t zero_bits,
|
||||
std::size_t* size,
|
||||
std::uint32_t alloc_type,
|
||||
std::uint32_t protect
|
||||
);
|
||||
|
||||
namespace direct
|
||||
{
|
||||
__forceinline bool protect_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void* base_addr,
|
||||
std::size_t size,
|
||||
std::uint32_t protect,
|
||||
std::uint32_t* old_protect
|
||||
)
|
||||
{
|
||||
return ERROR_SUCCESS == ::__protect_virtual_memory(p_handle, &base_addr, &size, protect, old_protect);
|
||||
}
|
||||
|
||||
__forceinline bool write_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void* base_addr,
|
||||
void* buffer,
|
||||
std::size_t size
|
||||
)
|
||||
{
|
||||
std::size_t bytes_written;
|
||||
return ERROR_SUCCESS == __write_virtual_memory(p_handle, base_addr, buffer, size, &bytes_written);
|
||||
}
|
||||
|
||||
__forceinline bool read_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
void* addr,
|
||||
void* buffer,
|
||||
std::size_t size
|
||||
)
|
||||
{
|
||||
std::size_t bytes_written;
|
||||
return ERROR_SUCCESS == ::__read_virtual_memory(p_handle, addr, buffer, size, &bytes_written);
|
||||
}
|
||||
|
||||
__forceinline void* alloc_virtual_memory(
|
||||
HANDLE p_handle,
|
||||
std::size_t size,
|
||||
std::uint32_t protect
|
||||
)
|
||||
{
|
||||
void* base_addr = NULL;
|
||||
::__alloc_virtual_memory(
|
||||
p_handle,
|
||||
&base_addr,
|
||||
NULL,
|
||||
&size,
|
||||
MEM_COMMIT | MEM_RESERVE,
|
||||
protect
|
||||
);
|
||||
return base_addr;
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue