#pragma once #include "common.h" #include "interface.h" #include #include #include #include #include #include struct Section { std::string name; void* base; size_t size; }; enum SigError { SIG_OK, SIG_NOT_FOUND, SIG_FOUND_MULTIPLE, }; class CModule { public: CModule(const char* relativePath, const char* module); ~CModule() = default; void* FindSignature(const uint8_t* pattern, size_t length, int& error) const; void* FindInterface(const char* name) const; void* GetHandle() const { return m_handle; } private: void* m_handle {}; void* m_base {}; size_t m_size {}; std::vector
m_sections; std::string m_name; }; namespace modules { extern CModule* engine; extern CModule* server; extern CModule* schemasystem; }