mirror of
https://github.com/Mr-X-GTA/GTAV-Classes-1.git
synced 2026-10-10 03:43:17 +08:00
feat(Security): Added RageSecurity class (#79)
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
#pragma once
|
||||
#include <cstdint>
|
||||
|
||||
#pragma pack(push, 1)
|
||||
class Obf32
|
||||
{
|
||||
std::uint32_t a;
|
||||
std::uint32_t b;
|
||||
std::uint32_t c;
|
||||
std::uint32_t d;
|
||||
|
||||
public:
|
||||
inline void operator=(std::uint32_t val)
|
||||
{
|
||||
a = val & d;
|
||||
b = val & ~d;
|
||||
}
|
||||
|
||||
inline operator std::uint32_t()
|
||||
{
|
||||
return (a & d) | (b & ~d);
|
||||
}
|
||||
};
|
||||
static_assert(sizeof(Obf32) == 0x10);
|
||||
#pragma pack(pop)
|
||||
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
#include <cstdint>
|
||||
|
||||
namespace rage
|
||||
{
|
||||
template <typename T>
|
||||
class ObfVar
|
||||
{
|
||||
private:
|
||||
T m_unk1;
|
||||
T m_unk2;
|
||||
T m_unk3;
|
||||
T m_unk4;
|
||||
|
||||
public:
|
||||
T getData()
|
||||
{
|
||||
auto v105 = m_unk4;
|
||||
auto v28 = m_unk1 & v105;
|
||||
auto v94 = m_unk2 & ~v105;
|
||||
return v28 | v94;
|
||||
}
|
||||
|
||||
operator T ()
|
||||
{
|
||||
return getData();
|
||||
}
|
||||
|
||||
#if _WIN32
|
||||
void setData(T val)
|
||||
{
|
||||
auto seed = time(nullptr);
|
||||
m_unk3 = seed;
|
||||
seed = time(nullptr);
|
||||
m_unk4 = seed;
|
||||
|
||||
auto v48 = val & ~seed;
|
||||
m_unk1 = seed & val;
|
||||
m_unk2 = v48;
|
||||
}
|
||||
|
||||
void operator =(T val)
|
||||
{
|
||||
setData(val);
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
using Obf16 = ObfVar<unsigned short>;
|
||||
using Obf32 = ObfVar<unsigned int>;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
#include "ObfVar.hpp"
|
||||
|
||||
namespace rage
|
||||
{
|
||||
class RageSecurity
|
||||
{
|
||||
public:
|
||||
Obf32 m_lastRun;
|
||||
Obf32 m_interval;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user