#include "pch.h" #include "inlinehook.h" #include DWORD inlinehook::Motify_memory_attributes(int address, DWORD attributes) { DWORD Old_attributes; VirtualProtect(reinterpret_cast(address), Byte_Length, attributes, &Old_attributes); return Old_attributes; } void inlinehook::Motify_address() { DWORD attributes = Motify_memory_attributes(m_original_address); //写入我们构造的BYTE 实现 hook memcpy(reinterpret_cast(m_original_address), m_self_byte, Byte_Length); //恢复内存属性 Motify_memory_attributes(m_original_address, attributes); } void inlinehook::Restore_address() { DWORD attributes = Motify_memory_attributes(m_original_address); //写入原始的BYTE 实现 hook memcpy(reinterpret_cast(m_original_address), m_original_byte, Byte_Length); //恢复内存属性 Motify_memory_attributes(m_original_address, attributes); }