📖 Tutorial What is IL2CPP? (Information/Guide)

Sbenny.com is trusted by 1,313,281 happy users since 2014.
Register

LolHappy

In Love Lv4️⃣
Active User
Member for 5 years
First Things First:
IL (Intermediate Language) 2 (TO) CPP (C++)
Is a Unity conversion/generation of C# code to C++ code saved as a Shared Library (.so).

The reason for converting C# code to C++ by Unity is that C# is Single-Threading while C++ code is Multi-Threading (think of it like Multiple Tasks vs Singular- one at a time tasks)- which makes C++ faster.
And it’s also because Unity is coded (the program) in C++ not based off C#.

MSIL/CIL is an Assembly language. Both Java and C# use MSIL/CIL (same thing but CIL is Common Intermediate Language, and MSIL is an older name - Microsoft Intermediate Language). C# and Java are more readable forms of the Assembly Version of CIL.

If you make a MOD Menu for C#, you could code it into C++ using IL2CPP, but you would NOT be sure that it would work with the code. The reason being is that the code could differ when generated. This is the reason that when you do reverse IL2CPP (ex. Il2cppDumper) you can’t just run the game as it is generated- you can’t be sure it generated the same code as the source code.
Even if you did put it back through IL2CPP again to convert it to C++ it probably wouldn’t be the same.

This is why it is generally preferred to use dnSpy (view C# DLL File Code) and edit using Hex Editors, or there is the method of using IDA to view the IL Assembly Code.

The reason it may be valuable of your time to learn IL is to use IDA as a secondary reference because it may be easier in the long run to use it for comparison to Hex than dnSpy where you would need to convert it. (ESPECIALLY IF IL2CPP DUMPER CAN’T DUMP THE DLLS!!!)
Post automatically merged:

I made this cuz I was bored
 
Top