Il2CppInspector | Powerful automated tool for reverse engineering Unity IL2CPP binaries | Reverse Engineering library
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
Support
Il2CppInspector has a medium active ecosystem.
It has 2162 star(s) with 352 fork(s). There are 68 watchers for this library.
It had no major release in the last 12 months.
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.
It has a neutral sentiment in the developer community.
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
Quality
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
Security
Il2CppInspector has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
Il2CppInspector code analysis shows 0 unresolved vulnerabilities.
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
License
Il2CppInspector is licensed under the AGPL-3.0 License. This license is Strong Copyleft.
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
Reuse
Il2CppInspector releases are available to install and integrate.
Installation instructions, examples and code snippets are available.
It has 145 lines of code, 20 functions and 174 files.
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
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
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?
Trending Discussions on Il2CppInspector
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:16Export 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);
}
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.
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:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesExplore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits
Save this library and start creating your kit
Share this Page
Reuse Trending Solutions