mirror of
https://gitgud.io/yuv420p10le/plexmediaserver_crack
synced 2025-07-04 16:34:47 +00:00
34 lines
980 B
C++
34 lines
980 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <optional>
|
|
#include <tuple>
|
|
|
|
#ifndef member_at
|
|
#define member_at(T, offset, name) \
|
|
__forceinline auto &name() \
|
|
{ \
|
|
return *reinterpret_cast<T *>(reinterpret_cast<uintptr_t>(this) + offset); \
|
|
} \
|
|
__forceinline auto &name() const \
|
|
{ \
|
|
return *reinterpret_cast<const T *>(reinterpret_cast<uintptr_t>(this) + offset); \
|
|
}
|
|
#endif
|
|
|
|
class FeatureManager
|
|
{
|
|
public:
|
|
static inline size_t m_map_offset{};
|
|
member_at(uintptr_t, m_map_offset, m_feature_map);
|
|
};
|
|
|
|
uintptr_t get_current_process_handle();
|
|
std::optional<std::tuple<uintptr_t, uintptr_t>> get_section_info(std::string_view name);
|
|
std::optional<uintptr_t> sig_scan(const uintptr_t start, const uintptr_t end, std::string_view pattern);
|
|
uint64_t hook_is_feature_available(uintptr_t rcx, const char** guid);
|
|
uint64_t* hook_map_find(uintptr_t* rcx, uintptr_t rdx, const char** str);
|
|
FeatureManager* hook_feature_manager_init(FeatureManager* rcx);
|
|
void hook();
|