/* * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "WardenCheckMgr.h" #include "Define.h" #include "SmartEnum.h" #include namespace Trinity::Impl::EnumUtilsImpl { /**********************************************************************\ |* data for enum 'WardenActions' in 'WardenCheckMgr.h' auto-generated *| \**********************************************************************/ template <> TC_API_EXPORT EnumText EnumUtils::ToString(WardenActions value) { switch (value) { case WARDEN_ACTION_LOG: return { "WARDEN_ACTION_LOG", "Log", "" }; case WARDEN_ACTION_KICK: return { "WARDEN_ACTION_KICK", "Kick", "" }; case WARDEN_ACTION_BAN: return { "WARDEN_ACTION_BAN", "Ban", "" }; default: throw std::out_of_range("value"); } } template <> TC_API_EXPORT size_t EnumUtils::Count() { return 3; } template <> TC_API_EXPORT WardenActions EnumUtils::FromIndex(size_t index) { switch (index) { case 0: return WARDEN_ACTION_LOG; case 1: return WARDEN_ACTION_KICK; case 2: return WARDEN_ACTION_BAN; default: throw std::out_of_range("index"); } } template <> TC_API_EXPORT size_t EnumUtils::ToIndex(WardenActions value) { switch (value) { case WARDEN_ACTION_LOG: return 0; case WARDEN_ACTION_KICK: return 1; case WARDEN_ACTION_BAN: return 2; default: throw std::out_of_range("value"); } } /****************************************************************************\ |* data for enum 'WardenCheckCategory' in 'WardenCheckMgr.h' auto-generated *| \****************************************************************************/ template <> TC_API_EXPORT EnumText EnumUtils::ToString(WardenCheckCategory value) { switch (value) { case INJECT_CHECK_CATEGORY: return { "INJECT_CHECK_CATEGORY", "INJECT_CHECK_CATEGORY", "checks that test whether the client's execution has been interfered with" }; case LUA_CHECK_CATEGORY: return { "LUA_CHECK_CATEGORY", "LUA_CHECK_CATEGORY", "checks that test whether the lua sandbox has been modified" }; case MODDED_CHECK_CATEGORY: return { "MODDED_CHECK_CATEGORY", "MODDED_CHECK_CATEGORY", "checks that test whether the client has been modified" }; default: throw std::out_of_range("value"); } } template <> TC_API_EXPORT size_t EnumUtils::Count() { return 3; } template <> TC_API_EXPORT WardenCheckCategory EnumUtils::FromIndex(size_t index) { switch (index) { case 0: return INJECT_CHECK_CATEGORY; case 1: return LUA_CHECK_CATEGORY; case 2: return MODDED_CHECK_CATEGORY; default: throw std::out_of_range("index"); } } template <> TC_API_EXPORT size_t EnumUtils::ToIndex(WardenCheckCategory value) { switch (value) { case INJECT_CHECK_CATEGORY: return 0; case LUA_CHECK_CATEGORY: return 1; case MODDED_CHECK_CATEGORY: return 2; default: throw std::out_of_range("value"); } } /************************************************************************\ |* data for enum 'WardenCheckType' in 'WardenCheckMgr.h' auto-generated *| \************************************************************************/ template <> TC_API_EXPORT EnumText EnumUtils::ToString(WardenCheckType value) { switch (value) { case TIMING_CHECK: return { "TIMING_CHECK", "TIMING_CHECK", "nyi" }; case DRIVER_CHECK: return { "DRIVER_CHECK", "DRIVER_CHECK", "uint Seed + byte[20] SHA1 + byte driverNameIndex (check to ensure driver isn't loaded)" }; case PROC_CHECK: return { "PROC_CHECK", "PROC_CHECK", "nyi" }; case LUA_EVAL_CHECK: return { "LUA_EVAL_CHECK", "LUA_EVAL_CHECK", "evaluate arbitrary Lua check" }; case MPQ_CHECK: return { "MPQ_CHECK", "MPQ_CHECK", "get hash of MPQ file (to check it is not modified)" }; case PAGE_CHECK_A: return { "PAGE_CHECK_A", "PAGE_CHECK_A", "scans all pages for specified SHA1 hash" }; case PAGE_CHECK_B: return { "PAGE_CHECK_B", "PAGE_CHECK_B", "scans only pages starts with MZ+PE headers for specified hash" }; case MODULE_CHECK: return { "MODULE_CHECK", "MODULE_CHECK", "check to make sure module isn't injected" }; case MEM_CHECK: return { "MEM_CHECK", "MEM_CHECK", "retrieve specific memory" }; default: throw std::out_of_range("value"); } } template <> TC_API_EXPORT size_t EnumUtils::Count() { return 9; } template <> TC_API_EXPORT WardenCheckType EnumUtils::FromIndex(size_t index) { switch (index) { case 0: return TIMING_CHECK; case 1: return DRIVER_CHECK; case 2: return PROC_CHECK; case 3: return LUA_EVAL_CHECK; case 4: return MPQ_CHECK; case 5: return PAGE_CHECK_A; case 6: return PAGE_CHECK_B; case 7: return MODULE_CHECK; case 8: return MEM_CHECK; default: throw std::out_of_range("index"); } } template <> TC_API_EXPORT size_t EnumUtils::ToIndex(WardenCheckType value) { switch (value) { case TIMING_CHECK: return 0; case DRIVER_CHECK: return 1; case PROC_CHECK: return 2; case LUA_EVAL_CHECK: return 3; case MPQ_CHECK: return 4; case PAGE_CHECK_A: return 5; case PAGE_CHECK_B: return 6; case MODULE_CHECK: return 7; case MEM_CHECK: return 8; default: throw std::out_of_range("value"); } } }