Arma Reforger has possible cheats in the game. The player’s position is stored locally, so it could be possible to teleport around easily if you know the coordinates.
__int64 __fastcall BoneIndexThingy(__int64 a1, int a2)
{
unsigned int v2 = mem.read<DWORD>(a1 + 0xf8);
if (!v2)
{
return 0xFFFFFFFFi64;
}
uintptr_t thingy = mem.read<uintptr_t>(a1 + 0xd8);
for (int i = 0; i < v2; i++)
{
if (mem.read<DWORD>(thingy + ((0x18 * i) + 0x10)) == a2)
{
return i;
}
}
return -1;
}
int GetBoneID(char* str)
{
int i = -1;
auto v10 = *str;
for (i = 5381; *str; v10 = *str)
{
++str;
i = (v10 | 0x20) + 33 * i;
}
return i;
}
class ChimeraCharacter
{
public:
void GetBonePosition(Vector3& output, const char* name)
{
auto MeshObjectCompenent = mem.read<uintptr_t>(THIS + 0x50);
if (MeshObjectCompenent)
{
uintptr_t hmmm = mem.read<uintptr_t>(MeshObjectCompenent + 0x10);
uintptr_t v9 = mem.read<uintptr_t>(hmmm + 0x30);
int finalindex = BoneIndexThingy(v9, GetBoneID((char*)name));
auto v11 = mem.read<uintptr_t>(MeshObjectCompenent + 0x40) + 0x30i64 * finalindex;
auto newpos = mem.read<Vector3>(v11 + 0x24); // 36
output = CordToParent(newpos);
}
}
Vector3 CordToParent(Vector3 pos)
{
auto v5 = THIS;
auto v10 = pos.Z * mem.read<float>(v5 + 136);
auto v11 = (float)(pos.Y * mem.read<float>(v5 + 124)) + (float)(pos.X * mem.read<float>(v5 + 112));
auto v12 = (float)((float)(pos.Y * mem.read<float>(v5 + 120)) + (float)(pos.X * mem.read<float>(v5 + 108)))
+ (float)(pos.Z * mem.read<float>(v5 + 132));
auto X = (float)((float)((float)(pos.Y * mem.read<float>(v5 + 116))
+ (float)(pos.X * mem.read<float>(v5 + 104)))
+ (float)(pos.Z * mem.read<float>(v5 + 128)))
+ mem.read<float>(v5 + 140);
auto Y = v12 + mem.read<float>(v5 + 144);
auto Z = (float)(v11 + v10) + mem.read<float>(v5 + 148);
return Vector3(X, Y, Z);
}
};
Vector3 HeadBone;
Character->GetBonePosition(HeadBone, "Head");
Has this ever been used? The game is very buggy, so a player teleporting and killing others would hardly be noticed anyway.
This is open to exploitation.
You may access the player camera as well with certain addresses.
A way to access camera from ChimeraGame:
ChimeraGame+ 0x308] + 0x10 ] + 0x138] + 0x10 -> PlayerCamera
Could this be used to spy on players on another team and see what they are building/doing?