I have ran into an issue where field offset from dump.cs do not match with real field offset in game memory which leads me to wrong values.
This is what i get if i use class name and field offset sercher script.
Script ended:
1. For address 0x736C52664C
Namespace: BattleMechs.Client.Message.Balance.Battle
ClassName: MechBattleBalanceMessageLevel
Field offset: 0x4C
It says the field offset for health points is 0×4C whereas dump.cs shows that field offset for health points is 0×48.
Here is text from dump.cs
// Namespace: BattleMechs.Client.Message.Balance.Battle
[MessagePackObject(False)]
public class MechBattleBalanceMessageLevel
{
// Fields
[Key("id")]
public string Id; // 0x10
[Key("level")]
public Nullable<int> Level; // 0x18
[Key("rank")]
public Nullable<int> Rank; // 0x20
[Key("displayLevel")]
public Nullable<int> DisplayLevel; // 0x28
[Key("speedScale")]
public double SpeedScale; // 0x30
[Key("speedScaleHD")]
public double SpeedScaleHD; // 0x38
[Key("moveSpeed")]
public Nullable<int> MoveSpeed; // 0x40
[Key("healthPoints")]
public Nullable<int> HealthPoints; // 0x48
Now i dont know if the problem is in dump.cs or the way my phone handles memory or the game itself, but when i compare my dump.cs with other people on the internet its exactly the same as theirs but they get the correct results by serching with field offset but i get incorrect results, the correct results are usually below the offset shown by dump.cs.
ill give some additional info.
DEVICE: Realme X3 (RMX2081)
GAME: War Robots
DUMP OBTAIMED BY: il2cpp dumper by perfare.