Batch #4028 by Yommy: 3 byte-identical, 4 confirmed by peer review. - fn_08205 CNProtectGameGuardMgr::ProcessAuth: byte-identical - fn_08207 CNProtectGameGuardMgr::Stop: logic confirmed by peer review - fn_08208 CNProtectGameGuardMgr::Tick: logic confirmed by peer review - fn_08210 CNProtectGameGuardMgr::Create: byte-identical - fn_08213 CNProtectGameGuardMgr::HasError: byte-identical - fn_08215 CNProtectGameGuardMgr::ErrorMessage: logic confirmed by peer review - fn_08216 CNProtectGameGuardMgr::GameName: logic confirmed by peer review Peer-reviewed-by: youko, superintelligence Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). Adds to the build: Source/Security/NProtectGameGuardMgr.cpp
37 lines
978 B
C++
37 lines
978 B
C++
#ifndef RAGNAROK_SOURCE_SECURITY_NPROTECTGAMEGUARDMGR_H
|
|
#define RAGNAROK_SOURCE_SECURITY_NPROTECTGAMEGUARDMGR_H
|
|
|
|
#include <cstddef>
|
|
#include <string>
|
|
#include <windows.h>
|
|
|
|
class CNProtectGameGuardMgr {
|
|
public:
|
|
static int Create();
|
|
static const char* GameName();
|
|
|
|
/* 0000 */ void* vtable;
|
|
/* 0004 */ bool m_initialized;
|
|
/* 0008 */ unsigned int unknown_0008;
|
|
/* 000C */ void* m_gameLib;
|
|
/* 0010 */ bool m_hasError;
|
|
/* 0014 */ std::string m_errorMessage;
|
|
/* 002C */ CRITICAL_SECTION m_lock;
|
|
/* 0044 */ unsigned char unknown_0044[0xC];
|
|
|
|
void ProcessAuth(int first, int second);
|
|
void Stop();
|
|
void Tick();
|
|
int HasError();
|
|
std::string ErrorMessage();
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(offsetof(CNProtectGameGuardMgr, m_errorMessage) == 0x14);
|
|
static_assert(offsetof(CNProtectGameGuardMgr, m_lock) == 0x2C);
|
|
static_assert(sizeof(CNProtectGameGuardMgr) == 0x50);
|
|
#endif
|
|
|
|
extern CNProtectGameGuardMgr* g_nProtectGameGuardMgr;
|
|
|
|
#endif
|