[Android Q&A, Help & Troubleshooting] Acer2k5:
Hi Native Modder or Developer.

This thead i create for way to find the most accurate offset to use modding game or app. Let's begin

ForExample:

I want to find offset which can modify my character damage deal to enemy.

i find some offset to modify damage deal but i don't think these offset can modify.

Here is few offset i find.

// RVA: 0xCA0888 Offset: 0xCA0888 VA: 0xCA0888
public static long GetFinalDamagePec(int abilityID, int hitIndex, int attributeID, int skillID) { }

// RVA: 0xCA0C80 Offset: 0xCA0C80 VA: 0xCA0C80
public static long GetFinalAttackValue(int attributeID) { }

// RVA: 0xCA0D18 Offset: 0xCA0D18 VA: 0xCA0D18
public static long GetFinalCritRate(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA0D58 Offset: 0xCA0D58 VA: 0xCA0D58
public static long GetFinalCritDamagePercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA0DA4 Offset: 0xCA0DA4 VA: 0xCA0DA4
public static long GetCharAttackRangeTypeDamagePercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA0ED0 Offset: 0xCA0ED0 VA: 0xCA0ED0
public static long GetElementDamagePercent(int abilityID, int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA1000 Offset: 0xCA1000 VA: 0xCA1000
public static long GetRaceDamagePercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA125C Offset: 0xCA125C VA: 0xCA125C
public static long GetAttackerRaceDamageReduction(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA1390 Offset: 0xCA1390 VA: 0xCA1390
public static long GetMonsterTypeDamagePercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA1450 Offset: 0xCA1450 VA: 0xCA1450
public static long GetAttackerMonsterTypeDamageReduction(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA14E0 Offset: 0xCA14E0 VA: 0xCA14E0
public static long GetCommonDamagePercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA15B8 Offset: 0xCA15B8 VA: 0xCA15B8
public static long GetSkillTypeDamagePercent(int ablityID, int skillID, int attributeIDOfAttacker) { }

// RVA: 0xCA1920 Offset: 0xCA1920 VA: 0xCA1920
public static long GetDefenseReductionPercent(int attributeIDOfAttacker, int attributeIDOfTarget) { }

// RVA: 0xCA1BCC Offset: 0xCA1BCC VA: 0xCA1BCC
public static long GetCommonReductionPercent(int attributeIDOfTarget) { }

// RVA: 0xCA1BEC Offset: 0xCA1BEC VA: 0xCA1BEC
public static long GetSystemDamageBonus(int attributeIDOfAttacker) { }

// RVA: 0xCA1BFC Offset: 0xCA1BFC VA: 0xCA1BFC
public static long GetSkillIBonus(int abilityID, int attributeID, int skillID) { }

// RVA: 0xCA1D38 Offset: 0xCA1D38 VA: 0xCA1D38
public static long CalAllDamageBonus(long damage, int attributeIDOfAttacker, int attributeIDOfTarget, int abilityID, int skillID) { }

// RVA: 0xCA2790 Offset: 0xCA2790 VA: 0xCA2790
public static long CalcDamage(int abilityID, int skillID, int attributeIDOfAttacker, int attributeIDOfTarget, int hitIndex) { }

// RVA: 0xCA262C Offset: 0xCA262C VA: 0xCA262C
public static long ClampPositive(long param) { }

// RVA: 0xCA264C Offset: 0xCA264C VA: 0xCA264C
public static long GetResult(long baseAttackValue, long min = 99, long max = 101) { }

// RVA: 0x312C99C Offset: 0x312C99C VA: 0x312C99C
private void OnCalcDamageEventHandler(DamageEventParam obj) { }

// RVA: 0xCA2790 Offset: 0xCA2790 VA: 0xCA2790
public static long CalcDamage(int abilityID, int skillID, int attributeIDOfAttacker, int attributeIDOfTarget, int hitIndex) { }

// RVA: 0x111940C Offset: 0x111940C VA: 0x111940C
public int get_SkillDamageType() { }

// RVA: 0x1119414 Offset: 0x1119414 VA: 0x1119414
public void set_SkillDamageType(int value) { }

// RVA: 0x1119454 Offset: 0x1119454 VA: 0x1119454
public RepeatedField<int> get_HighDamageIndex() { }

// RVA: 0x111AFF0 Offset: 0x111AFF0 VA: 0x111AFF0
public RepeatedField<int> get_HitDamagePec() { }

// RVA: 0x111AFF8 Offset: 0x111AFF8 VA: 0x111AFF8
public RepeatedField<int> get_HitDamageGrp() { }

// RVA: 0x10BDD3C Offset: 0x10BDD3C VA: 0x10BDD3C
public EffectType get_DamageEffectType() { }

// RVA: 0x10BDD44 Offset: 0x10BDD44 VA: 0x10BDD44
public void set_DamageEffectType(EffectType value) { }

// RVA: 0x10BDD4C Offset: 0x10BDD4C VA: 0x10BDD4C
public int get_DamageEffectValue() { }

// RVA: 0x10BDD54 Offset: 0x10BDD54 VA: 0x10BDD54
public void set_DamageEffectValue(int value) { }

[CompilerGenerated]
// RVA: 0x3275CE4 Offset: 0x3275CE4 VA: 0x3275CE4
public void set_mBeforeCalcDamageEvent(Action<DamageEventParam> value) { }

I found these offset in dump.cs file but you can find in DummyDll folder or .dll file with dnspy. The dump.cs file and .dll file i upload below, you can download to search offset.