TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Warden.h File Reference
#include <map>
#include "Cryptography/ARC4.h"
#include "Cryptography/BigNumber.h"
#include "ByteBuffer.h"
#include "WardenCheckMgr.h"
+ Include dependency graph for Warden.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  WardenModuleUse
 
struct  WardenModuleTransfer
 
struct  WardenHashRequest
 
struct  ClientWardenModule
 
class  Warden
 

Enumerations

enum  WardenOpcodes {
  WARDEN_CMSG_MODULE_MISSING = 0, WARDEN_CMSG_MODULE_OK = 1, WARDEN_CMSG_CHEAT_CHECKS_RESULT = 2, WARDEN_CMSG_MEM_CHECKS_RESULT = 3,
  WARDEN_CMSG_HASH_RESULT = 4, WARDEN_CMSG_MODULE_FAILED = 5, WARDEN_SMSG_MODULE_USE = 0, WARDEN_SMSG_MODULE_CACHE = 1,
  WARDEN_SMSG_CHEAT_CHECKS_REQUEST = 2, WARDEN_SMSG_MODULE_INITIALIZE = 3, WARDEN_SMSG_MEM_CHECKS_REQUEST = 4, WARDEN_SMSG_HASH_REQUEST = 5
}
 
enum  WardenCheckType {
  MEM_CHECK = 0xF3, PAGE_CHECK_A = 0xB2, PAGE_CHECK_B = 0xBF, MPQ_CHECK = 0x98,
  LUA_STR_CHECK = 0x8B, DRIVER_CHECK = 0x71, TIMING_CHECK = 0x57, PROC_CHECK = 0x7E,
  MODULE_CHECK = 0xD9
}
 

Enumeration Type Documentation

Enumerator
MEM_CHECK 
PAGE_CHECK_A 
PAGE_CHECK_B 
MPQ_CHECK 
LUA_STR_CHECK 
DRIVER_CHECK 
TIMING_CHECK 
PROC_CHECK 
MODULE_CHECK 
48 {
49  MEM_CHECK = 0xF3, // 243: byte moduleNameIndex + uint Offset + byte Len (check to ensure memory isn't modified)
50  PAGE_CHECK_A = 0xB2, // 178: uint Seed + byte[20] SHA1 + uint Addr + byte Len (scans all pages for specified hash)
51  PAGE_CHECK_B = 0xBF, // 191: uint Seed + byte[20] SHA1 + uint Addr + byte Len (scans only pages starts with MZ+PE headers for specified hash)
52  MPQ_CHECK = 0x98, // 152: byte fileNameIndex (check to ensure MPQ file isn't modified)
53  LUA_STR_CHECK = 0x8B, // 139: byte luaNameIndex (check to ensure LUA string isn't used)
54  DRIVER_CHECK = 0x71, // 113: uint Seed + byte[20] SHA1 + byte driverNameIndex (check to ensure driver isn't loaded)
55  TIMING_CHECK = 0x57, // 87: empty (check to ensure GetTickCount() isn't detoured)
56  PROC_CHECK = 0x7E, // 126: uint Seed + byte[20] SHA1 + byte moluleNameIndex + byte procNameIndex + uint Offset + byte Len (check to ensure proc isn't detoured)
57  MODULE_CHECK = 0xD9 // 217: uint Seed + byte[20] SHA1 (check to ensure module isn't injected)
58 };
Definition: Warden.h:54
Definition: Warden.h:51
Definition: Warden.h:53
Definition: Warden.h:56
Definition: Warden.h:57
Definition: Warden.h:52
Definition: Warden.h:50
Definition: Warden.h:55
Definition: Warden.h:49
Enumerator
WARDEN_CMSG_MODULE_MISSING 
WARDEN_CMSG_MODULE_OK 
WARDEN_CMSG_CHEAT_CHECKS_RESULT 
WARDEN_CMSG_MEM_CHECKS_RESULT 
WARDEN_CMSG_HASH_RESULT 
WARDEN_CMSG_MODULE_FAILED 
WARDEN_SMSG_MODULE_USE 
WARDEN_SMSG_MODULE_CACHE 
WARDEN_SMSG_CHEAT_CHECKS_REQUEST 
WARDEN_SMSG_MODULE_INITIALIZE 
WARDEN_SMSG_MEM_CHECKS_REQUEST 
WARDEN_SMSG_HASH_REQUEST 
29 {
30  // Client->Server
34  WARDEN_CMSG_MEM_CHECKS_RESULT = 3, // only sent if MEM_CHECK bytes doesn't match
36  WARDEN_CMSG_MODULE_FAILED = 5, // this is sent when client failed to load uploaded module due to cache fail
37 
38  // Server->Client
43  WARDEN_SMSG_MEM_CHECKS_REQUEST = 4, // byte len; while (!EOF) { byte unk(1); byte index(++); string module(can be 0); int offset; byte len; byte[] bytes_to_compare[len]; }
45 };
Definition: Warden.h:39
Definition: Warden.h:44
Definition: Warden.h:36
Definition: Warden.h:43
Definition: Warden.h:35
Definition: Warden.h:41
Definition: Warden.h:40
Definition: Warden.h:42
Definition: Warden.h:33
Definition: Warden.h:31
Definition: Warden.h:32
Definition: Warden.h:34