Il2CppInspector | Powerful automated tool for reverse engineering Unity IL2CPP binaries | Reverse Engineering library

 by   djkaty C Version: 2021.1 License: AGPL-3.0

kandi X-RAY | Il2CppInspector Summary

Il2CppInspector is a C library typically used in Utilities, Reverse Engineering, Unity applications. Il2CppInspector has no bugs, it has no vulnerabilities, it has a Strong Copyleft License and it has medium support. You can download it from GitHub.
Il2CppInspector helps you to reverse engineer IL2CPP applications, providing the most complete analysis currently available.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        Il2CppInspector has a medium active ecosystem.
                        summary
                        It has 2162 star(s) with 352 fork(s). There are 68 watchers for this library.
                        summary
                        It had no major release in the last 12 months.
                        summary
                        There are 52 open issues and 132 have been closed. On average issues are closed in 15 days. There are 6 open pull requests and 0 closed requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of Il2CppInspector is 2021.1
                        Il2CppInspector Support
                          Best in #Reverse Engineering
                            Average in #Reverse Engineering
                            Il2CppInspector Support
                              Best in #Reverse Engineering
                                Average in #Reverse Engineering

                                  kandi-Quality Quality

                                    summary
                                    Il2CppInspector has 0 bugs and 0 code smells.
                                    Il2CppInspector Quality
                                      Best in #Reverse Engineering
                                        Average in #Reverse Engineering
                                        Il2CppInspector Quality
                                          Best in #Reverse Engineering
                                            Average in #Reverse Engineering

                                              kandi-Security Security

                                                summary
                                                Il2CppInspector has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                summary
                                                Il2CppInspector code analysis shows 0 unresolved vulnerabilities.
                                                summary
                                                There are 0 security hotspots that need review.
                                                Il2CppInspector Security
                                                  Best in #Reverse Engineering
                                                    Average in #Reverse Engineering
                                                    Il2CppInspector Security
                                                      Best in #Reverse Engineering
                                                        Average in #Reverse Engineering

                                                          kandi-License License

                                                            summary
                                                            Il2CppInspector is licensed under the AGPL-3.0 License. This license is Strong Copyleft.
                                                            summary
                                                            Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.
                                                            Il2CppInspector License
                                                              Best in #Reverse Engineering
                                                                Average in #Reverse Engineering
                                                                Il2CppInspector License
                                                                  Best in #Reverse Engineering
                                                                    Average in #Reverse Engineering

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        Il2CppInspector releases are available to install and integrate.
                                                                        summary
                                                                        Installation instructions, examples and code snippets are available.
                                                                        summary
                                                                        It has 145 lines of code, 20 functions and 174 files.
                                                                        summary
                                                                        It has low code complexity. Code complexity directly impacts maintainability of the code.
                                                                        Il2CppInspector Reuse
                                                                          Best in #Reverse Engineering
                                                                            Average in #Reverse Engineering
                                                                            Il2CppInspector Reuse
                                                                              Best in #Reverse Engineering
                                                                                Average in #Reverse Engineering
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
                                                                                  Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
                                                                                  Get all kandi verified functions for this library.
                                                                                  Get all kandi verified functions for this library.

                                                                                  Il2CppInspector Key Features

                                                                                  Output IL2CPP type definitions, metadata and method pointers as C# stub code
                                                                                  Create .NET assembly shim DLLs containing the IL2CPP application structure and metadata for use in decompilers such as ILSpy, dnSpy, Unity asset loading with AssetStudio or managed proxy generation with Il2CppAssemblyUnhollower
                                                                                  Create C++ scaffolding for all types, methods, function pointers and API functions in an IL2CPP application for use in x64dbg, Cydia Substrate etc.
                                                                                  Create IDA and Ghidra Python scripts to populate symbol, function and type information; includes API hooks to implement scripts for other targets
                                                                                  Create Visual Studio C++ DLL injection projects directly from IL2CPP files
                                                                                  Create Visual Studio C# code stub solutions directly from IL2CPP files
                                                                                  Create JSON metadata with a complete address map directly from IL2CPP Files.
                                                                                  Create IL2CPP binaries from arbitrary C# source code without a Unity project
                                                                                  Three major APIs for use in your own custom static analysis projects for querying low level binary metadata, the .NET type model and the whole C++ application. These are also available as a NuGet Package.
                                                                                  Plugin SDK allows you to create custom plugins to extend Il2CppInspector's capabilities
                                                                                  Defeats certain types of obfuscation Most types of packed PE files (Windows DLLs) ROT encryption of API export names Beebyte symbol obfuscation via automated differential analysis (requires Beebyte Deobfuscator plugin and an earlier unobfuscated IL2CPP or Mono version of the title) XOR encryption style used in games such as Arknights and Call of Duty: Mobile Striped XOR encryption style used in games such as Garena Free Fire, League of Legends: Wild Rift and Legends of Runeterra String encryption style used in games such as League of Legends: Wild Rift Reordering of registration metadata used in titles by Riot Games Encryption/obfuscation used in titles by miHoYo (Honkai Impact 3rd and Genshin Impact) (requires miHoYo plugin) For other supported obfuscated titles, see the list of loader plugins Deobfuscated metadata and binary files can be saved back to disk
                                                                                  Supports all major file formats and processor architectures
                                                                                  Works on Windows, MacOS X and Linux. Integrated GUI for Windows users with drag & drop support
                                                                                  Tested with every release of IL2CPP since Unity 5.3.0

                                                                                  Il2CppInspector Examples and Code Snippets

                                                                                  No Code Snippets are available at this moment for Il2CppInspector.
                                                                                  Community Discussions

                                                                                  Trending Discussions on Il2CppInspector

                                                                                  How do I convert a std::string to System.String in C++ with Il2CppInspector?
                                                                                  chevron right

                                                                                  QUESTION

                                                                                  How do I convert a std::string to System.String in C++ with Il2CppInspector?
                                                                                  Asked 2021-May-15 at 03:16

                                                                                  I am using Il2CppInspector to generate scaffolding for a Unity game. I am able to convert System.String (app::String in Il2CppInspector) to std::string using the functions provided below.

                                                                                  How would I reverse this process; how do I convert a std::string to System.String?

                                                                                  helpers.cpp

                                                                                      // Helper function to convert Il2CppString to std::string
                                                                                      std::string il2cppi_to_string(Il2CppString* str) {
                                                                                          std::u16string u16(reinterpret_cast(str->chars));
                                                                                          return std::wstring_convert, char16_t>{}.to_bytes(u16);
                                                                                      }
                                                                                  
                                                                                      // Helper function to convert System.String to std::string
                                                                                      std::string il2cppi_to_string(app::String* str) {
                                                                                          return il2cppi_to_string(reinterpret_cast(str));
                                                                                      }
                                                                                  

                                                                                  In short, I am looking for a function that takes in a std::string and returns an app::String

                                                                                      // Helper function to convert std::string to System.String
                                                                                      app::String string_to_il2cppi(std::string str) {
                                                                                          // Conversion code here
                                                                                      }
                                                                                  

                                                                                  ANSWER

                                                                                  Answered 2021-May-15 at 03:16

                                                                                  Export Il2CppInspector with all namespaces, which will give you access to Marshal_PtrToStringAnsi.

                                                                                  app::String* string_to_il2cppi(std::string str) {
                                                                                      return app::Marshal_PtrToStringAnsi((void*)&str, NULL);
                                                                                  }
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/67464201

                                                                                  Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                  Vulnerabilities

                                                                                  No vulnerabilities reported

                                                                                  Install Il2CppInspector

                                                                                  Build the CLI and Windows GUI versions:.
                                                                                  Three Powershell scripts are provided to enable easy building and testing of IL2CPP binaries:. builds each C# source file ìnto a .NET assembly DLL, a C++ source folder and one IL2CPP binary per supported architecture. builds MyFirstTest.cs into MyFirstTest.dll, creates a C++ source folder named MyFirstTest and an IL2CPP binary for each supported architecture. builds MyFirstTest.cs and MySecondTest.cs into individual assembly DLLs, C++ source folders and IL2CPP binaries, using Unity 2019.3.1f1. as above but specifies a custom path for your Unity installation. The minimum supported Unity version is 2017.1.0f3. To learn more about these features, see the section entitled Using Il2CppInspector to generate IL2CPP code in IL2CPP Reverse Engineering Part 1.
                                                                                  il2cpp.ps1 is the main workhorse and compiles each specified C# source file in TestSources (or all of them if none supplied) as a separate assembly, and outputs them to TestAssemblies. It then takes every specified assembly in TestAssemblies and compiles each one as a separate IL2CPP project for each of these architectures: Windows x86 standalone Windows x64 standalone Android ARMv7 (32-bit) Android ARMv8-A (64-bit) These are placed into the TestBinaries folder. The C++ source code for each build is placed into the TestCpp folder. It then calls generate-tests.ps1. Specify a comma-separated list of source files (without the .cs extension) to process as the first argument (or -assemblies). You can optionally specify a Unity version or Unity install path with the 2nd argument (or -unityVersion). If none is supplied, the latest installed Unity version will be used. You can also specify wildcards, eg. 2019* will use the latest installed version of Unity 2019, 2018.3* will use the latest installed version of Unity 2018.3 etc. Use Unity Hub to install the desired versions. Therefore with one command you can generate an assembly DLL, C++ source code and IL2CPP binary for each architecture for any given list of source files, one set of outputs per source file, for a specified version of Unity.
                                                                                  generate-tests.ps1 generates a file called Tests.cs in the Il2CppTests project, containing one test per IL2CPP project in TestBinaries. This file will be compiled by the Il2CppTests project. You will then be able to see one test per IL2CPP project in Visual Studio's Test Explorer. The auto-generated tests generate C#, JSON and C header files in the test IL2CPP binary's folder in TestBinaries (each filename prefixed with test) and compares them (whitespace-insensitive) with the corresponding project name files in TestExpectedResults. In this way, you can check for files with known structure that the analysis is being performed correctly, or step through the analysis of specific binaries in the debugger without having to change the project's command-line arguments.
                                                                                  update-expected-results.ps1 copies all of the output test results from TestBinaries into TestExpectedResults, therefore updating the files that will be used to verify correct test results.

                                                                                  Support

                                                                                  The current version of Il2CppInspector can output Python scripts targeting the IDA and Ghidra disassemblers. When Il2CppInspector generates such a script, it generates a concatenation of a shared block of code (Outputs/ScriptResources/shared-main.py) which parses the JSON metadata and dispatches it to a set of implementation-specific functions to be processed, and a block of code specific to the target application which implements these functions (a file from Outputs/ScriptResources/Targets).
                                                                                  Find more information at:
                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit

                                                                                  Share this Page

                                                                                  share link

                                                                                  Explore Related Topics

                                                                                  Reuse Pre-built Kits with Il2CppInspector

                                                                                  Consider Popular Reverse Engineering Libraries

                                                                                  ghidra

                                                                                  by NationalSecurityAgency

                                                                                  radare2

                                                                                  by radareorg

                                                                                  ILSpy

                                                                                  by icsharpcode

                                                                                  ImHex

                                                                                  by WerWolv

                                                                                  Try Top Libraries by djkaty

                                                                                  Bin2Object

                                                                                  by djkatyC#

                                                                                  DeepBot

                                                                                  by djkatyC#

                                                                                  AssetStudio

                                                                                  by djkatyC#

                                                                                  Compare Reverse Engineering Libraries with Highest Support

                                                                                  ghidra

                                                                                  by NationalSecurityAgency

                                                                                  radare2

                                                                                  by radareorg

                                                                                  ish

                                                                                  by ish-app

                                                                                  cuckoo

                                                                                  by cuckoosandbox

                                                                                  dynamorio

                                                                                  by DynamoRIO

                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit