Help! how to modify in safefloat ?

CHEATS GAMES

Solid & Active Platinian
Original poster
Aug 9, 2019
64
18
8
39
Brazil
how to modify in safefloat ?

i have a game that uses safe float instead of obscuredfloat, how can i modify in safe float? here is safefloat code

C++:
using System;
using Il2CppDummyDll;

namespace JarviGames.Utils
{
    // Token: 0x02000005 RID: 5
    [Token(Token = "0x2000005")]
    public struct SafeFloat
    {
        // Token: 0x06000016 RID: 22 RVA: 0x00002096 File Offset: 0x00000296
        [Token(Token = "0x6000016")]
        [Address(RVA = "0x3FE667C", Offset = "0x3FE667C", VA = "0x3FE667C")]
        public SafeFloat(float value = 0f, int offsetRange = 1000)
        {
        }

        // Token: 0x06000017 RID: 23 RVA: 0x00002098 File Offset: 0x00000298
        [Token(Token = "0x6000017")]
        [Address(RVA = "0x3FE6740", Offset = "0x3FE6740", VA = "0x3FE6740")]
        public float GetValue()
        {
            return 0f;
        }

        // Token: 0x06000018 RID: 24 RVA: 0x000020AE File Offset: 0x000002AE
        [Token(Token = "0x6000018")]
        [Address(RVA = "0x3FE6754", Offset = "0x3FE6754", VA = "0x3FE6754", Slot = "3")]
        public override string ToString()
        {
            return null;
        }

        // Token: 0x06000019 RID: 25 RVA: 0x000020B4 File Offset: 0x000002B4
        [Token(Token = "0x6000019")]
        [Address(RVA = "0x3FE6780", Offset = "0x3FE6780", VA = "0x3FE6780")]
        public static implicit operator float(SafeFloat sf)
        {
            return 0f;
        }

