parent
6260ab0a08
commit
250ad3a687
@ -0,0 +1,30 @@
|
||||
#include "vad.hpp"
|
||||
|
||||
namespace vad
|
||||
{
|
||||
auto get_vad_offset(vdm::vdm_ctx& v_ctx)->std::uint32_t
|
||||
{
|
||||
const auto [um_addr, base_offset] =
|
||||
util::memory::sig_scan(VAD_OFFSET_SIG, VAD_OFFSET_MASK);
|
||||
|
||||
return *reinterpret_cast<std::uint32_t*>(um_addr + 3);
|
||||
}
|
||||
|
||||
auto get_vad_root(vdm::vdm_ctx& v_ctx, PEPROCESS process)->std::uintptr_t
|
||||
{
|
||||
static const auto vad_offset =
|
||||
vad::get_vad_offset(v_ctx);
|
||||
|
||||
return v_ctx.rkm<std::uintptr_t>(
|
||||
reinterpret_cast<std::uintptr_t>(process) + vad_offset);
|
||||
}
|
||||
|
||||
auto set_vad_root(vdm::vdm_ctx& v_ctx, PEPROCESS process, std::uintptr_t vad_root)->void
|
||||
{
|
||||
static const auto vad_offset =
|
||||
vad::get_vad_offset(v_ctx);
|
||||
|
||||
v_ctx.wkm<std::uintptr_t>(
|
||||
reinterpret_cast<std::uintptr_t>(process) + vad_offset, vad_root);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
#include "../vdm_ctx/vdm_ctx.hpp"
|
||||
|
||||
#define VAD_OFFSET_SIG "\x48\x8B\x00\x00\x00\x00\x00\x48\xC1\xEB\x0C\xEB"
|
||||
#define VAD_OFFSET_MASK "xx?????xxxxx"
|
||||
|
||||
namespace vad
|
||||
{
|
||||
auto get_vad_offset(vdm::vdm_ctx& v_ctx)->std::uint32_t;
|
||||
auto get_vad_root(vdm::vdm_ctx& v_ctx, PEPROCESS process)->std::uintptr_t;
|
||||
auto set_vad_root(vdm::vdm_ctx& v_ctx, PEPROCESS process, std::uintptr_t vad_root)->void;
|
||||
}
|
Loading…
Reference in new issue