From c0f360e71f59d9119654b79e96436f60e286eb94 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Thu, 26 Nov 2020 23:57:11 +0100 Subject: [PATCH] Update README.md and assembly versions --- .../Il2CppInspector.CLI.csproj | 2 +- Il2CppInspector.Common/Il2CppInspector.csproj | 2 +- .../Il2CppInspector.GUI.csproj | 2 +- README.md | 26 ++++++++++++++----- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Il2CppInspector.CLI/Il2CppInspector.CLI.csproj b/Il2CppInspector.CLI/Il2CppInspector.CLI.csproj index cf28fb3..6c58c43 100644 --- a/Il2CppInspector.CLI/Il2CppInspector.CLI.csproj +++ b/Il2CppInspector.CLI/Il2CppInspector.CLI.csproj @@ -8,7 +8,7 @@ true win-x64 false - 2020.2 + 2020.2.1 Noisy Cow Studios Il2CppInspector Command-Line Edition (c) 2017-2020 Katy Coe - www.djkaty.com - www.github.com/djkaty diff --git a/Il2CppInspector.Common/Il2CppInspector.csproj b/Il2CppInspector.Common/Il2CppInspector.csproj index 614c200..4dc2004 100644 --- a/Il2CppInspector.Common/Il2CppInspector.csproj +++ b/Il2CppInspector.Common/Il2CppInspector.csproj @@ -4,7 +4,7 @@ netstandard2.1 Il2CppInspector.Common Katy Coe - 2020.2 + 2020.2.1 Noisy Cow Studios Il2CppInspector Shared Library $(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage diff --git a/Il2CppInspector.GUI/Il2CppInspector.GUI.csproj b/Il2CppInspector.GUI/Il2CppInspector.GUI.csproj index 5ebf4b9..03a5cfa 100644 --- a/Il2CppInspector.GUI/Il2CppInspector.GUI.csproj +++ b/Il2CppInspector.GUI/Il2CppInspector.GUI.csproj @@ -8,7 +8,7 @@ win-x64 true Il2CppInspector - 2020.2 + 2020.2.1 Katy Coe Noisy Cow Studios Il2CppInspector Windows Edition diff --git a/README.md b/README.md index 16b123c..d993619 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Il2CppInspector 2020.2.1 beta +# Il2CppInspector 2020.2.1 Il2CppInspector helps you to reverse engineer IL2CPP applications, providing the most complete analysis currently available. @@ -16,13 +16,13 @@ Il2CppInspector helps you to reverse engineer IL2CPP applications, providing the * Create **[JSON metadata](#generating-json-metadata)** with a complete address map directly from IL2CPP Files. -* Create **[IL2CPP binaries from arbitrary C# source code without a Unity project](#generating-il2cpp-binaries-without-a-unity-project)** +* Create **[IL2CPP binaries from arbitrary C# source code without a Unity project](#universal-il2cpp-build-utility)** * **[Three major APIs](#using-the-apis-for-programmatic-analysis)** 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](https://www.nuget.org/packages/NoisyCowStudios.Il2CppInspector/). * Supports **all major file formats and processor architectures** -* Defeats certain types of basic obfuscation +* Defeats certain types of obfuscation * Works on Windows, MacOS X and Linux. **Integrated GUI** for Windows users with drag & drop support @@ -300,6 +300,7 @@ The following files are generated: - `il2cpp-functions.h`: - The function pointer signature and offset from the image base address to every C#-equivalent method + - The offset from the image base address to every method information class (`MethodInfo **`) - `il2cpp-types-ptr.h`: - The offset from the image base address to every type information class (`Il2CppClass **`) @@ -345,6 +346,8 @@ The default `main.cpp` includes commented code to allow you to write to a log or **Tip:** When a new version of the target application is released, you can re-output the C++ scaffolding project in-place. The `appdata` and `framework` folders will be overwritten but the `user` folder and project/solution files will not be changed. This makes it easy to update your project when the target application has been updated! +**Compatibility:** It is recommended to use Visual Studio 2019 (MSVC++ Build Tools v142 or later). The scaffolding projects have been tested with Visual Studio 2019 and Visual Studio 2017 (MSVC++ Build Tools v141), however some helper code is omitted when using Visual Studio 2017 in order to enable compilation to succeed. + #### DLL Injection workflow 1. Use Il2CppInspector to create C++ scaffolding output for the executable binary of interest @@ -455,11 +458,18 @@ The output schema is as follows: - `symbols` (array) The virtual address, name and symbol type of every named (non-zero name length) and non-zero address function definition, type, field name and import (for ELF) defined in the binary. Not currently supported for PE files. -### Generating IL2CPP binaries without a Unity project +### Universal IL2CPP Build Utility Three Powershell scripts are provided to enable easy building and testing of IL2CPP binaries: -* `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) and 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`. +* `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`). @@ -559,8 +569,12 @@ Unity version | IL2CPP version | Support 2017.1.x-2018.2.x | 24.0 | Working 2018.3.x-2018.4.x | 24.1 | Working 2019.1.x-2019.3.6 | 24.2 | Working -2019.3.7-2020.1.x | 24.3 | Working +2019.3.7-2019.4.14 | 24.3 | Working +2019.4.15+ | 24.4 | Working +2020.1.0-2020.1.10 | 24.3 | Working +2020.1.11+ | 24.4 | Working 2020.2.0 (beta) | 27 | Working +2021.1 (alpha) | 27 | Partial Please refer to the companion repository https://github.com/nneonneo/Il2CppVersions if you would like to track the changes between each IL2CPP release version.