DarkflameServer/dGame/dUtilities/CheatDetection.h
David Markowitz b24775f472
feat: Security improvements for spoofed packets (#1201)
* Add cheat detection for spoofed packets

* Add config option for ip loggin

* remove packet saving
2023-09-28 12:16:11 -05:00

31 lines
1015 B
C++

#ifndef __CHEATDETECTION__H__
#define __CHEATDETECTION__H__
#include "dCommonVars.h"
struct SystemAddress;
enum class CheckType : uint8_t {
User,
Entity,
};
namespace CheatDetection {
/**
* @brief Verify that the object ID provided in this function is in someway connected to the system address who sent it.
*
* @param id The object ID to check ownership of
* @param sysAddr The system address which sent the packet
* @param checkType The check type to perform
* @param messageIfNotSender The message to log if the sender is not the owner of the object ID
* @param ... format args
* @return true If the sender is the owner of the object ID
* @return false If the sender is not the owner of the object ID
*/
bool VerifyLwoobjidIsSender(const LWOOBJID& id, const SystemAddress& sysAddr, const CheckType checkType, const char* messageIfNotSender, ...);
void ReportCheat(User* user, const SystemAddress& sysAddr, const char* messageIfNotSender, ...);
};
#endif //!__CHEATDETECTION__H__