Files
ReshadePluginsCore/UEngine/UEngine.cpp

28 lines
834 B
C++

// UEngine.cpp : Defines all Unreal Engine static tools functions
//
#include <Windows.h>
#include <string>
#include <optional>
#include <sstream>
#include <iomanip>
#include "UEngine.hpp"
std::optional<uint32_t> UE::CalculateOffset(const std::string& exeName, uint8_t* AOBResult)
{
// Récupère la base du module via GetModuleHandleA
HMODULE hModule = GetModuleHandleA(exeName.c_str());
if (!AOBResult)
return std::nullopt;
if (!hModule)
hModule = GetModuleHandleA(nullptr);
uintptr_t baseModule = reinterpret_cast<uintptr_t>(hModule);
uintptr_t AOBAbsoluteAdress = reinterpret_cast<uintptr_t>(AOBResult);
if (AOBAbsoluteAdress < baseModule)
return std::nullopt;
uintptr_t relativeOffset = AOBAbsoluteAdress - baseModule;
return static_cast<uint32_t>(relativeOffset);
}