public struct Boards {
// Token: 0x040006C4 RID: 1732
[Token(Token = "0x4000669")]
[FieldOffset(Offset = "0x0")]
public string description;
// Token: 0x040006C5 RID: 1733
[Token(Token = "0x400066A")]
[FieldOffset(Offset = "0x4")]
public string boardTex;
// Token: 0x040006C6 RID: 1734
[Token(Token = "0x400066B")]
[FieldOffset(Offset = "0x8")]
public int coinCost;
// Token: 0x040006C7 RID: 1735
[Token(Token = "0x400066C")]
[FieldOffset(Offset = "0xC")]
public int sodaCost;
// Token: 0x040006C8 RID: 1736
[Token(Token = "0x400066D")]
[FieldOffset(Offset = "0x10")]
public bool isAvailableToPlayers;
// Token: 0x040006C9 RID: 1737
[Token(Token = "0x400066E")]
[FieldOffset(Offset = "0x14")]
public PerkType perkType;
// Token: 0x040006CA RID: 1738
[Token(Token = "0x400066F")]
[FieldOffset(Offset = "0x18")]
public float perkAmount;
}
[Address(RVA = "0x411D7C", Offset = "0x411D7C", VA = "0x411D7C")]
private void SetBoard(Boards board) { }
[Address(RVA = "0x209D98", Offset = "0x209D98", VA = "0x209D98")]
private void SetBoard(Boards board) { }
[FieldOffset(Offset = "0x54")]
public Boards[] boards;
I'm using FindObjectOfType but it's still not working, the value doesn't change in game
C++:void (*old_RoomSettings_OnUpdate)(void *instance); void RoomSettings_OnUpdate(void *instance) { if(instance!=nullptr) { void *type = GetType(CreateString("PlayerInfo")); void *object = FindObjectOfType(type); if (object!=nullptr) { *(int *)((uint64_t) object + 0x24) = 999999; } } old_RoomSettings_OnUpdate(instance); }
It's working fine for some field offsets like ammo, but not working at all for others such as money. I tested the int money field offset with game guardian and it works fine
// RVA: 0x10B0510 Offset: 0x10B0510 VA: 0x10B0510Have I hooked the methods correctly?
C++:void *(*Find_Object_Of_Type)(void*); void *(*Get_Type)(monoString*); void *FindObjectOfType(void* Type) { return Find_Object_Of_Type(Type); } void *GetType(monoString* Type) { return Get_Type(Type); } // Hackthread Find_Object_Of_Type = (void*(*)(void*)) getAbsoluteAddress(targetLibName, 0x1C55DE4); // UnityEngine.CoreModule - UnityEngine - Object - FindObjectOfType(Type type) Get_Type = (void*(*)(monoString*)) getAbsoluteAddress(targetLibName, 0x13CFCE0); // mscorlib - Sysytem - Type - GetType(string typeName)
The offsets are correct
me too
Hello brother, can you please upload the lgl mod menu 2.9 you used? I would really appreciate it. I always get CreateMonoString errors the 3.2 version I'm using. If it's convenient, please upload it and I would be very grateful to you.update: Im Trying To get the instance of another class using FindObjectOfType of Unity Engine
monoArray struct
C++:template <typename T> struct monoArray { void* klass; void* monitor; void* bounds; int max_length; void* vector[1]; int getLength() { return max_length; } T getPointer() { return (T)vector; } };
making the function pointer of this:
C#:// RVA: 0xA37D1C Offset: 0xA37D1C VA: 0xA37D1C public static Type GetType(string typeName) { } // RVA: 0xD007B4 Offset: 0xD007B4 VA: 0xD007B4 public static Object[] FindObjectsOfType(Type type) { }
function pointer:
C++:monoArray<void**>* FindObjectsOfType(void* Type) { static const auto green_fn = (monoArray<void**>*(*)(void*)) (getAbsoluteAddress("libil2cpp.so", 0xD007B4)); //Offset return green_fn(Type); } void *GetType(monoString* Type) { static const auto fn = (void* (*)(monoString*)) (getAbsoluteAddress("libil2cpp.so", 0xA37D1C)); //Offset return fn(Type); }
My Hook
C++:bool debug; void (*old_MainMenu_update)(void *instance); void MainMenu_update(void *instance) { if (instance != NULL && debug) { monoArray<void**>* objMaterial = FindObjectsOfType(GetType(CreateMonoString("BalanceMeterLogic"))); if(objMaterial != NULL) { int length = objMaterial->getLength(); void **objects = objMaterial->getPointer(); for (int x = 0; x < length; x++) { void *object = objects[x]; if (object != NULL) { *(bool*)((uint64_t)object + 0x8) = false; } } } } return old_MainMenu_update(instance); } //HackThread HOOK_LIB("libil2cpp.so", "0x201EF8", MainMenu_update, old_MainMenu_update); //switch case case 11: debug = boolean; break; }
what went wrong?
info: im using lgl mod menu 2.9
Reference: Find Instance of any class, fields, methods (numark)
i also use lgl 3.2Hello brother, can you please upload the lgl mod menu 2.9 you used? I would really appreciate it. I always get CreateMonoString errors the 3.2 version I'm using. If it's convenient, please upload it and I would be very grateful to you.
We use cookies to personalize content and ads, to provide social media features and to analyse our traffic. We also share necessary information with our advertising and analytics partners to optimize your experience on our site.
Learn more about cookies
We use cookies to personalize content and ads, to provide social media features and to analyse our traffic. We also share necessary information with our advertising and analytics partners to optimize your experience on our site.
Learn more about cookies