I am beginner and I am trying to hack the game Pocket Mortys, the game is like pokemon where IVs are randomly generated from 1-16. I want to hack this part of the game but I haven't been successful. I've loaded up the game into IDA and found the code for the function that generates these IV's, here it is
MortyData$$GenerateIVs ; CODE XREF: MortyData$$.ctor:loc_2690A8↑p
il2cpp:000000000026A9C4 ; DATA XREF: __data:000000000317E3B8↓o
il2cpp:000000000026A9C4
il2cpp:000000000026A9C4 var_20 = -0x20
il2cpp:000000000026A9C4 var_10 = -0x10
il2cpp:000000000026A9C4 var_s0 = 0
il2cpp:000000000026A9C4
il2cpp:000000000026A9C4 STP X22, X21, [SP,#-0x10+var_20]!
il2cpp:000000000026A9C8 STP X20, X19, [SP,#0x20+var_10]
il2cpp:000000000026A9CC STP X29, X30, [SP,#0x20+var_s0]
il2cpp:000000000026A9D0 ADD X29, SP, #0x20
il2cpp:000000000026A9D4 MOV X20, X2
il2cpp:000000000026A9D8 MOV X21, X1
il2cpp:000000000026A9DC MOV X19, X0
il2cpp:000000000026A9E0 ADRP X22, #byte_3357212@PAGE
il2cpp:000000000026A9E4 LDRB W8, [X22,#byte_3357212@PAGEOFF]
il2cpp:000000000026A9E8 TBNZ W8, #0, loc_26AA00
il2cpp:000000000026A9EC ADRL X0, StringLiteral_7959 ; MortyDefault
il2cpp:000000000026A9F4 BL sub_25F7DF4
il2cpp:000000000026A9F8 MOV W8, #1
il2cpp:000000000026A9FC STRB W8, [X22,#byte_3357212@PAGEOFF]
il2cpp:000000000026AA00
il2cpp:000000000026AA00 loc_26AA00 ; CODE XREF: MortyData$$GenerateIVs+24↑j
il2cpp:000000000026AA00 LDR X0, [X19,#0x10]
il2cpp:000000000026AA04 CBZ X0, loc_26AAA8
il2cpp:000000000026AA08 ADRL X8, StringLiteral_7959 ; MortyDefault
il2cpp:000000000026AA10 LDR X1, [X8] ; MortyDefault
il2cpp:000000000026AA14 MOV X2, #0
il2cpp:000000000026AA18 BL System.String$$Equals_17774564
il2cpp:000000000026AA1C CBZ W0, loc_26AA2C
il2cpp:000000000026AA20 STP W20, W20, [X19,#0x54]
il2cpp:000000000026AA24 MOV X8, X20
il2cpp:000000000026AA28 B loc_26AA90
il2cpp:000000000026AA2C ; ---------------------------------------------------------------------------
il2cpp:000000000026AA2C
il2cpp:000000000026AA2C loc_26AA2C ; CODE XREF: MortyData$$GenerateIVs+58↑j
il2cpp:000000000026AA2C ADD W20, W20, #1
il2cpp:000000000026AA30 MOV X0, X21
il2cpp:000000000026AA34 MOV X1, X20
il2cpp:000000000026AA38 MOV X2, #0
il2cpp:000000000026AA3C BL UnityEngine.Random$$Range_16731460
il2cpp:000000000026AA40 STR W0, [X19,#0x54]
il2cpp:000000000026AA44 MOV X0, X21
il2cpp:000000000026AA48 MOV X1, X20
il2cpp:000000000026AA4C MOV X2, #0
il2cpp:000000000026AA50 BL UnityEngine.Random$$Range_16731460
il2cpp:000000000026AA54 STR W0, [X19,#0x58]
il2cpp:000000000026AA58 MOV X0, X21
il2cpp:000000000026AA5C MOV X1, X20
il2cpp:000000000026AA60 MOV X2, #0
il2cpp:000000000026AA64 BL UnityEngine.Random$$Range_16731460
il2cpp:000000000026AA68 MOV X20, X0
il2cpp:000000000026AA6C LDP W8, W9, [X19,#0x54]
il2cpp:000000000026AA70 ADD W8, W8, W0
il2cpp:000000000026AA74 ADD W8, W8, W9
il2cpp:000000000026AA78 MOV W9, #0x55555556
il2cpp:000000000026AA80 SMULL X8, W8, W9
il2cpp:000000000026AA84 LSR X9, X8, #0x3F ; '?'
il2cpp:000000000026AA88 LSR X8, X8, #0x20 ; ' '
il2cpp:000000000026AA8C ADD W8, W8, W9
il2cpp:000000000026AA90
il2cpp:000000000026AA90 loc_26AA90 ; CODE XREF: MortyData$$GenerateIVs+64↑j
il2cpp:000000000026AA90 STR W20, [X19,#0x5C]
il2cpp:000000000026AA94 STR W8, [X19,#0x50]
il2cpp:000000000026AA98 LDP X29, X30, [SP,#0x20+var_s0]
il2cpp:000000000026AA9C LDP X20, X19, [SP,#0x20+var_10]
il2cpp:000000000026AAA0 LDP X22, X21, [SP+0x20+var_20],#0x30
il2cpp:000000000026AAA4 RET
il2cpp:000000000026AAA8 ; ---------------------------------------------------------------------------
il2cpp:000000000026AAA8
il2cpp:000000000026AAA8 loc_26AAA8 ; CODE XREF: MortyData$$GenerateIVs+40↑j
il2cpp:000000000026AAA8 BL sub_25F7F08
il2cpp:000000000026AAA8 ; End of function MortyData$$GenerateIVs
I have tried the following: Changing the first two BL UnityEngine.Random$$Range_16731460 functions to MOV W0, #16 and the third one to MOV X0, #16. I have done this using IGG's LIve Offset Patcher, and replacing the binary file with the modified one, in both occasions my game instantly crashes or after I turn the patches on in IGG.
After that didn't work I went to code for the function UnityEngine.Random$$Range_16731460, here it is
il2cpp:0000000000FF4D44 UnityEngine.Random$$Range_16731460 ; CODE XREF: AssetBundleDefs$$AppendPathWithAntiCache+50↑p
il2cpp:0000000000FF4D44 ; AudioController$$PlayRndSFX+EC↑p ...
il2cpp:0000000000FF4D44
il2cpp:0000000000FF4D44 var_20 = -0x20
il2cpp:0000000000FF4D44 var_10 = -0x10
il2cpp:0000000000FF4D44 var_s0 = 0
il2cpp:0000000000FF4D44
il2cpp:0000000000FF4D44 STP X22, X21, [SP,#-0x10+var_20]!
il2cpp:0000000000FF4D48 STP X20, X19, [SP,#0x20+var_10]
il2cpp:0000000000FF4D4C STP X29, X30, [SP,#0x20+var_s0]
il2cpp:0000000000FF4D50 ADD X29, SP, #0x20
il2cpp:0000000000FF4D54 MOV X19, X1
il2cpp:0000000000FF4D58 MOV X20, X0
il2cpp:0000000000FF4D5C ADRP X21, #qword_335E128@PAGE
il2cpp:0000000000FF4D60 LDR X2, [X21,#qword_335E128@PAGEOFF]
il2cpp:0000000000FF4D64 CBNZ X2, loc_FF4D7C
il2cpp:0000000000FF4D68 ADRL X0, aUnityengineRan_0 ; "UnityEngine.Random::RandomRangeInt(Syst"...
il2cpp:0000000000FF4D70 BL sub_25F7DAC
il2cpp:0000000000FF4D74 MOV X2, X0
il2cpp:0000000000FF4D78 STR X0, [X21,#qword_335E128@PAGEOFF]
il2cpp:0000000000FF4D7C
il2cpp:0000000000FF4D7C loc_FF4D7C ; CODE XREF: UnityEngine.Random$$Range_16731460+20↑j
il2cpp:0000000000FF4D7C MOV X0, X20
il2cpp:0000000000FF4D80 MOV X1, X19
il2cpp:0000000000FF4D84 LDP X29, X30, [SP,#0x20+var_s0]
il2cpp:0000000000FF4D88 LDP X20, X19, [SP,#0x20+var_10]
il2cpp:0000000000FF4D8C LDP X22, X21, [SP+0x20+var_20],#0x30
il2cpp:0000000000FF4D90 BR X2
il2cpp:0000000000FF4D90 ; End of function UnityEngine.Random$$Range_16731460
I really don't know what I can do to this function help me but here it is in case anyone has an idea. If anyone can help or if i'm doing something wrong please let me know!