2025-09-10 22:05:24 +02:00
|
|
|
|
// UEngine.cpp : Defines all Unreal Engine static tools functions
|
|
|
|
|
|
//
|
|
|
|
|
|
#include <Windows.h>
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#include <optional>
|
2025-10-10 14:34:32 +02:00
|
|
|
|
#include <sstream>
|
|
|
|
|
|
#include <iomanip>
|
2025-09-10 22:05:24 +02:00
|
|
|
|
#include "UEngine.hpp"
|
|
|
|
|
|
|
|
|
|
|
|
std::optional<uint32_t> UE::CalculateOffset(const std::string& exeName, uint8_t* AOBResult)
|
|
|
|
|
|
{
|
|
|
|
|
|
// R<>cup<75>re la base du module via GetModuleHandleA
|
|
|
|
|
|
HMODULE hModule = GetModuleHandleA(exeName.c_str());
|
2025-10-10 14:34:32 +02:00
|
|
|
|
if (!AOBResult)
|
2025-09-10 22:05:24 +02:00
|
|
|
|
return std::nullopt;
|
|
|
|
|
|
|
2025-10-10 14:34:32 +02:00
|
|
|
|
if (!hModule)
|
|
|
|
|
|
hModule = GetModuleHandleA(nullptr);
|
|
|
|
|
|
|
2025-09-10 22:05:24 +02:00
|
|
|
|
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);
|
|
|
|
|
|
}
|