Giter Site home page Giter Site logo

libil2cpp's Introduction

libil2cpp

Collection of source code for Unity IL2CPP

All code in libil2cpp is dumped directly from the Unity installer (Windows)

Version Reference

List of IL2CPP versions corresponding to Unity versions

How to determine Unity version?

In Unity products, there are numerous resource files, including Unity engine default resources and custom resources added by developers. Default resources are typically not encrypted, but custom resources may be. These files contain information about the version of Unity used to build the project.

To obtain this information, read the file using a hex editor (e.g. 010 Editor or ImHex). In the following example, we read the unity default resources file. Near the beginning of the file, 2021.3.20f1 indicates the Unity version. According to Version Reference, the corresponding IL2CPP version is 29.

Example

  • Part of file unity default resources
00000000  00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 00  |................|
00000010  00 00 00 00 00 00 09 09 00 00 00 00 00 40 6C D8  |.............@l.|
00000020  00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00  |................|
00000030  32 30 32 31 2E 33 2E 32 30 66 31 00 0D 00 00 00  |2021.3.20f1.....|
00000040  00 09 00 00 00 73 00 00 00 00 FF FF F4 6E 8E 30  |.....s.......n.0|

Anecdote

  • Unity 4.6.2f1 introduced IL2CPP, but only for the iOS platform.
  • Unity 5.2.0f2 included experimental IL2CPP support for other platforms, which became formally supported in Unity 5.3.0f4.
  • The IL2CPP header file was added in Unity 4.6.5f1.
  • The IL2CPP source code appeared in Unity 4.6.9f1 but was removed in Unity 5.0.1p1.
  • After Unity 5.2.1p3 (except for Unity 5.3.0b1), the IL2CPP source code has always been present.
  • The first public version of IL2CPP was 16.
  • In Unity, both IL2CPP and Mono use global-metadata.dat. IL2CPP refers to it as GlobalMetadata, while Mono calls it GlobalMonoMetadata, with a version of 1.
  • The IL2CPP_ASSERT function (formerly assert) for validating the header contents of global-metadata.dat does not work in non-debug builds.

Also see

Credits

libil2cpp's People

Contributors

mlgmxyysd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.