VoltMod
C++23 framework for CS2 server plugins
Loading...
Searching...
No Matches
VtableLookup.windows.cpp File Reference
#include "Engine/Memory/VtableLookup.hpp"
#include <windows.h>
#include <array>
#include <cstdint>
#include <cstring>
#include <format>
#include <span>
#include <string>
#include <string_view>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  VoltMod
 

Functions

static const uint8_t * VoltMod::FindValue (const uint8_t *begin, const uint8_t *end, const void *needle, size_t len, size_t stride)
 
template<typename T >
static T VoltMod::ReadAt (const uint8_t *address)
 
static const uint8_t * VoltMod::End (const ScanRange &range)
 
static const uint8_t * VoltMod::AtRva (const PeRtti &rtti, int64_t rva, size_t bytes)
 
static std::array< std::string, 2 > VoltMod::ClassAndStructNames (std::string_view name)
 
static uint32_t VoltMod::FindTypeDescriptor (const PeRtti &rtti, std::string_view className)
 
static bool VoltMod::TypeDescriptorMatches (const PeRtti &rtti, int32_t rva, std::span< const std::string > names)
 
static const uint8_t * VoltMod::FindLocator (const PeRtti &rtti, uint32_t typeDescriptor, uint32_t offset)
 
static void * VoltMod::TableAfter (const PeRtti &rtti, const uint8_t *locator)
 
static std::pair< uint32_t, const uint8_t * > VoltMod::PrimaryLocator (const PeRtti &rtti, std::string_view className)
 
void * VoltMod::FindVirtualTableInRtti (const PeRtti &rtti, std::string_view className)
 
Result< BaseSubobject > VoltMod::FindBaseInRtti (const PeRtti &rtti, std::string_view className, std::string_view baseName)
 
static ScanRange VoltMod::FindSection (const Image &module, std::string_view name)
 
static PeRtti VoltMod::RttiOf (const Image &module)
 
void * VoltMod::FindVirtualTableIn (const Image &module, std::string_view className)
 
Result< BaseSubobject > VoltMod::FindBaseIn (const Image &module, std::string_view className, std::string_view baseName)
 

Variables

static constexpr size_t VoltMod::TypeDescriptorName = 0x10
 
static constexpr size_t VoltMod::LocatorOffset = 0x04
 
static constexpr size_t VoltMod::LocatorTypeDescriptor = 0x0C
 
static constexpr size_t VoltMod::LocatorHierarchy = 0x10
 
static constexpr size_t VoltMod::LocatorSelf = 0x14
 
static constexpr size_t VoltMod::LocatorSize = 0x18
 
static constexpr size_t VoltMod::HierarchyBaseCount = 0x08
 
static constexpr size_t VoltMod::HierarchyBaseList = 0x0C
 
static constexpr size_t VoltMod::HierarchySize = 0x10
 
static constexpr size_t VoltMod::BaseMemberOffset = 0x08
 
static constexpr size_t VoltMod::BaseVirtualOffset = 0x0C
 
static constexpr size_t VoltMod::BaseSize = 0x18
 
static constexpr uint32_t VoltMod::MaxBases = 1024