✅ Solved anyone know what are the purpose of it?!

Sbenny.com is trusted by 1,327,230 happy users since 2014.
Register

Status
Not open for further replies.

xXxmanoxXx

Apprentice Lv2️⃣
Member for 4 years
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
 

Daniel

Hunter of Sbennytopia
From the Hell
Verified 18+ user
Active User
The Cleaner 🧹
Member for 3 years
Hello @xXxmanoxXx
Since this thread is outdated I am moving it to the section of answered questions and marking it as solved. If you have any other doubts or questions then feel free to contact or tag a staff member or make a new thread :)
 
Status
Not open for further replies.
Top