
* feat(Spoofing): add spoofing * feat(Spoofing): prepare code for player attach * remove(PlayerAttach): isn't going to work due to netsync architecture * fix(GUI): fix scaling * feat(Project): add clang-format file * feat(Classes): update classes * fix(BlackHole): remove unnecessary cleanup * fix(Formatting): fix formatting for initializer lists * feat(clang-format): Set tab width and 1 space before comment Co-authored-by: Yimura <24669514+Yimura@users.noreply.github.com>
39 lines
762 B
C++
39 lines
762 B
C++
#pragma once
|
|
|
|
namespace big
|
|
{
|
|
class detour_hook
|
|
{
|
|
public:
|
|
explicit detour_hook(std::string name, void* detour);
|
|
explicit detour_hook(std::string name, void* target, void* detour);
|
|
~detour_hook() noexcept;
|
|
|
|
detour_hook(detour_hook&& that) = delete;
|
|
detour_hook& operator=(detour_hook&& that) = delete;
|
|
detour_hook(detour_hook const&) = delete;
|
|
detour_hook& operator=(detour_hook const&) = delete;
|
|
|
|
void set_target_and_create_hook(void* target);
|
|
|
|
void enable();
|
|
void disable();
|
|
|
|
template<typename T>
|
|
T get_original()
|
|
{
|
|
return static_cast<T>(m_original);
|
|
}
|
|
|
|
void fix_hook_address();
|
|
|
|
private:
|
|
void create_hook();
|
|
|
|
std::string m_name;
|
|
void* m_original{};
|
|
void* m_target{};
|
|
void* m_detour{};
|
|
};
|
|
}
|