What's new
  • If you have problems with your VIP upgrade send a photo of your bill directly to @Rito at here, he will assist you in the fastest. Do not worry!!!

anyone know what are the purpose of it?!

WHITE DRAGON

New member
Joined
Jul 12, 2020
Messages
4
Points
3
Age
27
Website
www.youtube.com
what are those used for or what is the purpose of it need to know??!



Force Int or Float into a field: C#

//float
private void setFieldF()
{
fieldF = 1000F;
}

public float fieldF;

//int
private void setFieldI()
{
fieldI = 1000;
}

public int fieldI;
Force Int or Float into a field: IDA Arm

Get your field offset from your generated dump.cs from Il2CppDumper by Prefare.

//float field
MOV R1, #0x447A
STR R1, [R0,#0x10] // replace "0x10" with your field offset inside of dump.cs
BX LR
hex -> 7A 14 04 E3 10 10 80 E5 1E FF 2F E1

//int field
MOV R1, #1000
STR R1, [R0,#0x14] // replace "0x14" with your field offset inside of dump.cs
BX LR
hex -> FA 1F A0 E3 14 10 80 E5 1E FF 2F E1




Force Return with Parameters: C#

// 1 Parameter
private string Param1(string one)
{
return one;
}

//2 Parameters
private int Param2(int one, int two)
{
return two;
}

//3 Parameters
private int Param2(float one, float two, float three)
{
return three;
}
Force Return with Parameters: IDA Arm

It does not matter if the function is string, int, or float, if the function is the same type as the parameter then it will be the same arm code regardless.

//1 Parameter
MOV R0, R1
BX LR
hex -> 01 00 A0 E1 1E FF 2F E1
//2 Parameters
MOV R0, R2
BX LR
hex -> 02 00 A0 E1 1E FF 2F E1
//3 Parameters
MOV R0, R3
BX LR
hex -> 03 00 A0 E1 1E FF 2F E1
//if the function has more than 3 parameters then reolace the second "R" with said parameter number
Example: 7 Parameters
MOV R0, R7
BX LR
hex -> 07 00 A0 E1 1E FF 2F E1
Example: 5 Parameters
MOV R0, R5
BX LR
hex -> 05 00 A0 E1 1E FF 2F E1




Force end an IEnumertor/IEnumerable: C#

private IEnumerator setYielEnumerator()
{
yield break;
}

private IEnumerable setYieldEnumerable()
{
yield break;
}
Force end an IEnumertor/IEnumerable: IDA Arm

Using BX LR to end an IEnumertor or IEnumerable is wrong. Go to dump.cs and find the IEnumertor or IEnumerable function

Say for example dump.cs says this

private IEnumerator setYielEnumerator(); // 0xOFFSET
or

private IEnumerable setYieldEnumerable(); // 0xOFFSET
Find the "sealed class" that has the function name in the class name

Example

// Namespace:
private sealed class <setYielEnumerator>c__Iterator0 : IEnumerator, IDisposable, IEnumerator`1<object> // TypeDefIndex: 1446
{
// Fields
internal object $current; // 0x8
internal bool $disposing; // 0xC
internal int $PC; // 0x10

// Methods
public void .ctor(); // 0xOFFSET
public bool MoveNext(); // 0xOFFSET
private object System.Collections.Generic.IEnumerator<object>.get_Current(); // 0xOFFSET
private object System.Collections.IEnumerator.get_Current(); // 0xOFFSET
public void Dispose(); // 0xOFFSET
public void Reset(); // 0xOFFSET
}

// Namespace:
private sealed class <setYieldEnumerable>c__Iterator1 : IEnumerable, IEnumerable`1<object>, IEnumerator, IDisposable, IEnumerator`1<object> // TypeDefIndex: 1447
{
// Fields
internal object $current; // 0x8
internal bool $disposing; // 0xC
internal int $PC; // 0x10

// Methods
public void .ctor(); // 0xOFFSET
public bool MoveNext(); // 0xOFFSET
private object System.Collections.Generic.IEnumerator<object>.get_Current(); // 0xOFFSET
private object System.Collections.IEnumerator.get_Current(); // 0xOFFSET
public void Dispose(); // 0xOFFSET
public void Reset(); // 0xOFFSET
private IEnumerator System.Collections.IEnumerable.GetEnumerator(); // 0xOFFSET
private IEnumerator`1<object> System.Collections.Generic.IEnumerable<object>.GetEnumerator(); // 0xOFFSET
}
Go to the offset of MoveNext()

public bool MoveNext(); // 0xOFFSET
And write this in hex editor

MOV R1, #0xFFFFFFFF
STR R1, [R0,#0x10]
MOV R0, #0
BX LR
hex -> 00 10 E0 E3 10 10 80 E5 00 00 A0 E3 1E FF 2F E1
//same hex for both IEnumertor and IEnumerable
 

Game Hack Similar

Back
Top