        // Token: 0x0600001A RID: 26 RVA: 0x000020CC File Offset: 0x000002CC
        [Token(Token = "0x600001A")]
        [Address(RVA = "0x3FE6794", Offset = "0x3FE6794", VA = "0x3FE6794")]
        public static SafeFloat operator +(SafeFloat f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600001B RID: 27 RVA: 0x000020E4 File Offset: 0x000002E4
        [Token(Token = "0x600001B")]
        [Address(RVA = "0x3FE67D0", Offset = "0x3FE67D0", VA = "0x3FE67D0")]
        public static SafeFloat operator -(SafeFloat f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600001C RID: 28 RVA: 0x000020FC File Offset: 0x000002FC
        [Token(Token = "0x600001C")]
        [Address(RVA = "0x3FE680C", Offset = "0x3FE680C", VA = "0x3FE680C")]
        public static SafeFloat operator *(SafeFloat f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600001D RID: 29 RVA: 0x00002114 File Offset: 0x00000314
        [Token(Token = "0x600001D")]
        [Address(RVA = "0x3FE6848", Offset = "0x3FE6848", VA = "0x3FE6848")]
        public static SafeFloat operator /(SafeFloat f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600001E RID: 30 RVA: 0x0000212C File Offset: 0x0000032C
        [Token(Token = "0x600001E")]
        [Address(RVA = "0x3FE6884", Offset = "0x3FE6884", VA = "0x3FE6884")]
        public static SafeFloat operator %(SafeFloat f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600001F RID: 31 RVA: 0x00002144 File Offset: 0x00000344
        [Token(Token = "0x600001F")]
        [Address(RVA = "0x3FE68D0", Offset = "0x3FE68D0", VA = "0x3FE68D0")]
        public static SafeFloat operator +(SafeFloat f1, float f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000020 RID: 32 RVA: 0x0000215C File Offset: 0x0000035C
        [Token(Token = "0x6000020")]
        [Address(RVA = "0x3FE6904", Offset = "0x3FE6904", VA = "0x3FE6904")]
        public static SafeFloat operator -(SafeFloat f1, float f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000021 RID: 33 RVA: 0x00002174 File Offset: 0x00000374
        [Token(Token = "0x6000021")]
        [Address(RVA = "0x3FE6938", Offset = "0x3FE6938", VA = "0x3FE6938")]
        public static SafeFloat operator *(SafeFloat f1, float f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000022 RID: 34 RVA: 0x0000218C File Offset: 0x0000038C
        [Token(Token = "0x6000022")]
        [Address(RVA = "0x3FE696C", Offset = "0x3FE696C", VA = "0x3FE696C")]
        public static SafeFloat operator /(SafeFloat f1, float f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000023 RID: 35 RVA: 0x000021A4 File Offset: 0x000003A4
        [Token(Token = "0x6000023")]
        [Address(RVA = "0x3FE69A0", Offset = "0x3FE69A0", VA = "0x3FE69A0")]
        public static SafeFloat operator %(SafeFloat f1, float f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000024 RID: 36 RVA: 0x000021BC File Offset: 0x000003BC
        [Token(Token = "0x6000024")]
        [Address(RVA = "0x3FE69E0", Offset = "0x3FE69E0", VA = "0x3FE69E0")]
        public static SafeFloat operator +(float f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000025 RID: 37 RVA: 0x000021D4 File Offset: 0x000003D4
        [Token(Token = "0x6000025")]
        [Address(RVA = "0x3FE6A14", Offset = "0x3FE6A14", VA = "0x3FE6A14")]
        public static SafeFloat operator -(float f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000026 RID: 38 RVA: 0x000021EC File Offset: 0x000003EC
        [Token(Token = "0x6000026")]
        [Address(RVA = "0x3FE6A48", Offset = "0x3FE6A48", VA = "0x3FE6A48")]
        public static SafeFloat operator *(float f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000027 RID: 39 RVA: 0x00002204 File Offset: 0x00000404
        [Token(Token = "0x6000027")]
        [Address(RVA = "0x3FE6A7C", Offset = "0x3FE6A7C", VA = "0x3FE6A7C")]
        public static SafeFloat operator /(float f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000028 RID: 40 RVA: 0x0000221C File Offset: 0x0000041C
        [Token(Token = "0x6000028")]
        [Address(RVA = "0x3FE6AB0", Offset = "0x3FE6AB0", VA = "0x3FE6AB0")]
        public static SafeFloat operator %(float f1, SafeFloat f2)
        {
            return default(SafeFloat);
        }

        // Token: 0x06000029 RID: 41 RVA: 0x00002234 File Offset: 0x00000434
        [Token(Token = "0x6000029")]
        [Address(RVA = "0x3FE6AF4", Offset = "0x3FE6AF4", VA = "0x3FE6AF4")]
        public static bool operator ==(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600002A RID: 42 RVA: 0x0000224C File Offset: 0x0000044C
        [Token(Token = "0x600002A")]
        [Address(RVA = "0x3FE6B20", Offset = "0x3FE6B20", VA = "0x3FE6B20")]
        public static bool operator !=(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600002B RID: 43 RVA: 0x00002264 File Offset: 0x00000464
        [Token(Token = "0x600002B")]
        [Address(RVA = "0x3FE6B4C", Offset = "0x3FE6B4C", VA = "0x3FE6B4C")]
        public static bool operator ==(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x0600002C RID: 44 RVA: 0x0000227C File Offset: 0x0000047C
        [Token(Token = "0x600002C")]
        [Address(RVA = "0x3FE6B70", Offset = "0x3FE6B70", VA = "0x3FE6B70")]
        public static bool operator !=(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x0600002D RID: 45 RVA: 0x00002294 File Offset: 0x00000494
        [Token(Token = "0x600002D")]
        [Address(RVA = "0x3FE6B94", Offset = "0x3FE6B94", VA = "0x3FE6B94")]
        public static bool operator ==(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600002E RID: 46 RVA: 0x000022AC File Offset: 0x000004AC
        [Token(Token = "0x600002E")]
        [Address(RVA = "0x3FE6BB8", Offset = "0x3FE6BB8", VA = "0x3FE6BB8")]
        public static bool operator !=(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600002F RID: 47 RVA: 0x000022C4 File Offset: 0x000004C4
        [Token(Token = "0x600002F")]
        [Address(RVA = "0x3FE6BDC", Offset = "0x3FE6BDC", VA = "0x3FE6BDC")]
        public static bool operator >(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000030 RID: 48 RVA: 0x000022DC File Offset: 0x000004DC
        [Token(Token = "0x6000030")]
        [Address(RVA = "0x3FE6C08", Offset = "0x3FE6C08", VA = "0x3FE6C08")]
        public static bool operator <(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000031 RID: 49 RVA: 0x000022F4 File Offset: 0x000004F4
        [Token(Token = "0x6000031")]
        [Address(RVA = "0x3FE6C34", Offset = "0x3FE6C34", VA = "0x3FE6C34")]
        public static bool operator >(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x06000032 RID: 50 RVA: 0x0000230C File Offset: 0x0000050C
        [Token(Token = "0x6000032")]
        [Address(RVA = "0x3FE6C58", Offset = "0x3FE6C58", VA = "0x3FE6C58")]
        public static bool operator <(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x06000033 RID: 51 RVA: 0x00002324 File Offset: 0x00000524
        [Token(Token = "0x6000033")]
        [Address(RVA = "0x3FE6C7C", Offset = "0x3FE6C7C", VA = "0x3FE6C7C")]
        public static bool operator >(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000034 RID: 52 RVA: 0x0000233C File Offset: 0x0000053C
        [Token(Token = "0x6000034")]
        [Address(RVA = "0x3FE6CA0", Offset = "0x3FE6CA0", VA = "0x3FE6CA0")]
        public static bool operator <(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000035 RID: 53 RVA: 0x00002354 File Offset: 0x00000554
        [Token(Token = "0x6000035")]
        [Address(RVA = "0x3FE6CC4", Offset = "0x3FE6CC4", VA = "0x3FE6CC4")]
        public static bool operator >=(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000036 RID: 54 RVA: 0x0000236C File Offset: 0x0000056C
        [Token(Token = "0x6000036")]
        [Address(RVA = "0x3FE6CF0", Offset = "0x3FE6CF0", VA = "0x3FE6CF0")]
        public static bool operator <=(SafeFloat f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x06000037 RID: 55 RVA: 0x00002384 File Offset: 0x00000584
        [Token(Token = "0x6000037")]
        [Address(RVA = "0x3FE6D1C", Offset = "0x3FE6D1C", VA = "0x3FE6D1C")]
        public static bool operator >=(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x06000038 RID: 56 RVA: 0x0000239C File Offset: 0x0000059C
        [Token(Token = "0x6000038")]
        [Address(RVA = "0x3FE6D40", Offset = "0x3FE6D40", VA = "0x3FE6D40")]
        public static bool operator <=(SafeFloat f1, float f2)
        {
            return default(bool);
        }

        // Token: 0x06000039 RID: 57 RVA: 0x000023B4 File Offset: 0x000005B4
        [Token(Token = "0x6000039")]
        [Address(RVA = "0x3FE6D64", Offset = "0x3FE6D64", VA = "0x3FE6D64")]
        public static bool operator >=(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600003A RID: 58 RVA: 0x000023CC File Offset: 0x000005CC
        [Token(Token = "0x600003A")]
        [Address(RVA = "0x3FE6D88", Offset = "0x3FE6D88", VA = "0x3FE6D88")]
        public static bool operator <=(float f1, SafeFloat f2)
        {
            return default(bool);
        }

        // Token: 0x0600003B RID: 59 RVA: 0x000023E4 File Offset: 0x000005E4
        [Token(Token = "0x600003B")]
        [Address(RVA = "0x3FE6DAC", Offset = "0x3FE6DAC", VA = "0x3FE6DAC")]
        public static SafeFloat operator ++(SafeFloat f1)
        {
            return default(SafeFloat);
        }

        // Token: 0x0600003C RID: 60 RVA: 0x000023FC File Offset: 0x000005FC
        [Token(Token = "0x600003C")]
        [Address(RVA = "0x3FE6DE0", Offset = "0x3FE6DE0", VA = "0x3FE6DE0")]
        public static SafeFloat operator --(SafeFloat f1)
        {
            return default(SafeFloat);
        }

        // Token: 0x04000009 RID: 9
        [Token(Token = "0x4000009")]
        [FieldOffset(Offset = "0x0")]
        private float offset;

        // Token: 0x0400000A RID: 10
        [Token(Token = "0x400000A")]
        [FieldOffset(Offset = "0x4")]
        private float value;
    }
}

I already have the script that uses the obscured value here on the site, how can I change it to work with a safe float?
this is my code that i modified but it doesn't work

C++:
union intfloat {
    int i;
    float f;
};

/*
Get the real value of an ObscuredInt.
Parameters:
    - location: the location of the ObscuredInt
*/
int GetObscuredIntValue(uint64_t location){
    int cryptoKey = *(int *)location;
    int obfuscatedValue = *(int *)(location + 0x4);

    return obfuscatedValue ^ cryptoKey;
}

/*
Set the real value of an ObscuredInt.
Parameters:
    - location: the location of the ObscuredInt
    - value: the value we're setting the ObscuredInt to
*/
void SetObscuredIntValue(uint64_t location, int value){
    int cryptoKey = *(int *)location;

    *(int *)(location + 0x4) = value ^ cryptoKey;
}

/*
Get the real value of an ObscuredFloat.
Parameters:
    - location: the location of the ObscuredFloat
*/
float GetObscuredSafeFloatValue(uint64_t location){
    int cryptoKey = *(int *)location;
    int obfuscatedValue = *(int *)(location + 0x4);

    /* use this intfloat to set the integer representation of our parameter value, which will also set the float value */
    intfloat IF;
    IF.i = obfuscatedValue ^ cryptoKey;

    return IF.f;
}

/*
Set the real value of an ObscuredFloat.
Parameters:
    - location: the location of the ObscuredFloat
    - value: the value we're setting the ObscuredFloat to
*/
void SetObscuredSafeFloatValue(uint64_t location, float value){
    int cryptoKey = *(int *)location;

    /* use this intfloat to get the integer representation of our parameter value */
    intfloat IF;
    IF.f = value;

    /* use this intfloat to generate our hacked ObscuredFloat */
    intfloat IF2;
    IF2.i = IF.i ^ cryptoKey;

    *(float *)(location + 0x4) = IF2.f;
}