From 70eacc08e2726ffa7c9a32e4b3d2bdb65623b8ef Mon Sep 17 00:00:00 2001 From: BryanGIG Date: Sat, 15 May 2021 20:32:56 +0700 Subject: [PATCH 01/41] fix method Pointer offset arm64-v8a --- app/src/main/cpp/Includes/il2cpp_dump.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/cpp/Includes/il2cpp_dump.cpp b/app/src/main/cpp/Includes/il2cpp_dump.cpp index 912324c..8e1075d 100644 --- a/app/src/main/cpp/Includes/il2cpp_dump.cpp +++ b/app/src/main/cpp/Includes/il2cpp_dump.cpp @@ -46,6 +46,10 @@ uint64_t get_module_base(const char *module_name) { strcpy(path, ""); sscanf(line, "%" PRIx64"-%" PRIx64" %s %*" PRIx64" %*x:%*x %*u %s\n", &start, &end, flags, path); +#if defined(__aarch64__) + if (strstr(flags, "x") == 0) + continue; +#endif if (strstr(path, module_name)) { addr = start; break; @@ -421,4 +425,4 @@ void il2cpp_dump(void *handle, char *outDir) { } outStream.close(); LOGI("dump done!"); -} \ No newline at end of file +} From eacf494f87dc055b9236f504f3092536337af4e0 Mon Sep 17 00:00:00 2001 From: BryanGIG Date: Sat, 15 May 2021 20:38:06 +0700 Subject: [PATCH 02/41] Update native-lib.cpp --- app/src/main/cpp/native-lib.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/cpp/native-lib.cpp index 023930c..2cc06c0 100644 --- a/app/src/main/cpp/native-lib.cpp +++ b/app/src/main/cpp/native-lib.cpp @@ -20,11 +20,10 @@ bool isLibraryLoaded(const char *libraryName) { } #define libTarget "libil2cpp.so" -void *hack_thread(void *) { +void *dump_thread(void *) { do { - sleep(1); + sleep(10); } while (!isLibraryLoaded(libTarget)); - sleep(10); //waiting libil2cpp.so fully loaded auto il2cpp_handle = dlopen(libTarget, 4); il2cpp_dump(il2cpp_handle, "/sdcard/Download"); return nullptr; @@ -34,5 +33,5 @@ __attribute__((constructor)) void lib_main() { // Create a new thread so it does not block the main thread, means the game would not freeze pthread_t ptid; - pthread_create(&ptid, nullptr, hack_thread, nullptr); -} \ No newline at end of file + pthread_create(&ptid, nullptr, dump_thread, nullptr); +} From e21ceefa582387ec70328fbc24a158a03b880513 Mon Sep 17 00:00:00 2001 From: BryanGIG Date: Sat, 22 May 2021 19:03:29 +0700 Subject: [PATCH 03/41] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3d5259..591107e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perf Credit : [Perfare](https://github.com/Perfare) # Usage +- change unity version in Includes/Game.h - build with Android Studio - decompile the game - copy result libnative.so into the decompiled folder apk From fb904a0cdc9cb7a40f7df69859d74c58c710a474 Mon Sep 17 00:00:00 2001 From: BryanGIG Date: Sat, 22 May 2021 19:04:11 +0700 Subject: [PATCH 04/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 591107e..e53c022 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perf Credit : [Perfare](https://github.com/Perfare) # Usage -- change unity version in Includes/Game.h +- change unity version in Includes/il2cpp_dump.h - build with Android Studio - decompile the game - copy result libnative.so into the decompiled folder apk From 97cd4551ebddddc6cd65161a21436607ee7cd683 Mon Sep 17 00:00:00 2001 From: BryanGIG Date: Sat, 19 Jun 2021 11:04:29 +0700 Subject: [PATCH 05/41] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e53c022..3d7a2f9 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Credit : [Perfare](https://github.com/Perfare) - change unity version in Includes/il2cpp_dump.h - build with Android Studio - decompile the game -- copy result libnative.so into the decompiled folder apk +- copy result libnative-lib.so into the decompiled folder apk - search the main activity of the game - put this on onCreate function ```smali From b34d17069368fc45fb792f3b5d2d44e5a82bca49 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Fri, 3 Sep 2021 18:43:22 +0200 Subject: [PATCH 06/41] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3d7a2f9..cd113d1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # Auto-Il2cppDumper +Note this is created by BrianGIG but he deleted his account sadly :( + This is for helping you get dump.cs from Il2cpp game
hope this will help you >::< From 8ca2a52a984f76d24b0074f05253d9bd46987343 Mon Sep 17 00:00:00 2001 From: n63qwj6nqw3 <40742924+AndnixSH@users.noreply.github.com> Date: Tue, 14 Sep 2021 16:45:05 +0200 Subject: [PATCH 07/41] Updated to Riru-Il2CppDumper v26 --- LICENSE | 21 + README.md | 84 +- app/src/main/cpp/Includes/game.h | 56 + app/src/main/cpp/Includes/il2cpp_dump.cpp | 77 +- app/src/main/cpp/Includes/il2cpp_dump.h | 5 +- .../2019.4.15f1/il2cpp-api-functions.h | 306 +++ .../il2cppapi/2019.4.15f1/il2cpp-class.h | 2196 ++++++++++++++++ .../2019.4.21f1/il2cpp-api-functions.h | 306 +++ .../il2cppapi/2019.4.21f1/il2cpp-class.h | 2205 ++++++++++++++++ .../2020.1.0f1/il2cpp-api-functions.h | 307 +++ .../il2cppapi/2020.1.0f1/il2cpp-class.h | 2198 ++++++++++++++++ .../2020.1.11f1/il2cpp-api-functions.h | 307 +++ .../il2cppapi/2020.1.11f1/il2cpp-class.h | 2197 ++++++++++++++++ .../2020.2.0f1/il2cpp-api-functions.h | 309 +++ .../il2cppapi/2020.2.0f1/il2cpp-class.h | 2270 ++++++++++++++++ .../2020.2.4f1/il2cpp-api-functions.h | 309 +++ .../il2cppapi/2020.2.4f1/il2cpp-class.h | 2279 ++++++++++++++++ .../2021.1.0f1/il2cpp-api-functions.h | 309 +++ .../il2cppapi/2021.1.0f1/il2cpp-class.h | 2282 +++++++++++++++++ app/src/main/cpp/native-lib.cpp | 69 +- 20 files changed, 18047 insertions(+), 45 deletions(-) create mode 100644 LICENSE create mode 100644 app/src/main/cpp/Includes/game.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h create mode 100644 app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3e64985 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Rikka + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index cd113d1..7f12670 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,82 @@ # Auto-Il2cppDumper -Note this is created by BrianGIG but he deleted his account sadly :( - This is for helping you get dump.cs from Il2cpp game
hope this will help you >::< # Important This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perfare/Riru-Il2CppDumper)
-Credit : [Perfare](https://github.com/Perfare) - -# Usage -- change unity version in Includes/il2cpp_dump.h -- build with Android Studio -- decompile the game -- copy result libnative-lib.so into the decompiled folder apk -- search the main activity of the game -- put this on onCreate function +Credit : [Perfare](https://github.com/Perfare)
+ +This project was originally created by BrianGIG but he have deleted his account, so i will try to maintain this project when i can. + +# Usage +Get unity version by opening any asset file into Notepad++ and any text editor + +Edit unity version that match with UnityVersion Compatible list + +``` +// UnityVersion Compatible list +// 5.3.0f4 | 5.3.0f4 - 5.3.1f1 | v16 +// 5.3.2f1 | 5.3.2f1 | v19 +// 5.3.3f1 | 5.3.3f1 - 5.3.4f1 | v20 +// 5.3.5f1 | 5.3.5f1 | v21 +// 5.3.6f1 | 5.3.6f1 | v21 +// 5.3.7f1 | 5.3.7f1 - 5.3.8f2 | v21 +// 5.4.0f3 | 5.4.0f3 | v21 +// 5.4.1f1 | 5.4.1f1 - 5.4.3f1 | v21 +// 5.4.4f1 | 5.4.4f1 - 5.4.6f3 | v21 +// 5.5.0f3 | 5.5.0f3 | v22 +// 5.5.1f1 | 5.5.1f1 - 5.5.6f1 | v22 +// 5.6.0f3 | 5.6.0f3 - 5.6.7f1 | v23 +// 2017.1.0f3 | 2017.1.0f3 - 2017.1.2f1 | v24 +// 2017.1.3f1 | 2017.1.3f1 - 2017.1.5f1 | v24 +// 2017.2.0f3 | 2017.2.0f3 | v24 +// 2017.2.1f1 | 2017.2.1f1 - 2017.4.40f1 | v24 +// 2018.1.0f2 | 2018.1.0f2 - 2018.1.9f2 | v24 +// 2018.2.0f2 | 2018.2.0f2 - 2018.2.21f1 | v24 +// 2018.3.0f2 | 2018.3.0f2 - 2018.3.7f1 | v24.1 +// 2018.3.8f1 | 2018.3.8f1 - 2018.4.36f1 | v24.1 +// 2019.1.0f2 | 2019.1.0f2 - 2019.2.21f1 | v24.2 +// 2019.3.0f6 | 2019.3.0f6 - 2019.3.6f1 | v24.2 +// 2019.3.7f1 | 2019.3.7f1 - 2019.4.14f1 | v24.3 +// 2019.4.15f1 | 2019.4.15f1 - 2019.4.20f1 | v24.4 +// 2019.4.21f1 | 2019.4.21f1 - 2019.4.29f1 | v24.5 +// 2020.1.0f1 | 2020.1.0f1 - 2020.1.10f1 | v24.3 +// 2020.1.11f1 | 2020.1.11f1 - 2020.1.17f1 | v24.4 +// 2020.2.0f1 | 2020.2.0f1 - 2020.2.3f1 | v27 +// 2020.2.4f1 | 2020.2.4f1 - 2020.3.15f2 | v27.1 +// 2021.1.0f1 | 2021.1.0f1 - 2021.1.16f1 | v27.2 +``` + +# Non root method +This method requires to modify game APK. You may need to bypass APK integrity and sig check if you want to use this method + +- Build APK with Android Studio +- Decompile app-debug.apk +- Decompile the game +- Copy result libnative.so into the decompiled folder apk +- Search the main activity of the game +- Put this on onCreate function ```smali const-string v0, "native-lib" invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V ``` -- re-compile and run it -- wait 10-30 seconds -- once the dump complete it will auto generate dump.cs in /sdcard/Download +- Re-compile and run it +- Wait 10-30 seconds +- Once the dump complete it will auto generate dump.cs in /sdcard/Download + +# Root method +This is useful to get around security. Does not need to modify game APK at all! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so + +Note: Some games does not store the libs in /data/data, you would be unable to do this trick! + +- Build APK with Android Studio +- Extract libnative-lib.so from app-debug.apk. Make sure you know what architecture the game is using before proceed +- Rename our lib to libunity.so +- On rooted device/VM, use any file manager app that can access root. Go to /data/data/(package name)/lib +- IMPORTANT! Rename game's libunity.so to librealunity.so +- Put our lib file libunity.so +- Run the game +- Wait 10-30 seconds +- Once the dump complete it will auto generate dump.cs in /sdcard/Download \ No newline at end of file diff --git a/app/src/main/cpp/Includes/game.h b/app/src/main/cpp/Includes/game.h new file mode 100644 index 0000000..f8e5f17 --- /dev/null +++ b/app/src/main/cpp/Includes/game.h @@ -0,0 +1,56 @@ +// +// Created by Perfare on 2020/7/4. +// + +#ifndef RIRU_IL2CPPDUMPER_GAME_H +#define RIRU_IL2CPPDUMPER_GAME_H + +// Set the unity version of the game. Please look at the list below before setting version +#define UnityVersion 2019.4.21f1 + +// Uncomment for 2018.3.0f2 and up +#define VersionAbove2018dot3 + +// Uncomment for 2020.2.0f1 and up +//#define VersionAbove2020dot2 + +// Uncomment for 2021.1.0f1 and up +//#define VersionAbove2021dot1 + +// Uncomment for root mode +// Root mode is to load our fake libunity.so and load game's real librealunity.so +//#define RootMode + +// Unity Version Compatible list +// 5.3.0f4 | 5.3.0f4 - 5.3.1f1 | v16 +// 5.3.2f1 | 5.3.2f1 | v19 +// 5.3.3f1 | 5.3.3f1 - 5.3.4f1 | v20 +// 5.3.5f1 | 5.3.5f1 | v21 +// 5.3.6f1 | 5.3.6f1 | v21 +// 5.3.7f1 | 5.3.7f1 - 5.3.8f2 | v21 +// 5.4.0f3 | 5.4.0f3 | v21 +// 5.4.1f1 | 5.4.1f1 - 5.4.3f1 | v21 +// 5.4.4f1 | 5.4.4f1 - 5.4.6f3 | v21 +// 5.5.0f3 | 5.5.0f3 | v22 +// 5.5.1f1 | 5.5.1f1 - 5.5.6f1 | v22 +// 5.6.0f3 | 5.6.0f3 - 5.6.7f1 | v23 +// 2017.1.0f3 | 2017.1.0f3 - 2017.1.2f1 | v24 +// 2017.1.3f1 | 2017.1.3f1 - 2017.1.5f1 | v24 +// 2017.2.0f3 | 2017.2.0f3 | v24 +// 2017.2.1f1 | 2017.2.1f1 - 2017.4.40f1 | v24 +// 2018.1.0f2 | 2018.1.0f2 - 2018.1.9f2 | v24 +// 2018.2.0f2 | 2018.2.0f2 - 2018.2.21f1 | v24 +// 2018.3.0f2 | 2018.3.0f2 - 2018.3.7f1 | v24.1 +// 2018.3.8f1 | 2018.3.8f1 - 2018.4.36f1 | v24.1 +// 2019.1.0f2 | 2019.1.0f2 - 2019.2.21f1 | v24.2 +// 2019.3.0f6 | 2019.3.0f6 - 2019.3.6f1 | v24.2 +// 2019.3.7f1 | 2019.3.7f1 - 2019.4.14f1 | v24.3 +// 2019.4.15f1 | 2019.4.15f1 - 2019.4.20f1 | v24.4 +// 2019.4.21f1 | 2019.4.21f1 - 2019.4.29f1 | v24.5 +// 2020.1.0f1 | 2020.1.0f1 - 2020.1.10f1 | v24.3 +// 2020.1.11f1 | 2020.1.11f1 - 2020.1.17f1 | v24.4 +// 2020.2.0f1 | 2020.2.0f1 - 2020.2.3f1 | v27 +// 2020.2.4f1 | 2020.2.4f1 - 2020.3.15f2 | v27.1 +// 2021.1.0f1 | 2021.1.0f1 - 2021.1.16f1 | v27.2 + +#endif //RIRU_IL2CPPDUMPER_GAME_H diff --git a/app/src/main/cpp/Includes/il2cpp_dump.cpp b/app/src/main/cpp/Includes/il2cpp_dump.cpp index 8e1075d..1324cf2 100644 --- a/app/src/main/cpp/Includes/il2cpp_dump.cpp +++ b/app/src/main/cpp/Includes/il2cpp_dump.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include "log.h" #include "il2cpp-tabledefs.h" #include IL2CPPCLASS @@ -47,7 +48,7 @@ uint64_t get_module_base(const char *module_name) { sscanf(line, "%" PRIx64"-%" PRIx64" %s %*" PRIx64" %*x:%*x %*u %s\n", &start, &end, flags, path); #if defined(__aarch64__) - if (strstr(flags, "x") == 0) + if (strstr(flags, "x") == 0) //TODO continue; #endif if (strstr(path, module_name)) { @@ -106,7 +107,7 @@ std::string get_method_modifier(uint16_t flags) { return outPut.str(); } -std::string dump_method(Il2CppClass *klass) { +std::string dump_method(Il2CppClass * klass) { std::stringstream outPut; if (klass->method_count > 0) { outPut << "\n\t// Methods\n"; @@ -167,7 +168,7 @@ std::string dump_method(Il2CppClass *klass) { return outPut.str(); } -std::string dump_property(Il2CppClass *klass) { +std::string dump_property(Il2CppClass * klass) { std::stringstream outPut; if (klass->property_count > 0) { outPut << "\n\t// Properties\n"; @@ -175,7 +176,7 @@ std::string dump_property(Il2CppClass *klass) { while (auto prop = il2cpp_class_get_properties(klass, &iter)) { //TODO attribute outPut << "\t"; - Il2CppClass *prop_class = nullptr; + Il2CppClass * prop_class = nullptr; if (prop->get) { outPut << get_method_modifier(prop->get->flags); prop_class = il2cpp_class_from_type(prop->get->return_type); @@ -183,20 +184,26 @@ std::string dump_property(Il2CppClass *klass) { outPut << get_method_modifier(prop->set->flags); prop_class = il2cpp_class_from_type(prop->set->parameters[0].parameter_type); } - outPut << prop_class->name << " " << prop->name << " { "; - if (prop->get) { - outPut << "get; "; - } - if (prop->set) { - outPut << "set; "; + if (prop_class) { + outPut << prop_class->name << " " << prop->name << " { "; + if (prop->get) { + outPut << "get; "; + } + if (prop->set) { + outPut << "set; "; + } + outPut << "}\n"; + } else { + if (prop->name) { + outPut << " // unknown property " << prop->name; + } } - outPut << "}\n"; } } return outPut.str(); } -std::string dump_field(Il2CppClass *klass) { +std::string dump_field(Il2CppClass * klass) { std::stringstream outPut; if (klass->field_count > 0) { outPut << "\n\t// Fields\n"; @@ -251,6 +258,11 @@ std::string dump_type(const Il2CppType *type) { outPut << "[Serializable]\n"; } //TODO attribute +#ifdef VersionAbove2021dot1 + auto valuetype = type->valuetype; +#else + auto valuetype = klass->valuetype; +#endif auto visibility = flags & TYPE_ATTRIBUTE_VISIBILITY_MASK; switch (visibility) { case TYPE_ATTRIBUTE_PUBLIC: @@ -276,21 +288,21 @@ std::string dump_type(const Il2CppType *type) { outPut << "static "; } else if (!(flags & TYPE_ATTRIBUTE_INTERFACE) && flags & TYPE_ATTRIBUTE_ABSTRACT) { outPut << "abstract "; - } else if (!klass->valuetype && !klass->enumtype && flags & TYPE_ATTRIBUTE_SEALED) { + } else if (!valuetype && !klass->enumtype && flags & TYPE_ATTRIBUTE_SEALED) { outPut << "sealed "; } if (flags & TYPE_ATTRIBUTE_INTERFACE) { outPut << "interface "; } else if (klass->enumtype) { outPut << "enum "; - } else if (klass->valuetype) { + } else if (valuetype) { outPut << "struct "; } else { outPut << "class "; } outPut << klass->name; //TODO genericContainerIndex std::vector extends; - if (!klass->valuetype && !klass->enumtype && klass->parent) { + if (!valuetype && !klass->enumtype && klass->parent) { auto parent_type = il2cpp_class_get_type(klass->parent); if (parent_type->type != IL2CPP_TYPE_OBJECT) { extends.emplace_back(klass->parent->name); @@ -308,7 +320,11 @@ std::string dump_type(const Il2CppType *type) { outPut << ", " << extends[i]; } } +#ifdef VersionAbove2020dot2 + outPut << " // TypeDefIndex: " << type->data.__klassIndex << "\n{"; +#else outPut << " // TypeDefIndex: " << type->data.klassIndex << "\n{"; +#endif outPut << dump_field(klass); outPut << dump_property(klass); outPut << dump_method(klass); @@ -319,10 +335,10 @@ std::string dump_type(const Il2CppType *type) { void il2cpp_dump(void *handle, char *outDir) { LOGI("UnityVersion: %s", STRINGIFY_MACRO(UnityVersion)); -#ifdef VersionAboveV24 - LOGI("VersionAboveV24: on"); +#ifdef VersionAbove2018dot3 + LOGI("VersionAbove2018dot3: on"); #else - LOGI("VersionAboveV24: off"); + LOGI("VersionAbove2018dot3: off"); #endif LOGI("il2cpp_handle: %p", handle); il2cpp_handle = handle; @@ -335,14 +351,15 @@ void il2cpp_dump(void *handle, char *outDir) { std::stringstream imageOutput; for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); + imageOutput << "// Image " << i << ": " << image->name << " - " << typeDefinitionsCount + << "\n"; typeDefinitionsCount += image->typeCount; - imageOutput << "// Image " << i << ": " << image->name << " - " << image->typeStart << "\n"; } std::vector outPuts(typeDefinitionsCount); LOGI("typeDefinitionsCount: %i", typeDefinitionsCount); il2cpp_base = get_module_base("libil2cpp.so"); LOGI("il2cpp_base: %" PRIx64"", il2cpp_base); -#ifdef VersionAboveV24 +#ifdef VersionAbove2018dot3 //使用il2cpp_image_get_class for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); @@ -351,7 +368,12 @@ void il2cpp_dump(void *handle, char *outDir) { auto klass = il2cpp_image_get_class(image, j); auto type = il2cpp_class_get_type(const_cast(klass)); //LOGD("type name : %s", il2cpp_type_get_name(type)); +#ifdef VersionAbove2020dot2 + LOGI("VersionAbove2020dot2: on"); + auto klassIndex = type->data.__klassIndex; +#else auto klassIndex = type->data.klassIndex; +#endif if (outPuts[klassIndex].empty()) { outPuts[klassIndex] = dump_type(type); } @@ -375,7 +397,7 @@ void il2cpp_dump(void *handle, char *outDir) { LOGI("miss Assembly::GetTypes"); return; } -#ifdef VersionAboveV24 +#ifdef VersionAbove2018dot3 typedef void *(*Assembly_Load_ftn)(Il2CppString * , void * ); #else typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); @@ -389,7 +411,7 @@ void il2cpp_dump(void *handle, char *outDir) { auto pos = imageName.rfind('.'); auto imageNameNoExt = imageName.substr(0, pos); auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); -#ifdef VersionAboveV24 +#ifdef VersionAbove2018dot3 auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)( assemblyFileName, nullptr); #else @@ -411,8 +433,15 @@ void il2cpp_dump(void *handle, char *outDir) { } } #endif - LOGI("write dump file"); - auto outPath = std::string(outDir).append("/dump.cs"); + LOGI("Write dump file"); + + //https://stackoverflow.com/questions/42918762/how-to-get-app-package-name-or-applicationid-using-jni-android + FILE *cmdline = fopen("/proc/self/cmdline", "r"); + char application_id[64] = { 0 }; + fread(application_id, sizeof(application_id), 1, cmdline); + fclose(cmdline); + + auto outPath = std::string(outDir).append("/").append(application_id).append("-dump.cs"); std::ofstream outStream(outPath); outStream << imageOutput.str(); for (int i = 0; i < typeDefinitionsCount; ++i) { diff --git a/app/src/main/cpp/Includes/il2cpp_dump.h b/app/src/main/cpp/Includes/il2cpp_dump.h index 8c439ae..fcb7513 100644 --- a/app/src/main/cpp/Includes/il2cpp_dump.h +++ b/app/src/main/cpp/Includes/il2cpp_dump.h @@ -5,11 +5,8 @@ #ifndef RIRU_IL2CPPDUMPER_IL2CPP_H #define RIRU_IL2CPPDUMPER_IL2CPP_H +#include "game.h" -#define UnityVersion 2019.3.7f1 - -// 2018.3.0f2(v24.1) and up enable it -#define VersionAboveV24 #define STR(x) #x #define STRINGIFY_MACRO(x) STR(x) #define EXPAND(x) x diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h new file mode 100644 index 0000000..4250a28 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h @@ -0,0 +1,306 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h new file mode 100644 index 0000000..381cb97 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h @@ -0,0 +1,2196 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint32_t Il2CppMethodSlot; +static const uint32_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t InterfaceOffsetIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex methodIndex; + TypeIndex typeIndex; +} Il2CppRGCTXDefinitionData; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex byrefTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppMetadataUsageList +{ + uint32_t start; + uint32_t count; +} Il2CppMetadataUsageList; +typedef struct Il2CppMetadataUsagePair +{ + uint32_t destinationIndex; + uint32_t encodedSourceIndex; +} Il2CppMetadataUsagePair; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t metadataUsageListsOffset; + int32_t metadataUsageListsCount; + int32_t metadataUsagePairsOffset; + int32_t metadataUsagePairsCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericClass +{ + TypeDefinitionIndex typeDefinitionIndex; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex klassIndex; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex genericParameterIndex; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + const Il2CppMethodDefinition* methodDefinition; + }; + union + { + const Il2CppGenericMethod* genericMethod; + const Il2CppGenericContainer* genericContainer; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + const Il2CppTypeDefinition* typeDefinition; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + GenericContainerIndex genericContainerIndex; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; + MethodIndex entryPointIndex; + Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppTokenIndexPair +{ + uint32_t token; + int32_t index; +} Il2CppTokenIndexPair; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + CustomAttributeIndex customAttributeCount; + const CustomAttributesCacheGenerator* customAttributeGenerators; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject *type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h new file mode 100644 index 0000000..4250a28 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h @@ -0,0 +1,306 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h new file mode 100644 index 0000000..da4a491 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h @@ -0,0 +1,2205 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint32_t Il2CppMethodSlot; +static const uint32_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t InterfaceOffsetIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex methodIndex; + TypeIndex typeIndex; +} Il2CppRGCTXDefinitionData; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex byrefTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; + MethodIndex adjustorThunkIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppMetadataUsageList +{ + uint32_t start; + uint32_t count; +} Il2CppMetadataUsageList; +typedef struct Il2CppMetadataUsagePair +{ + uint32_t destinationIndex; + uint32_t encodedSourceIndex; +} Il2CppMetadataUsagePair; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t metadataUsageListsOffset; + int32_t metadataUsageListsCount; + int32_t metadataUsagePairsOffset; + int32_t metadataUsagePairsCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericClass +{ + TypeDefinitionIndex typeDefinitionIndex; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex klassIndex; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex genericParameterIndex; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + const Il2CppMethodDefinition* methodDefinition; + }; + union + { + const Il2CppGenericMethod* genericMethod; + const Il2CppGenericContainer* genericContainer; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + const Il2CppTypeDefinition* typeDefinition; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + GenericContainerIndex genericContainerIndex; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; + MethodIndex entryPointIndex; + Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppTokenIndexPair +{ + uint32_t token; + int32_t index; +} Il2CppTokenIndexPair; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppTokenAdjustorThunkPair +{ + uint32_t token; + Il2CppMethodPointer adjustorThunk; +} Il2CppTokenAdjustorThunkPair; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const uint32_t adjustorThunkCount; + const Il2CppTokenAdjustorThunkPair* adjustorThunks; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + const Il2CppMethodPointer* genericAdjustorThunks; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + CustomAttributeIndex customAttributeCount; + const CustomAttributesCacheGenerator* customAttributeGenerators; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject *type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h new file mode 100644 index 0000000..0b50d22 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h @@ -0,0 +1,307 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h new file mode 100644 index 0000000..b830635 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h @@ -0,0 +1,2198 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; + uintptr_t raw_ip; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint16_t Il2CppMethodSlot; +static const uint16_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t InterfaceOffsetIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex methodIndex; + TypeIndex typeIndex; +} Il2CppRGCTXDefinitionData; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex byrefTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex hashValueIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppMetadataUsageList +{ + uint32_t start; + uint32_t count; +} Il2CppMetadataUsageList; +typedef struct Il2CppMetadataUsagePair +{ + uint32_t destinationIndex; + uint32_t encodedSourceIndex; +} Il2CppMetadataUsagePair; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t metadataUsageListsOffset; + int32_t metadataUsageListsCount; + int32_t metadataUsagePairsOffset; + int32_t metadataUsagePairsCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericClass +{ + TypeDefinitionIndex typeDefinitionIndex; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex klassIndex; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex genericParameterIndex; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int8_t tryId; + int8_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + const Il2CppMethodDefinition* methodDefinition; + }; + union + { + const Il2CppGenericMethod* genericMethod; + const Il2CppGenericContainer* genericContainer; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + const Il2CppTypeDefinition* typeDefinition; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + GenericContainerIndex genericContainerIndex; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const char* hash_value; + const char* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; + MethodIndex entryPointIndex; + Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; +} Il2CppCodeGenOptions; +typedef struct Il2CppTokenIndexPair +{ + uint32_t token; + int32_t index; +} Il2CppTokenIndexPair; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + CustomAttributeIndex customAttributeCount; + const CustomAttributesCacheGenerator* customAttributeGenerators; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject* type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h new file mode 100644 index 0000000..0b50d22 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h @@ -0,0 +1,307 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h new file mode 100644 index 0000000..e3792af --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h @@ -0,0 +1,2197 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; + uintptr_t raw_ip; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint16_t Il2CppMethodSlot; +static const uint16_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t InterfaceOffsetIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex methodIndex; + TypeIndex typeIndex; +} Il2CppRGCTXDefinitionData; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex byrefTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppMetadataUsageList +{ + uint32_t start; + uint32_t count; +} Il2CppMetadataUsageList; +typedef struct Il2CppMetadataUsagePair +{ + uint32_t destinationIndex; + uint32_t encodedSourceIndex; +} Il2CppMetadataUsagePair; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t metadataUsageListsOffset; + int32_t metadataUsageListsCount; + int32_t metadataUsagePairsOffset; + int32_t metadataUsagePairsCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericClass +{ + TypeDefinitionIndex typeDefinitionIndex; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex klassIndex; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex genericParameterIndex; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + const Il2CppMethodDefinition* methodDefinition; + }; + union + { + const Il2CppGenericMethod* genericMethod; + const Il2CppGenericContainer* genericContainer; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + const Il2CppTypeDefinition* typeDefinition; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + GenericContainerIndex genericContainerIndex; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; + MethodIndex entryPointIndex; + Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppTokenIndexPair +{ + uint32_t token; + int32_t index; +} Il2CppTokenIndexPair; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + CustomAttributeIndex customAttributeCount; + const CustomAttributesCacheGenerator* customAttributeGenerators; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject* type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h new file mode 100644 index 0000000..a4b4770 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h @@ -0,0 +1,309 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_start_incremental_collection , ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(void, il2cpp_gc_set_mode, (Il2CppGCMode mode)); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h new file mode 100644 index 0000000..2e6e9f7 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h @@ -0,0 +1,2270 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_GC_MODE_DISABLED = 0, + IL2CPP_GC_MODE_ENABLED = 1, + IL2CPP_GC_MODE_MANUAL = 2 +} Il2CppGCMode; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; + uintptr_t raw_ip; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint16_t Il2CppMethodSlot; +static const uint16_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +typedef int32_t TypeFieldIndex; +typedef int32_t TypeMethodIndex; +typedef int32_t MethodParameterIndex; +typedef int32_t TypePropertyIndex; +typedef int32_t TypeEventIndex; +typedef int32_t TypeInterfaceIndex; +typedef int32_t TypeNestedTypeIndex; +typedef int32_t TypeInterfaceOffsetIndex; +typedef int32_t GenericContainerParameterIndex; +typedef int32_t AssemblyTypeIndex; +typedef int32_t AssemblyExportedTypeIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex __methodIndex; + TypeIndex __typeIndex; +} Il2CppRGCTXDefinitionData; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static inline uint32_t GetTokenType(uint32_t token) +{ + return token & 0xFF000000; +} +static inline uint32_t GetTokenRowId(uint32_t token) +{ + return token & 0x00FFFFFF; +} +typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; +typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; +typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; +typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; +typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; +typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppMetadataRange +{ + int32_t start; + int32_t length; +} Il2CppMetadataRange; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t windowsRuntimeStringsOffset; + int32_t windowsRuntimeStringsSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericClass +{ + const Il2CppType* type; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex __klassIndex; + Il2CppMetadataTypeHandle typeHandle; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex __genericParameterIndex; + Il2CppMetadataGenericParameterHandle genericParameterHandle; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef struct Il2CppMetadataFieldInfo +{ + const Il2CppType* type; + const char* name; + uint32_t token; +} Il2CppMetadataFieldInfo; +typedef struct Il2CppMetadataMethodInfo +{ + Il2CppMetadataMethodDefinitionHandle handle; + const char* name; + const Il2CppType* return_type; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMetadataMethodInfo; +typedef struct Il2CppMetadataParameterInfo +{ + const char* name; + uint32_t token; + const Il2CppType* type; +} Il2CppMetadataParameterInfo; +typedef struct Il2CppMetadataPropertyInfo +{ + const char* name; + const MethodInfo* get; + const MethodInfo* set; + uint32_t attrs; + uint32_t token; +} Il2CppMetadataPropertyInfo; +typedef struct Il2CppMetadataEventInfo +{ + const char* name; + const Il2CppType* type; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} Il2CppMetadataEventInfo; +typedef struct Il2CppInterfaceOffsetInfo +{ + const Il2CppType* interfaceType; + int32_t offset; +} Il2CppInterfaceOffsetInfo; +typedef struct Il2CppGenericParameterInfo +{ + Il2CppMetadataGenericContainerHandle containerHandle; + const char* name; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameterInfo; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex __klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex __methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex __methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; + }; + union + { + const Il2CppGenericMethod* genericMethod; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + Il2CppMetadataTypeHandle typeMetadataHandle; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + uint32_t typeCount; + uint32_t exportedTypeCount; + uint32_t customAttributeCount; + Il2CppMetadataImageHandle metadataHandle; + Il2CppNameToTypeHandleHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t __genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; + const CustomAttributesCacheGenerator* customAttributeCacheGenerator; + const Il2CppMethodPointer moduleInitializer; + TypeDefinitionIndex* staticConstructorTypeIndices; + const Il2CppMetadataRegistration* metadataRegistration; + const Il2CppCodeRegistration* codeRegistaration; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject* type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h new file mode 100644 index 0000000..a4b4770 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h @@ -0,0 +1,309 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_start_incremental_collection , ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(void, il2cpp_gc_set_mode, (Il2CppGCMode mode)); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h new file mode 100644 index 0000000..4226f62 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h @@ -0,0 +1,2279 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_GC_MODE_DISABLED = 0, + IL2CPP_GC_MODE_ENABLED = 1, + IL2CPP_GC_MODE_MANUAL = 2 +} Il2CppGCMode; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; + uintptr_t raw_ip; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint16_t Il2CppMethodSlot; +static const uint16_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +typedef int32_t TypeFieldIndex; +typedef int32_t TypeMethodIndex; +typedef int32_t MethodParameterIndex; +typedef int32_t TypePropertyIndex; +typedef int32_t TypeEventIndex; +typedef int32_t TypeInterfaceIndex; +typedef int32_t TypeNestedTypeIndex; +typedef int32_t TypeInterfaceOffsetIndex; +typedef int32_t GenericContainerParameterIndex; +typedef int32_t AssemblyTypeIndex; +typedef int32_t AssemblyExportedTypeIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex __methodIndex; + TypeIndex __typeIndex; +} Il2CppRGCTXDefinitionData; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + Il2CppRGCTXDefinitionData data; +} Il2CppRGCTXDefinition; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; + MethodIndex adjustorThunkIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static inline uint32_t GetTokenType(uint32_t token) +{ + return token & 0xFF000000; +} +static inline uint32_t GetTokenRowId(uint32_t token) +{ + return token & 0x00FFFFFF; +} +typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; +typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; +typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; +typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; +typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; +typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppMetadataRange +{ + int32_t start; + int32_t length; +} Il2CppMetadataRange; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t windowsRuntimeStringsOffset; + int32_t windowsRuntimeStringsSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericClass +{ + const Il2CppType* type; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex __klassIndex; + Il2CppMetadataTypeHandle typeHandle; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex __genericParameterIndex; + Il2CppMetadataGenericParameterHandle genericParameterHandle; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 6; + unsigned int byref : 1; + unsigned int pinned : 1; +} Il2CppType; +typedef struct Il2CppMetadataFieldInfo +{ + const Il2CppType* type; + const char* name; + uint32_t token; +} Il2CppMetadataFieldInfo; +typedef struct Il2CppMetadataMethodInfo +{ + Il2CppMetadataMethodDefinitionHandle handle; + const char* name; + const Il2CppType* return_type; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMetadataMethodInfo; +typedef struct Il2CppMetadataParameterInfo +{ + const char* name; + uint32_t token; + const Il2CppType* type; +} Il2CppMetadataParameterInfo; +typedef struct Il2CppMetadataPropertyInfo +{ + const char* name; + const MethodInfo* get; + const MethodInfo* set; + uint32_t attrs; + uint32_t token; +} Il2CppMetadataPropertyInfo; +typedef struct Il2CppMetadataEventInfo +{ + const char* name; + const Il2CppType* type; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} Il2CppMetadataEventInfo; +typedef struct Il2CppInterfaceOffsetInfo +{ + const Il2CppType* interfaceType; + int32_t offset; +} Il2CppInterfaceOffsetInfo; +typedef struct Il2CppGenericParameterInfo +{ + Il2CppMetadataGenericContainerHandle containerHandle; + const char* name; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameterInfo; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex __klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex __methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex __methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; + }; + union + { + const Il2CppGenericMethod* genericMethod; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + Il2CppMetadataTypeHandle typeMetadataHandle; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t valuetype : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + uint32_t typeCount; + uint32_t exportedTypeCount; + uint32_t customAttributeCount; + Il2CppMetadataImageHandle metadataHandle; + Il2CppNameToTypeHandleHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t __genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppTokenAdjustorThunkPair +{ + uint32_t token; + Il2CppMethodPointer adjustorThunk; +} Il2CppTokenAdjustorThunkPair; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const uint32_t adjustorThunkCount; + const Il2CppTokenAdjustorThunkPair* adjustorThunks; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; + const CustomAttributesCacheGenerator* customAttributeCacheGenerator; + const Il2CppMethodPointer moduleInitializer; + TypeDefinitionIndex* staticConstructorTypeIndices; + const Il2CppMetadataRegistration* metadataRegistration; + const Il2CppCodeRegistration* codeRegistaration; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + const Il2CppMethodPointer* genericAdjustorThunks; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject* type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h b/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h new file mode 100644 index 0000000..a4b4770 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h @@ -0,0 +1,309 @@ +#ifndef DO_API_NO_RETURN +#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) +#endif + +DO_API(int, il2cpp_init, (const char* domain_name)); +DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); +DO_API(void, il2cpp_shutdown, ()); +DO_API(void, il2cpp_set_config_dir, (const char *config_path)); +DO_API(void, il2cpp_set_data_dir, (const char *data_path)); +DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); +DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); +DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); +DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); +DO_API(void, il2cpp_set_config, (const char* executablePath)); + +DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); +DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); +DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); +DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); + +DO_API(void*, il2cpp_alloc, (size_t size)); +DO_API(void, il2cpp_free, (void* ptr)); + +// array +DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); +DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); +DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); +DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); +DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); +DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); +DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); + +// assembly +DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); + +// class +DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); +DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); +DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); +DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); +DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); +DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); +DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); +DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); +DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); +DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); +DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); +DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); +DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); +DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); +DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); +DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); +DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); +DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); +DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); +DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); +DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); +DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); +DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); +DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); +DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); +DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); +DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); +DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); +DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); + +// testing only +DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); +DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); + +// stats +DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); +DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); + +// domain +DO_API(Il2CppDomain*, il2cpp_domain_get, ()); +DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); +DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); + +// exception +DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); +DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); +DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); +DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); +DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); +DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); + +// field +DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); +DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); +DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); +DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); +DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); +DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); +DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); +DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); +DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); +DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); +// gc +DO_API(void, il2cpp_gc_collect, (int maxGenerations)); +DO_API(int32_t, il2cpp_gc_collect_a_little, ()); +DO_API(void, il2cpp_gc_start_incremental_collection , ()); +DO_API(void, il2cpp_gc_disable, ()); +DO_API(void, il2cpp_gc_enable, ()); +DO_API(bool, il2cpp_gc_is_disabled, ()); +DO_API(void, il2cpp_gc_set_mode, (Il2CppGCMode mode)); +DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); +DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); +DO_API(bool, il2cpp_gc_is_incremental, ()); +DO_API(int64_t, il2cpp_gc_get_used_size, ()); +DO_API(int64_t, il2cpp_gc_get_heap_size, ()); +DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); +DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); +DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); +DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); +DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); +DO_API(void, il2cpp_stop_gc_world, ()); +DO_API(void, il2cpp_start_gc_world, ()); +// gchandle +DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); +DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); +DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); +DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); +DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); + +// vm runtime info +DO_API(uint32_t, il2cpp_object_header_size, ()); +DO_API(uint32_t, il2cpp_array_object_header_size, ()); +DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); +DO_API(uint32_t, il2cpp_allocation_granularity, ()); + +// liveness +DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); +DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); +DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); + +// method +DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); +DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); +DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); +DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); +DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); +DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); +DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); +DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); +DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); +DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); +DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); +DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); + +// profiler +#if IL2CPP_ENABLE_PROFILER + +DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); +DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); +DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); +DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); +DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); +DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); +DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); + +#endif + +// property +DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); +DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); +DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); +DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); + +// object +DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); +DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); +DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); +DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); +DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); + +DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); + +// monitor +DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); +DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); +DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); +DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); + +// runtime +DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); +DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); +DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); +DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); + +DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); + +DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); + +// string +DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); +DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); +DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); +DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); +DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); +DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); + +// thread +DO_API(Il2CppThread*, il2cpp_thread_current, ()); +DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); +DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); + +DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); +DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); + +// stacktrace +DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); +DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); +DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); +DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); +DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); +DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); + +// type +DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); +DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); +DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); +DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); +DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); +DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); +DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); + +// image +DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); +DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); +DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); + +DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); +DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); + +// Memory information +DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); +DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); + +DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); + +// Logging +DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); + +// Debugger +DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); +DO_API(bool, il2cpp_is_debugger_attached, ()); +DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); + +// Debug metadata +DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); + +// TLS module +DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); + +// custom attributes +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); +DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); + +DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); +DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); + +DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); + +// Il2CppClass user data for GetComponent optimization +DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); +DO_API(int, il2cpp_class_get_userdata_offset, ()); + +DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h b/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h new file mode 100644 index 0000000..2345107 --- /dev/null +++ b/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h @@ -0,0 +1,2282 @@ +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppType Il2CppType; +typedef struct EventInfo EventInfo; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArray Il2CppArray; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppProfiler Il2CppProfiler; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppAsyncResult Il2CppAsyncResult; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef enum +{ + IL2CPP_PROFILE_NONE = 0, + IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, + IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, + IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, + IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, + IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, + IL2CPP_PROFILE_INLINING = 1 << 5, + IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, + IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, + IL2CPP_PROFILE_GC = 1 << 8, + IL2CPP_PROFILE_THREADS = 1 << 9, + IL2CPP_PROFILE_REMOTING = 1 << 10, + IL2CPP_PROFILE_TRANSITIONS = 1 << 11, + IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, + IL2CPP_PROFILE_COVERAGE = 1 << 13, + IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, + IL2CPP_PROFILE_STATISTICAL = 1 << 15, + IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, + IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, + IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, + IL2CPP_PROFILE_GC_MOVES = 1 << 19, + IL2CPP_PROFILE_FILEIO = 1 << 20 +} Il2CppProfileFlags; +typedef enum +{ + IL2CPP_PROFILE_FILEIO_WRITE = 0, + IL2CPP_PROFILE_FILEIO_READ +} Il2CppProfileFileIOKind; +typedef enum +{ + IL2CPP_GC_EVENT_START, + IL2CPP_GC_EVENT_MARK_START, + IL2CPP_GC_EVENT_MARK_END, + IL2CPP_GC_EVENT_RECLAIM_START, + IL2CPP_GC_EVENT_RECLAIM_END, + IL2CPP_GC_EVENT_END, + IL2CPP_GC_EVENT_PRE_STOP_WORLD, + IL2CPP_GC_EVENT_POST_STOP_WORLD, + IL2CPP_GC_EVENT_PRE_START_WORLD, + IL2CPP_GC_EVENT_POST_START_WORLD +} Il2CppGCEvent; +typedef enum +{ + IL2CPP_GC_MODE_DISABLED = 0, + IL2CPP_GC_MODE_ENABLED = 1, + IL2CPP_GC_MODE_MANUAL = 2 +} Il2CppGCMode; +typedef enum +{ + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; +typedef enum +{ + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; +typedef struct Il2CppStackFrameInfo +{ + const MethodInfo *method; + uintptr_t raw_ip; + int sourceCodeLineNumber; + int ilOffset; + const char* filePath; +} Il2CppStackFrameInfo; +typedef void(*Il2CppMethodPointer)(); +typedef struct Il2CppMethodDebugInfo +{ + Il2CppMethodPointer methodPointer; + int32_t code_size; + const char *file; +} Il2CppMethodDebugInfo; +typedef struct +{ + void* (*malloc_func)(size_t size); + void* (*aligned_malloc_func)(size_t size, size_t alignment); + void (*free_func)(void *ptr); + void (*aligned_free_func)(void *ptr); + void* (*calloc_func)(size_t nmemb, size_t size); + void* (*realloc_func)(void *ptr, size_t size); + void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); +} Il2CppMemoryCallbacks; +typedef struct +{ + const char *name; + void(*connect)(const char *address); + int(*wait_for_attach)(void); + void(*close1)(void); + void(*close2)(void); + int(*send)(void *buf, int len); + int(*recv)(void *buf, int len); +} Il2CppDebuggerTransport; +typedef uint16_t Il2CppChar; +typedef char Il2CppNativeChar; +typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); +typedef void (*il2cpp_WorldChangedCallback)(); +typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); +typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); +typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); +typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); +typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); +typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); +typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); +typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); +typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); +typedef void (*Il2CppLogCallback)(const char*); +typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef uintptr_t il2cpp_array_size_t; +typedef void ( *SynchronizationContextCallback)(intptr_t arg); +typedef uint16_t Il2CppMethodSlot; +static const uint16_t kInvalidIl2CppMethodSlot = 65535; +static const int ipv6AddressSize = 16; +typedef int32_t il2cpp_hresult_t; +typedef enum +{ + IL2CPP_TOKEN_MODULE = 0x00000000, + IL2CPP_TOKEN_TYPE_REF = 0x01000000, + IL2CPP_TOKEN_TYPE_DEF = 0x02000000, + IL2CPP_TOKEN_FIELD_DEF = 0x04000000, + IL2CPP_TOKEN_METHOD_DEF = 0x06000000, + IL2CPP_TOKEN_PARAM_DEF = 0x08000000, + IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, + IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, + IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, + IL2CPP_TOKEN_PERMISSION = 0x0e000000, + IL2CPP_TOKEN_SIGNATURE = 0x11000000, + IL2CPP_TOKEN_EVENT = 0x14000000, + IL2CPP_TOKEN_PROPERTY = 0x17000000, + IL2CPP_TOKEN_MODULE_REF = 0x1a000000, + IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, + IL2CPP_TOKEN_ASSEMBLY = 0x20000000, + IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, + IL2CPP_TOKEN_FILE = 0x26000000, + IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, + IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, + IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, + IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, +} Il2CppTokenType; +typedef int32_t TypeIndex; +typedef int32_t TypeDefinitionIndex; +typedef int32_t FieldIndex; +typedef int32_t DefaultValueIndex; +typedef int32_t DefaultValueDataIndex; +typedef int32_t CustomAttributeIndex; +typedef int32_t ParameterIndex; +typedef int32_t MethodIndex; +typedef int32_t GenericMethodIndex; +typedef int32_t PropertyIndex; +typedef int32_t EventIndex; +typedef int32_t GenericContainerIndex; +typedef int32_t GenericParameterIndex; +typedef int16_t GenericParameterConstraintIndex; +typedef int32_t NestedTypeIndex; +typedef int32_t InterfacesIndex; +typedef int32_t VTableIndex; +typedef int32_t RGCTXIndex; +typedef int32_t StringIndex; +typedef int32_t StringLiteralIndex; +typedef int32_t GenericInstIndex; +typedef int32_t ImageIndex; +typedef int32_t AssemblyIndex; +typedef int32_t InteropDataIndex; +typedef int32_t TypeFieldIndex; +typedef int32_t TypeMethodIndex; +typedef int32_t MethodParameterIndex; +typedef int32_t TypePropertyIndex; +typedef int32_t TypeEventIndex; +typedef int32_t TypeInterfaceIndex; +typedef int32_t TypeNestedTypeIndex; +typedef int32_t TypeInterfaceOffsetIndex; +typedef int32_t GenericContainerParameterIndex; +typedef int32_t AssemblyTypeIndex; +typedef int32_t AssemblyExportedTypeIndex; +static const TypeIndex kTypeIndexInvalid = -1; +static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; +static const DefaultValueDataIndex kDefaultValueIndexNull = -1; +static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; +static const EventIndex kEventIndexInvalid = -1; +static const FieldIndex kFieldIndexInvalid = -1; +static const MethodIndex kMethodIndexInvalid = -1; +static const PropertyIndex kPropertyIndexInvalid = -1; +static const GenericContainerIndex kGenericContainerIndexInvalid = -1; +static const GenericParameterIndex kGenericParameterIndexInvalid = -1; +static const RGCTXIndex kRGCTXIndexInvalid = -1; +static const StringLiteralIndex kStringLiteralIndexInvalid = -1; +static const InteropDataIndex kInteropDataIndexInvalid = -1; +static const int kPublicKeyByteLength = 8; +typedef struct Il2CppMethodSpec +{ + MethodIndex methodDefinitionIndex; + GenericInstIndex classIndexIndex; + GenericInstIndex methodIndexIndex; +} Il2CppMethodSpec; +typedef enum Il2CppRGCTXDataType +{ + IL2CPP_RGCTX_DATA_INVALID, + IL2CPP_RGCTX_DATA_TYPE, + IL2CPP_RGCTX_DATA_CLASS, + IL2CPP_RGCTX_DATA_METHOD, + IL2CPP_RGCTX_DATA_ARRAY, +} Il2CppRGCTXDataType; +typedef union Il2CppRGCTXDefinitionData +{ + int32_t rgctxDataDummy; + MethodIndex __methodIndex; + TypeIndex __typeIndex; +} Il2CppRGCTXDefinitionData; +typedef struct Il2CppRGCTXDefinition +{ + Il2CppRGCTXDataType type; + const Il2CppRGCTXDefinitionData* data; +} Il2CppRGCTXDefinition; +typedef struct +{ + MethodIndex methodIndex; + MethodIndex invokerIndex; + MethodIndex adjustorThunkIndex; +} Il2CppGenericMethodIndices; +typedef struct Il2CppGenericMethodFunctionsDefinitions +{ + GenericMethodIndex genericMethodIndex; + Il2CppGenericMethodIndices indices; +} Il2CppGenericMethodFunctionsDefinitions; +static inline uint32_t GetTokenType(uint32_t token) +{ + return token & 0xFF000000; +} +static inline uint32_t GetTokenRowId(uint32_t token) +{ + return token & 0x00FFFFFF; +} +typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; +typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; +typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; +typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; +typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; +typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; +typedef uint32_t EncodedMethodIndex; +typedef enum Il2CppMetadataUsage +{ + kIl2CppMetadataUsageInvalid, + kIl2CppMetadataUsageTypeInfo, + kIl2CppMetadataUsageIl2CppType, + kIl2CppMetadataUsageMethodDef, + kIl2CppMetadataUsageFieldInfo, + kIl2CppMetadataUsageStringLiteral, + kIl2CppMetadataUsageMethodRef, +} Il2CppMetadataUsage; +typedef struct Il2CppInterfaceOffsetPair +{ + TypeIndex interfaceTypeIndex; + int32_t offset; +} Il2CppInterfaceOffsetPair; +typedef struct Il2CppTypeDefinition +{ + StringIndex nameIndex; + StringIndex namespaceIndex; + TypeIndex byvalTypeIndex; + TypeIndex declaringTypeIndex; + TypeIndex parentIndex; + TypeIndex elementTypeIndex; + GenericContainerIndex genericContainerIndex; + uint32_t flags; + FieldIndex fieldStart; + MethodIndex methodStart; + EventIndex eventStart; + PropertyIndex propertyStart; + NestedTypeIndex nestedTypesStart; + InterfacesIndex interfacesStart; + VTableIndex vtableStart; + InterfacesIndex interfaceOffsetsStart; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint32_t bitfield; + uint32_t token; +} Il2CppTypeDefinition; +typedef struct Il2CppFieldDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + uint32_t token; +} Il2CppFieldDefinition; +typedef struct Il2CppFieldDefaultValue +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppFieldDefaultValue; +typedef struct Il2CppFieldMarshaledSize +{ + FieldIndex fieldIndex; + TypeIndex typeIndex; + int32_t size; +} Il2CppFieldMarshaledSize; +typedef struct Il2CppFieldRef +{ + TypeIndex typeIndex; + FieldIndex fieldIndex; +} Il2CppFieldRef; +typedef struct Il2CppParameterDefinition +{ + StringIndex nameIndex; + uint32_t token; + TypeIndex typeIndex; +} Il2CppParameterDefinition; +typedef struct Il2CppParameterDefaultValue +{ + ParameterIndex parameterIndex; + TypeIndex typeIndex; + DefaultValueDataIndex dataIndex; +} Il2CppParameterDefaultValue; +typedef struct Il2CppMethodDefinition +{ + StringIndex nameIndex; + TypeDefinitionIndex declaringType; + TypeIndex returnType; + ParameterIndex parameterStart; + GenericContainerIndex genericContainerIndex; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMethodDefinition; +typedef struct Il2CppEventDefinition +{ + StringIndex nameIndex; + TypeIndex typeIndex; + MethodIndex add; + MethodIndex remove; + MethodIndex raise; + uint32_t token; +} Il2CppEventDefinition; +typedef struct Il2CppPropertyDefinition +{ + StringIndex nameIndex; + MethodIndex get; + MethodIndex set; + uint32_t attrs; + uint32_t token; +} Il2CppPropertyDefinition; +typedef struct Il2CppStringLiteral +{ + uint32_t length; + StringLiteralIndex dataIndex; +} Il2CppStringLiteral; +typedef struct Il2CppAssemblyNameDefinition +{ + StringIndex nameIndex; + StringIndex cultureIndex; + StringIndex publicKeyIndex; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyNameDefinition; +typedef struct Il2CppImageDefinition +{ + StringIndex nameIndex; + AssemblyIndex assemblyIndex; + TypeDefinitionIndex typeStart; + uint32_t typeCount; + TypeDefinitionIndex exportedTypeStart; + uint32_t exportedTypeCount; + MethodIndex entryPointIndex; + uint32_t token; + CustomAttributeIndex customAttributeStart; + uint32_t customAttributeCount; +} Il2CppImageDefinition; +typedef struct Il2CppAssemblyDefinition +{ + ImageIndex imageIndex; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyNameDefinition aname; +} Il2CppAssemblyDefinition; +typedef struct Il2CppCustomAttributeTypeRange +{ + uint32_t token; + int32_t start; + int32_t count; +} Il2CppCustomAttributeTypeRange; +typedef struct Il2CppMetadataRange +{ + int32_t start; + int32_t length; +} Il2CppMetadataRange; +typedef struct Il2CppGenericContainer +{ + int32_t ownerIndex; + int32_t type_argc; + int32_t is_method; + GenericParameterIndex genericParameterStart; +} Il2CppGenericContainer; +typedef struct Il2CppGenericParameter +{ + GenericContainerIndex ownerIndex; + StringIndex nameIndex; + GenericParameterConstraintIndex constraintsStart; + int16_t constraintsCount; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameter; +typedef struct Il2CppWindowsRuntimeTypeNamePair +{ + StringIndex nameIndex; + TypeIndex typeIndex; +} Il2CppWindowsRuntimeTypeNamePair; +#pragma pack(push, p1,4) +typedef struct Il2CppGlobalMetadataHeader +{ + int32_t sanity; + int32_t version; + int32_t stringLiteralOffset; + int32_t stringLiteralCount; + int32_t stringLiteralDataOffset; + int32_t stringLiteralDataCount; + int32_t stringOffset; + int32_t stringCount; + int32_t eventsOffset; + int32_t eventsCount; + int32_t propertiesOffset; + int32_t propertiesCount; + int32_t methodsOffset; + int32_t methodsCount; + int32_t parameterDefaultValuesOffset; + int32_t parameterDefaultValuesCount; + int32_t fieldDefaultValuesOffset; + int32_t fieldDefaultValuesCount; + int32_t fieldAndParameterDefaultValueDataOffset; + int32_t fieldAndParameterDefaultValueDataCount; + int32_t fieldMarshaledSizesOffset; + int32_t fieldMarshaledSizesCount; + int32_t parametersOffset; + int32_t parametersCount; + int32_t fieldsOffset; + int32_t fieldsCount; + int32_t genericParametersOffset; + int32_t genericParametersCount; + int32_t genericParameterConstraintsOffset; + int32_t genericParameterConstraintsCount; + int32_t genericContainersOffset; + int32_t genericContainersCount; + int32_t nestedTypesOffset; + int32_t nestedTypesCount; + int32_t interfacesOffset; + int32_t interfacesCount; + int32_t vtableMethodsOffset; + int32_t vtableMethodsCount; + int32_t interfaceOffsetsOffset; + int32_t interfaceOffsetsCount; + int32_t typeDefinitionsOffset; + int32_t typeDefinitionsCount; + int32_t imagesOffset; + int32_t imagesCount; + int32_t assembliesOffset; + int32_t assembliesCount; + int32_t fieldRefsOffset; + int32_t fieldRefsCount; + int32_t referencedAssembliesOffset; + int32_t referencedAssembliesCount; + int32_t attributesInfoOffset; + int32_t attributesInfoCount; + int32_t attributeTypesOffset; + int32_t attributeTypesCount; + int32_t unresolvedVirtualCallParameterTypesOffset; + int32_t unresolvedVirtualCallParameterTypesCount; + int32_t unresolvedVirtualCallParameterRangesOffset; + int32_t unresolvedVirtualCallParameterRangesCount; + int32_t windowsRuntimeTypeNamesOffset; + int32_t windowsRuntimeTypeNamesSize; + int32_t windowsRuntimeStringsOffset; + int32_t windowsRuntimeStringsSize; + int32_t exportedTypeDefinitionsOffset; + int32_t exportedTypeDefinitionsCount; +} Il2CppGlobalMetadataHeader; +#pragma pack(pop, p1) +typedef struct Il2CppMetadataField +{ + uint32_t offset; + uint32_t typeIndex; + const char* name; + uint8_t isStatic; +} Il2CppMetadataField; +typedef enum Il2CppMetadataTypeFlags +{ + kNone = 0, + kValueType = 1 << 0, + kArray = 1 << 1, + kArrayRankMask = 0xFFFF0000 +} Il2CppMetadataTypeFlags; +typedef struct Il2CppMetadataType +{ + Il2CppMetadataTypeFlags flags; + Il2CppMetadataField* fields; + uint32_t fieldCount; + uint32_t staticsSize; + uint8_t* statics; + uint32_t baseOrElementTypeIndex; + char* name; + const char* assemblyName; + uint64_t typeInfoAddress; + uint32_t size; +} Il2CppMetadataType; +typedef struct Il2CppMetadataSnapshot +{ + uint32_t typeCount; + Il2CppMetadataType* types; +} Il2CppMetadataSnapshot; +typedef struct Il2CppManagedMemorySection +{ + uint64_t sectionStartAddress; + uint32_t sectionSize; + uint8_t* sectionBytes; +} Il2CppManagedMemorySection; +typedef struct Il2CppManagedHeap +{ + uint32_t sectionCount; + Il2CppManagedMemorySection* sections; +} Il2CppManagedHeap; +typedef struct Il2CppStacks +{ + uint32_t stackCount; + Il2CppManagedMemorySection* stacks; +} Il2CppStacks; +typedef struct NativeObject +{ + uint32_t gcHandleIndex; + uint32_t size; + uint32_t instanceId; + uint32_t classId; + uint32_t referencedNativeObjectIndicesCount; + uint32_t* referencedNativeObjectIndices; +} NativeObject; +typedef struct Il2CppGCHandles +{ + uint32_t trackedObjectCount; + uint64_t* pointersToObjects; +} Il2CppGCHandles; +typedef struct Il2CppRuntimeInformation +{ + uint32_t pointerSize; + uint32_t objectHeaderSize; + uint32_t arrayHeaderSize; + uint32_t arrayBoundsOffsetInHeader; + uint32_t arraySizeOffsetInHeader; + uint32_t allocationGranularity; +} Il2CppRuntimeInformation; +typedef struct Il2CppManagedMemorySnapshot +{ + Il2CppManagedHeap heap; + Il2CppStacks stacks; + Il2CppMetadataSnapshot metadata; + Il2CppGCHandles gcHandles; + Il2CppRuntimeInformation runtimeInformation; + void* additionalUserInformation; +} Il2CppManagedMemorySnapshot; +typedef enum Il2CppTypeEnum +{ + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55 +} Il2CppTypeEnum; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppArrayType +{ + const Il2CppType* etype; + uint8_t rank; + uint8_t numsizes; + uint8_t numlobounds; + int *sizes; + int *lobounds; +} Il2CppArrayType; +typedef struct Il2CppGenericInst +{ + uint32_t type_argc; + const Il2CppType **type_argv; +} Il2CppGenericInst; +typedef struct Il2CppGenericContext +{ + const Il2CppGenericInst *class_inst; + const Il2CppGenericInst *method_inst; +} Il2CppGenericContext; +typedef struct Il2CppGenericClass +{ + const Il2CppType* type; + Il2CppGenericContext context; + Il2CppClass *cached_class; +} Il2CppGenericClass; +typedef struct Il2CppGenericMethod +{ + const MethodInfo* methodDefinition; + Il2CppGenericContext context; +} Il2CppGenericMethod; +typedef struct Il2CppType +{ + union + { + void* dummy; + TypeDefinitionIndex __klassIndex; + Il2CppMetadataTypeHandle typeHandle; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex __genericParameterIndex; + Il2CppMetadataGenericParameterHandle genericParameterHandle; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs : 16; + Il2CppTypeEnum type : 8; + unsigned int num_mods : 5; + unsigned int byref : 1; + unsigned int pinned : 1; + unsigned int valuetype : 1; +} Il2CppType; +typedef struct Il2CppMetadataFieldInfo +{ + const Il2CppType* type; + const char* name; + uint32_t token; +} Il2CppMetadataFieldInfo; +typedef struct Il2CppMetadataMethodInfo +{ + Il2CppMetadataMethodDefinitionHandle handle; + const char* name; + const Il2CppType* return_type; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint16_t parameterCount; +} Il2CppMetadataMethodInfo; +typedef struct Il2CppMetadataParameterInfo +{ + const char* name; + uint32_t token; + const Il2CppType* type; +} Il2CppMetadataParameterInfo; +typedef struct Il2CppMetadataPropertyInfo +{ + const char* name; + const MethodInfo* get; + const MethodInfo* set; + uint32_t attrs; + uint32_t token; +} Il2CppMetadataPropertyInfo; +typedef struct Il2CppMetadataEventInfo +{ + const char* name; + const Il2CppType* type; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} Il2CppMetadataEventInfo; +typedef struct Il2CppInterfaceOffsetInfo +{ + const Il2CppType* interfaceType; + int32_t offset; +} Il2CppInterfaceOffsetInfo; +typedef struct Il2CppGenericParameterInfo +{ + Il2CppMetadataGenericContainerHandle containerHandle; + const char* name; + uint16_t num; + uint16_t flags; +} Il2CppGenericParameterInfo; +typedef enum Il2CppCallConvention +{ + IL2CPP_CALL_DEFAULT, + IL2CPP_CALL_C, + IL2CPP_CALL_STDCALL, + IL2CPP_CALL_THISCALL, + IL2CPP_CALL_FASTCALL, + IL2CPP_CALL_VARARG +} Il2CppCallConvention; +typedef enum Il2CppCharSet +{ + CHARSET_ANSI, + CHARSET_UNICODE, + CHARSET_NOT_SPECIFIED +} Il2CppCharSet; +typedef struct Il2CppHString__ +{ + int unused; +} Il2CppHString__; +typedef Il2CppHString__* Il2CppHString; +typedef struct Il2CppHStringHeader +{ + union + { + void* Reserved1; + char Reserved2[24]; + } Reserved; +} Il2CppHStringHeader; +typedef struct Il2CppGuid +{ + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +} Il2CppGuid; +typedef struct Il2CppSafeArrayBound +{ + uint32_t element_count; + int32_t lower_bound; +} Il2CppSafeArrayBound; +typedef struct Il2CppSafeArray +{ + uint16_t dimension_count; + uint16_t features; + uint32_t element_size; + uint32_t lock_count; + void* data; + Il2CppSafeArrayBound bounds[1]; +} Il2CppSafeArray; +typedef struct Il2CppWin32Decimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } s; + uint16_t signscale; + } u; + uint32_t hi32; + union + { + struct + { + uint32_t lo32; + uint32_t mid32; + } s2; + uint64_t lo64; + } u2; +} Il2CppWin32Decimal; +typedef int16_t IL2CPP_VARIANT_BOOL; +typedef enum Il2CppVarType +{ + IL2CPP_VT_EMPTY = 0, + IL2CPP_VT_NULL = 1, + IL2CPP_VT_I2 = 2, + IL2CPP_VT_I4 = 3, + IL2CPP_VT_R4 = 4, + IL2CPP_VT_R8 = 5, + IL2CPP_VT_CY = 6, + IL2CPP_VT_DATE = 7, + IL2CPP_VT_BSTR = 8, + IL2CPP_VT_DISPATCH = 9, + IL2CPP_VT_ERROR = 10, + IL2CPP_VT_BOOL = 11, + IL2CPP_VT_VARIANT = 12, + IL2CPP_VT_UNKNOWN = 13, + IL2CPP_VT_DECIMAL = 14, + IL2CPP_VT_I1 = 16, + IL2CPP_VT_UI1 = 17, + IL2CPP_VT_UI2 = 18, + IL2CPP_VT_UI4 = 19, + IL2CPP_VT_I8 = 20, + IL2CPP_VT_UI8 = 21, + IL2CPP_VT_INT = 22, + IL2CPP_VT_UINT = 23, + IL2CPP_VT_VOID = 24, + IL2CPP_VT_HRESULT = 25, + IL2CPP_VT_PTR = 26, + IL2CPP_VT_SAFEARRAY = 27, + IL2CPP_VT_CARRAY = 28, + IL2CPP_VT_USERDEFINED = 29, + IL2CPP_VT_LPSTR = 30, + IL2CPP_VT_LPWSTR = 31, + IL2CPP_VT_RECORD = 36, + IL2CPP_VT_INT_PTR = 37, + IL2CPP_VT_UINT_PTR = 38, + IL2CPP_VT_FILETIME = 64, + IL2CPP_VT_BLOB = 65, + IL2CPP_VT_STREAM = 66, + IL2CPP_VT_STORAGE = 67, + IL2CPP_VT_STREAMED_OBJECT = 68, + IL2CPP_VT_STORED_OBJECT = 69, + IL2CPP_VT_BLOB_OBJECT = 70, + IL2CPP_VT_CF = 71, + IL2CPP_VT_CLSID = 72, + IL2CPP_VT_VERSIONED_STREAM = 73, + IL2CPP_VT_BSTR_BLOB = 0xfff, + IL2CPP_VT_VECTOR = 0x1000, + IL2CPP_VT_ARRAY = 0x2000, + IL2CPP_VT_BYREF = 0x4000, + IL2CPP_VT_RESERVED = 0x8000, + IL2CPP_VT_ILLEGAL = 0xffff, + IL2CPP_VT_ILLEGALMASKED = 0xfff, + IL2CPP_VT_TYPEMASK = 0xfff, +} Il2CppVarType; +typedef struct Il2CppVariant Il2CppVariant; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppVariant +{ + union + { + struct __tagVARIANT + { + uint16_t type; + uint16_t reserved1; + uint16_t reserved2; + uint16_t reserved3; + union + { + int64_t llVal; + int32_t lVal; + uint8_t bVal; + int16_t iVal; + float fltVal; + double dblVal; + IL2CPP_VARIANT_BOOL boolVal; + int32_t scode; + int64_t cyVal; + double date; + Il2CppChar* bstrVal; + Il2CppIUnknown* punkVal; + void* pdispVal; + Il2CppSafeArray* parray; + uint8_t* pbVal; + int16_t* piVal; + int32_t* plVal; + int64_t* pllVal; + float* pfltVal; + double* pdblVal; + IL2CPP_VARIANT_BOOL* pboolVal; + int32_t* pscode; + int64_t* pcyVal; + double* pdate; + Il2CppChar* pbstrVal; + Il2CppIUnknown** ppunkVal; + void** ppdispVal; + Il2CppSafeArray** pparray; + struct Il2CppVariant* pvarVal; + void* byref; + char cVal; + uint16_t uiVal; + uint32_t ulVal; + uint64_t ullVal; + int intVal; + unsigned int uintVal; + Il2CppWin32Decimal* pdecVal; + char* pcVal; + uint16_t* puiVal; + uint32_t* pulVal; + uint64_t* pullVal; + int* pintVal; + unsigned int* puintVal; + struct __tagBRECORD + { + void* pvRecord; + void* pRecInfo; + } n4; + } n3; + } n2; + Il2CppWin32Decimal decVal; + } n1; +} Il2CppVariant; +typedef struct Il2CppFileTime +{ + uint32_t low; + uint32_t high; +} Il2CppFileTime; +typedef struct Il2CppStatStg +{ + Il2CppChar* name; + uint32_t type; + uint64_t size; + Il2CppFileTime mtime; + Il2CppFileTime ctime; + Il2CppFileTime atime; + uint32_t mode; + uint32_t locks; + Il2CppGuid clsid; + uint32_t state; + uint32_t reserved; +} Il2CppStatStg; +typedef enum Il2CppWindowsRuntimeTypeKind +{ + kTypeKindPrimitive = 0, + kTypeKindMetadata, + kTypeKindCustom +} Il2CppWindowsRuntimeTypeKind; +typedef struct Il2CppWindowsRuntimeTypeName +{ + Il2CppHString typeName; + enum Il2CppWindowsRuntimeTypeKind typeKind; +} Il2CppWindowsRuntimeTypeName; +typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); +typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); +typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); +typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); +typedef struct Il2CppInteropData +{ + Il2CppMethodPointer delegatePInvokeWrapperFunction; + PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; + PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; + PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; + CreateCCWFunc createCCWFunction; + const Il2CppGuid* guid; + const Il2CppType* type; +} Il2CppInteropData; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppGuid Il2CppGuid; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppAppDomain Il2CppAppDomain; +typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; +typedef struct Il2CppDelegate Il2CppDelegate; +typedef struct Il2CppAppContext Il2CppAppContext; +typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; +typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; +typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; +typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; +typedef struct VirtualInvokeData +{ + Il2CppMethodPointer methodPtr; + const MethodInfo* method; +} VirtualInvokeData; +typedef enum Il2CppTypeNameFormat +{ + IL2CPP_TYPE_NAME_FORMAT_IL, + IL2CPP_TYPE_NAME_FORMAT_REFLECTION, + IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, + IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED +} Il2CppTypeNameFormat; +typedef struct Il2CppDefaults +{ + Il2CppImage *corlib; + Il2CppClass *object_class; + Il2CppClass *byte_class; + Il2CppClass *void_class; + Il2CppClass *boolean_class; + Il2CppClass *sbyte_class; + Il2CppClass *int16_class; + Il2CppClass *uint16_class; + Il2CppClass *int32_class; + Il2CppClass *uint32_class; + Il2CppClass *int_class; + Il2CppClass *uint_class; + Il2CppClass *int64_class; + Il2CppClass *uint64_class; + Il2CppClass *single_class; + Il2CppClass *double_class; + Il2CppClass *char_class; + Il2CppClass *string_class; + Il2CppClass *enum_class; + Il2CppClass *array_class; + Il2CppClass *delegate_class; + Il2CppClass *multicastdelegate_class; + Il2CppClass *asyncresult_class; + Il2CppClass *manualresetevent_class; + Il2CppClass *typehandle_class; + Il2CppClass *fieldhandle_class; + Il2CppClass *methodhandle_class; + Il2CppClass *systemtype_class; + Il2CppClass *monotype_class; + Il2CppClass *exception_class; + Il2CppClass *threadabortexception_class; + Il2CppClass *thread_class; + Il2CppClass *internal_thread_class; + Il2CppClass *appdomain_class; + Il2CppClass *appdomain_setup_class; + Il2CppClass *field_info_class; + Il2CppClass *method_info_class; + Il2CppClass *property_info_class; + Il2CppClass *event_info_class; + Il2CppClass *mono_event_info_class; + Il2CppClass *stringbuilder_class; + Il2CppClass *stack_frame_class; + Il2CppClass *stack_trace_class; + Il2CppClass *marshal_class; + Il2CppClass *typed_reference_class; + Il2CppClass *marshalbyrefobject_class; + Il2CppClass *generic_ilist_class; + Il2CppClass *generic_icollection_class; + Il2CppClass *generic_ienumerable_class; + Il2CppClass *generic_ireadonlylist_class; + Il2CppClass *generic_ireadonlycollection_class; + Il2CppClass *runtimetype_class; + Il2CppClass *generic_nullable_class; + Il2CppClass *il2cpp_com_object_class; + Il2CppClass *attribute_class; + Il2CppClass *customattribute_data_class; + Il2CppClass *version; + Il2CppClass *culture_info; + Il2CppClass *async_call_class; + Il2CppClass *assembly_class; + Il2CppClass *mono_assembly_class; + Il2CppClass *assembly_name_class; + Il2CppClass *mono_field_class; + Il2CppClass *mono_method_class; + Il2CppClass *mono_method_info_class; + Il2CppClass *mono_property_info_class; + Il2CppClass *parameter_info_class; + Il2CppClass *mono_parameter_info_class; + Il2CppClass *module_class; + Il2CppClass *pointer_class; + Il2CppClass *system_exception_class; + Il2CppClass *argument_exception_class; + Il2CppClass *wait_handle_class; + Il2CppClass *safe_handle_class; + Il2CppClass *sort_key_class; + Il2CppClass *dbnull_class; + Il2CppClass *error_wrapper_class; + Il2CppClass *missing_class; + Il2CppClass *value_type_class; + Il2CppClass *threadpool_wait_callback_class; + MethodInfo *threadpool_perform_wait_callback_method; + Il2CppClass *mono_method_message_class; + Il2CppClass* ireference_class; + Il2CppClass* ireferencearray_class; + Il2CppClass* ikey_value_pair_class; + Il2CppClass* key_value_pair_class; + Il2CppClass* windows_foundation_uri_class; + Il2CppClass* windows_foundation_iuri_runtime_class_class; + Il2CppClass* system_uri_class; + Il2CppClass* system_guid_class; + Il2CppClass* sbyte_shared_enum; + Il2CppClass* int16_shared_enum; + Il2CppClass* int32_shared_enum; + Il2CppClass* int64_shared_enum; + Il2CppClass* byte_shared_enum; + Il2CppClass* uint16_shared_enum; + Il2CppClass* uint32_shared_enum; + Il2CppClass* uint64_shared_enum; +} Il2CppDefaults; +extern Il2CppDefaults il2cpp_defaults; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct FieldInfo FieldInfo; +typedef struct Il2CppObject Il2CppObject; +typedef struct MemberInfo MemberInfo; +typedef struct CustomAttributesCache +{ + int count; + Il2CppObject** attributes; +} CustomAttributesCache; +typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); +typedef struct FieldInfo +{ + const char* name; + const Il2CppType* type; + Il2CppClass *parent; + int32_t offset; + uint32_t token; +} FieldInfo; +typedef struct PropertyInfo +{ + Il2CppClass *parent; + const char *name; + const MethodInfo *get; + const MethodInfo *set; + uint32_t attrs; + uint32_t token; +} PropertyInfo; +typedef struct EventInfo +{ + const char* name; + const Il2CppType* eventType; + Il2CppClass* parent; + const MethodInfo* add; + const MethodInfo* remove; + const MethodInfo* raise; + uint32_t token; +} EventInfo; +typedef struct ParameterInfo +{ + const char* name; + int32_t position; + uint32_t token; + const Il2CppType* parameter_type; +} ParameterInfo; +typedef void (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**, void*); +typedef enum MethodVariableKind +{ + kMethodVariableKind_This, + kMethodVariableKind_Parameter, + kMethodVariableKind_LocalVariable +} MethodVariableKind; +typedef enum SequencePointKind +{ + kSequencePointKind_Normal, + kSequencePointKind_StepOut +} SequencePointKind; +typedef struct Il2CppMethodExecutionContextInfo +{ + TypeIndex typeIndex; + int32_t nameIndex; + int32_t scopeIndex; +} Il2CppMethodExecutionContextInfo; +typedef struct Il2CppMethodExecutionContextInfoIndex +{ + int32_t startIndex; + int32_t count; +} Il2CppMethodExecutionContextInfoIndex; +typedef struct Il2CppMethodScope +{ + int32_t startOffset; + int32_t endOffset; +} Il2CppMethodScope; +typedef struct Il2CppMethodHeaderInfo +{ + int32_t code_size; + int32_t startScope; + int32_t numScopes; +} Il2CppMethodHeaderInfo; +typedef struct Il2CppSequencePointSourceFile +{ + const char *file; + uint8_t hash[16]; +} Il2CppSequencePointSourceFile; +typedef struct Il2CppTypeSourceFilePair +{ + TypeDefinitionIndex __klassIndex; + int32_t sourceFileIndex; +} Il2CppTypeSourceFilePair; +typedef struct Il2CppSequencePoint +{ + MethodIndex __methodDefinitionIndex; + int32_t sourceFileIndex; + int32_t lineStart, lineEnd; + int32_t columnStart, columnEnd; + int32_t ilOffset; + SequencePointKind kind; + int32_t isActive; + int32_t id; +} Il2CppSequencePoint; +typedef struct Il2CppCatchPoint +{ + MethodIndex __methodDefinitionIndex; + TypeIndex catchTypeIndex; + int32_t ilOffset; + int32_t tryId; + int32_t parentTryId; +} Il2CppCatchPoint; +typedef struct Il2CppDebuggerMetadataRegistration +{ + Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; + Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; + Il2CppMethodScope* methodScopes; + Il2CppMethodHeaderInfo* methodHeaderInfos; + Il2CppSequencePointSourceFile* sequencePointSourceFiles; + int32_t numSequencePoints; + Il2CppSequencePoint* sequencePoints; + int32_t numCatchPoints; + Il2CppCatchPoint* catchPoints; + int32_t numTypeSourceFileEntries; + Il2CppTypeSourceFilePair* typeSourceFiles; + const char** methodExecutionContextInfoStrings; +} Il2CppDebuggerMetadataRegistration; +typedef union Il2CppRGCTXData +{ + void* rgctxDataDummy; + const MethodInfo* method; + const Il2CppType* type; + Il2CppClass* klass; +} Il2CppRGCTXData; +typedef struct MethodInfo +{ + Il2CppMethodPointer methodPointer; + InvokerMethod invoker_method; + const char* name; + Il2CppClass *klass; + const Il2CppType *return_type; + const ParameterInfo* parameters; + union + { + const Il2CppRGCTXData* rgctx_data; + Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; + }; + union + { + const Il2CppGenericMethod* genericMethod; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + }; + uint32_t token; + uint16_t flags; + uint16_t iflags; + uint16_t slot; + uint8_t parameters_count; + uint8_t is_generic : 1; + uint8_t is_inflated : 1; + uint8_t wrapper_type : 1; + uint8_t is_marshaled_from_native : 1; +} MethodInfo; +typedef struct Il2CppRuntimeInterfaceOffsetPair +{ + Il2CppClass* interfaceType; + int32_t offset; +} Il2CppRuntimeInterfaceOffsetPair; +typedef struct Il2CppClass +{ + const Il2CppImage* image; + void* gc_desc; + const char* name; + const char* namespaze; + Il2CppType byval_arg; + Il2CppType this_arg; + Il2CppClass* element_class; + Il2CppClass* castClass; + Il2CppClass* declaringType; + Il2CppClass* parent; + Il2CppGenericClass *generic_class; + Il2CppMetadataTypeHandle typeMetadataHandle; + const Il2CppInteropData* interopData; + Il2CppClass* klass; + FieldInfo* fields; + const EventInfo* events; + const PropertyInfo* properties; + const MethodInfo** methods; + Il2CppClass** nestedTypes; + Il2CppClass** implementedInterfaces; + Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; + void* static_fields; + const Il2CppRGCTXData* rgctx_data; + struct Il2CppClass** typeHierarchy; + void *unity_user_data; + uint32_t initializationExceptionGCHandle; + uint32_t cctor_started; + uint32_t cctor_finished; + __attribute__((aligned(8))) size_t cctor_thread; + Il2CppMetadataGenericContainerHandle genericContainerHandle; + uint32_t instance_size; + uint32_t actualSize; + uint32_t element_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; + int32_t thread_static_fields_offset; + uint32_t flags; + uint32_t token; + uint16_t method_count; + uint16_t property_count; + uint16_t field_count; + uint16_t event_count; + uint16_t nested_type_count; + uint16_t vtable_count; + uint16_t interfaces_count; + uint16_t interface_offsets_count; + uint8_t typeHierarchyDepth; + uint8_t genericRecursionDepth; + uint8_t rank; + uint8_t minimumAlignment; + uint8_t naturalAligment; + uint8_t packingSize; + uint8_t initialized_and_no_error : 1; + uint8_t initialized : 1; + uint8_t enumtype : 1; + uint8_t is_generic : 1; + uint8_t has_references : 1; + uint8_t init_pending : 1; + uint8_t size_inited : 1; + uint8_t has_finalize : 1; + uint8_t has_cctor : 1; + uint8_t is_blittable : 1; + uint8_t is_import_or_windows_runtime : 1; + uint8_t is_vtable_initialized : 1; + uint8_t has_initialization_error : 1; + VirtualInvokeData vtable[32]; +} Il2CppClass; + +typedef struct Il2CppTypeDefinitionSizes +{ + uint32_t instance_size; + int32_t native_size; + uint32_t static_fields_size; + uint32_t thread_static_fields_size; +} Il2CppTypeDefinitionSizes; +typedef struct Il2CppDomain +{ + Il2CppAppDomain* domain; + Il2CppAppDomainSetup* setup; + Il2CppAppContext* default_context; + const char* friendly_name; + uint32_t domain_id; + volatile int threadpool_jobs; + void* agent_info; +} Il2CppDomain; +typedef struct Il2CppAssemblyName +{ + const char* name; + const char* culture; + const uint8_t* public_key; + uint32_t hash_alg; + int32_t hash_len; + uint32_t flags; + int32_t major; + int32_t minor; + int32_t build; + int32_t revision; + uint8_t public_key_token[8]; +} Il2CppAssemblyName; +typedef struct Il2CppImage +{ + const char* name; + const char *nameNoExt; + Il2CppAssembly* assembly; + uint32_t typeCount; + uint32_t exportedTypeCount; + uint32_t customAttributeCount; + Il2CppMetadataImageHandle metadataHandle; + Il2CppNameToTypeHandleHashTable * nameToClassHashTable; + const Il2CppCodeGenModule* codeGenModule; + uint32_t token; + uint8_t dynamic; +} Il2CppImage; +typedef struct Il2CppAssembly +{ + Il2CppImage* image; + uint32_t token; + int32_t referencedAssemblyStart; + int32_t referencedAssemblyCount; + Il2CppAssemblyName aname; +} Il2CppAssembly; +typedef struct Il2CppCodeGenOptions +{ + uint8_t enablePrimitiveValueTypeGenericSharing; + int maximumRuntimeGenericDepth; +} Il2CppCodeGenOptions; +typedef struct Il2CppRange +{ + int32_t start; + int32_t length; +} Il2CppRange; +typedef struct Il2CppTokenRangePair +{ + uint32_t token; + Il2CppRange range; +} Il2CppTokenRangePair; +typedef struct Il2CppTokenIndexMethodTuple +{ + uint32_t token; + int32_t index; + void** method; + uint32_t __genericMethodIndex; +} Il2CppTokenIndexMethodTuple; +typedef struct Il2CppTokenAdjustorThunkPair +{ + uint32_t token; + Il2CppMethodPointer adjustorThunk; +} Il2CppTokenAdjustorThunkPair; +typedef struct Il2CppWindowsRuntimeFactoryTableEntry +{ + const Il2CppType* type; + Il2CppMethodPointer createFactoryFunction; +} Il2CppWindowsRuntimeFactoryTableEntry; +typedef struct Il2CppCodeGenModule +{ + const char* moduleName; + const uint32_t methodPointerCount; + const Il2CppMethodPointer* methodPointers; + const uint32_t adjustorThunkCount; + const Il2CppTokenAdjustorThunkPair* adjustorThunks; + const int32_t* invokerIndices; + const uint32_t reversePInvokeWrapperCount; + const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; + const uint32_t rgctxRangesCount; + const Il2CppTokenRangePair* rgctxRanges; + const uint32_t rgctxsCount; + const Il2CppRGCTXDefinition* rgctxs; + const Il2CppDebuggerMetadataRegistration *debuggerMetadata; + const CustomAttributesCacheGenerator* customAttributeCacheGenerator; + const Il2CppMethodPointer moduleInitializer; + TypeDefinitionIndex* staticConstructorTypeIndices; + const Il2CppMetadataRegistration* metadataRegistration; + const Il2CppCodeRegistration* codeRegistaration; +} Il2CppCodeGenModule; +typedef struct Il2CppCodeRegistration +{ + uint32_t reversePInvokeWrapperCount; + const Il2CppMethodPointer* reversePInvokeWrappers; + uint32_t genericMethodPointersCount; + const Il2CppMethodPointer* genericMethodPointers; + const Il2CppMethodPointer* genericAdjustorThunks; + uint32_t invokerPointersCount; + const InvokerMethod* invokerPointers; + uint32_t unresolvedVirtualCallCount; + const Il2CppMethodPointer* unresolvedVirtualCallPointers; + uint32_t interopDataCount; + Il2CppInteropData* interopData; + uint32_t windowsRuntimeFactoryCount; + Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; + uint32_t codeGenModulesCount; + const Il2CppCodeGenModule** codeGenModules; +} Il2CppCodeRegistration; +typedef struct Il2CppMetadataRegistration +{ + int32_t genericClassesCount; + Il2CppGenericClass* const * genericClasses; + int32_t genericInstsCount; + const Il2CppGenericInst* const * genericInsts; + int32_t genericMethodTableCount; + const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; + int32_t typesCount; + const Il2CppType* const * types; + int32_t methodSpecsCount; + const Il2CppMethodSpec* methodSpecs; + FieldIndex fieldOffsetsCount; + const int32_t** fieldOffsets; + TypeDefinitionIndex typeDefinitionsSizesCount; + const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; + const size_t metadataUsagesCount; + void** const* metadataUsages; +} Il2CppMetadataRegistration; +typedef struct Il2CppPerfCounters +{ + uint32_t jit_methods; + uint32_t jit_bytes; + uint32_t jit_time; + uint32_t jit_failures; + uint32_t exceptions_thrown; + uint32_t exceptions_filters; + uint32_t exceptions_finallys; + uint32_t exceptions_depth; + uint32_t aspnet_requests_queued; + uint32_t aspnet_requests; + uint32_t gc_collections0; + uint32_t gc_collections1; + uint32_t gc_collections2; + uint32_t gc_promotions0; + uint32_t gc_promotions1; + uint32_t gc_promotion_finalizers; + uint32_t gc_gen0size; + uint32_t gc_gen1size; + uint32_t gc_gen2size; + uint32_t gc_lossize; + uint32_t gc_fin_survivors; + uint32_t gc_num_handles; + uint32_t gc_allocated; + uint32_t gc_induced; + uint32_t gc_time; + uint32_t gc_total_bytes; + uint32_t gc_committed_bytes; + uint32_t gc_reserved_bytes; + uint32_t gc_num_pinned; + uint32_t gc_sync_blocks; + uint32_t remoting_calls; + uint32_t remoting_channels; + uint32_t remoting_proxies; + uint32_t remoting_classes; + uint32_t remoting_objects; + uint32_t remoting_contexts; + uint32_t loader_classes; + uint32_t loader_total_classes; + uint32_t loader_appdomains; + uint32_t loader_total_appdomains; + uint32_t loader_assemblies; + uint32_t loader_total_assemblies; + uint32_t loader_failures; + uint32_t loader_bytes; + uint32_t loader_appdomains_uloaded; + uint32_t thread_contentions; + uint32_t thread_queue_len; + uint32_t thread_queue_max; + uint32_t thread_num_logical; + uint32_t thread_num_physical; + uint32_t thread_cur_recognized; + uint32_t thread_num_recognized; + uint32_t interop_num_ccw; + uint32_t interop_num_stubs; + uint32_t interop_num_marshals; + uint32_t security_num_checks; + uint32_t security_num_link_checks; + uint32_t security_time; + uint32_t security_depth; + uint32_t unused; + uint64_t threadpool_workitems; + uint64_t threadpool_ioworkitems; + unsigned int threadpool_threads; + unsigned int threadpool_iothreads; +} Il2CppPerfCounters; +typedef struct Il2CppClass Il2CppClass; +typedef struct MethodInfo MethodInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct FieldInfo FieldInfo; +typedef struct EventInfo EventInfo; +typedef struct Il2CppType Il2CppType; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppAsyncCall Il2CppAsyncCall; +typedef struct Il2CppIUnknown Il2CppIUnknown; +typedef struct Il2CppWaitHandle Il2CppWaitHandle; +typedef struct MonitorData MonitorData; +typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; +typedef Il2CppClass Il2CppVTable; +typedef struct Il2CppObject +{ + union + { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; +typedef int32_t il2cpp_array_lower_bound_t; +typedef struct Il2CppArrayBounds +{ + il2cpp_array_size_t length; + il2cpp_array_lower_bound_t lower_bound; +} Il2CppArrayBounds; +typedef struct Il2CppArray +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; +} Il2CppArray; +typedef struct Il2CppArraySize +{ + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + __attribute__((aligned(8))) void* vector[32]; +} Il2CppArraySize; +typedef struct Il2CppString +{ + Il2CppObject object; + int32_t length; + Il2CppChar chars[32]; +} Il2CppString; +typedef struct Il2CppReflectionType +{ + Il2CppObject object; + const Il2CppType *type; +} Il2CppReflectionType; +typedef struct Il2CppReflectionRuntimeType +{ + Il2CppReflectionType type; + Il2CppObject* type_info; + Il2CppObject* genericCache; + Il2CppObject* serializationCtor; +} Il2CppReflectionRuntimeType; +typedef struct Il2CppReflectionMonoType +{ + Il2CppReflectionRuntimeType type; +} Il2CppReflectionMonoType; +typedef struct Il2CppReflectionEvent +{ + Il2CppObject object; + Il2CppObject *cached_add_event; +} Il2CppReflectionEvent; +typedef struct Il2CppReflectionMonoEvent +{ + Il2CppReflectionEvent event; + Il2CppReflectionType* reflectedType; + const EventInfo* eventInfo; +} Il2CppReflectionMonoEvent; +typedef struct Il2CppReflectionMonoEventInfo +{ + Il2CppReflectionType* declaringType; + Il2CppReflectionType* reflectedType; + Il2CppString* name; + Il2CppReflectionMethod* addMethod; + Il2CppReflectionMethod* removeMethod; + Il2CppReflectionMethod* raiseMethod; + uint32_t eventAttributes; + Il2CppArray* otherMethods; +} Il2CppReflectionMonoEventInfo; +typedef struct Il2CppReflectionField +{ + Il2CppObject object; + Il2CppClass *klass; + FieldInfo *field; + Il2CppString *name; + Il2CppReflectionType *type; + uint32_t attrs; +} Il2CppReflectionField; +typedef struct Il2CppReflectionProperty +{ + Il2CppObject object; + Il2CppClass *klass; + const PropertyInfo *property; +} Il2CppReflectionProperty; +typedef struct Il2CppReflectionMethod +{ + Il2CppObject object; + const MethodInfo *method; + Il2CppString *name; + Il2CppReflectionType *reftype; +} Il2CppReflectionMethod; +typedef struct Il2CppReflectionGenericMethod +{ + Il2CppReflectionMethod base; +} Il2CppReflectionGenericMethod; +typedef struct Il2CppMethodInfo +{ + Il2CppReflectionType *parent; + Il2CppReflectionType *ret; + uint32_t attrs; + uint32_t implattrs; + uint32_t callconv; +} Il2CppMethodInfo; +typedef struct Il2CppPropertyInfo +{ + Il2CppReflectionType* parent; + Il2CppReflectionType* declaringType; + Il2CppString *name; + Il2CppReflectionMethod *get; + Il2CppReflectionMethod *set; + uint32_t attrs; +} Il2CppPropertyInfo; +typedef struct Il2CppReflectionParameter +{ + Il2CppObject object; + Il2CppReflectionType *ClassImpl; + Il2CppObject *DefaultValueImpl; + Il2CppObject *MemberImpl; + Il2CppString *NameImpl; + int32_t PositionImpl; + uint32_t AttrsImpl; + Il2CppObject *MarshalAsImpl; +} Il2CppReflectionParameter; +typedef struct Il2CppReflectionModule +{ + Il2CppObject obj; + const Il2CppImage* image; + Il2CppReflectionAssembly* assembly; + Il2CppString* fqname; + Il2CppString* name; + Il2CppString* scopename; + uint8_t is_resource; + uint32_t token; +} Il2CppReflectionModule; +typedef struct Il2CppReflectionAssemblyName +{ + Il2CppObject obj; + Il2CppString *name; + Il2CppString *codebase; + int32_t major, minor, build, revision; + Il2CppObject *cultureInfo; + uint32_t flags; + uint32_t hashalg; + Il2CppObject *keypair; + Il2CppArray *publicKey; + Il2CppArray *keyToken; + uint32_t versioncompat; + Il2CppObject *version; + uint32_t processor_architecture; + uint32_t contentType; +} Il2CppReflectionAssemblyName; +typedef struct Il2CppReflectionAssembly +{ + Il2CppObject object; + const Il2CppAssembly *assembly; + Il2CppObject *resolve_event_holder; + Il2CppObject *evidence; + Il2CppObject *minimum; + Il2CppObject *optional; + Il2CppObject *refuse; + Il2CppObject *granted; + Il2CppObject *denied; + uint8_t from_byte_array; + Il2CppString *name; +} Il2CppReflectionAssembly; +typedef struct Il2CppReflectionMarshal +{ + Il2CppObject object; + int32_t count; + int32_t type; + int32_t eltype; + Il2CppString* guid; + Il2CppString* mcookie; + Il2CppString* marshaltype; + Il2CppObject* marshaltyperef; + int32_t param_num; + uint8_t has_size; +} Il2CppReflectionMarshal; +typedef struct Il2CppReflectionPointer +{ + Il2CppObject object; + void* data; + Il2CppReflectionType* type; +} Il2CppReflectionPointer; +typedef struct Il2CppInternalThread +{ + Il2CppObject obj; + int lock_thread_id; + void* handle; + void* native_handle; + Il2CppArray* cached_culture_info; + Il2CppChar* name; + int name_len; + uint32_t state; + Il2CppObject* abort_exc; + int abort_state_handle; + uint64_t tid; + intptr_t debugger_thread; + void** static_data; + void* runtime_thread_info; + Il2CppObject* current_appcontext; + Il2CppObject* root_domain_thread; + Il2CppArray* _serialized_principal; + int _serialized_principal_version; + void* appdomain_refs; + int32_t interruption_requested; + void* synch_cs; + uint8_t threadpool_thread; + uint8_t thread_interrupt_requested; + int stack_size; + uint8_t apartment_state; + int critical_region_level; + int managed_id; + uint32_t small_id; + void* manage_callback; + void* interrupt_on_stop; + intptr_t flags; + void* thread_pinning_ref; + void* abort_protected_block_count; + int32_t priority; + void* owned_mutexes; + void * suspended; + int32_t self_suspended; + size_t thread_state; + size_t unused2; + void* last; +} Il2CppInternalThread; +typedef struct Il2CppIOSelectorJob +{ + Il2CppObject object; + int32_t operation; + Il2CppObject *callback; + Il2CppObject *state; +} Il2CppIOSelectorJob; +typedef enum +{ + Il2Cpp_CallType_Sync = 0, + Il2Cpp_CallType_BeginInvoke = 1, + Il2Cpp_CallType_EndInvoke = 2, + Il2Cpp_CallType_OneWay = 3 +} Il2CppCallType; +typedef struct Il2CppMethodMessage +{ + Il2CppObject obj; + Il2CppReflectionMethod *method; + Il2CppArray *args; + Il2CppArray *names; + Il2CppArray *arg_types; + Il2CppObject *ctx; + Il2CppObject *rval; + Il2CppObject *exc; + Il2CppAsyncResult *async_result; + uint32_t call_type; +} Il2CppMethodMessage; +typedef struct Il2CppAppDomainSetup +{ + Il2CppObject object; + Il2CppString* application_base; + Il2CppString* application_name; + Il2CppString* cache_path; + Il2CppString* configuration_file; + Il2CppString* dynamic_base; + Il2CppString* license_file; + Il2CppString* private_bin_path; + Il2CppString* private_bin_path_probe; + Il2CppString* shadow_copy_directories; + Il2CppString* shadow_copy_files; + uint8_t publisher_policy; + uint8_t path_changed; + int loader_optimization; + uint8_t disallow_binding_redirects; + uint8_t disallow_code_downloads; + Il2CppObject* activation_arguments; + Il2CppObject* domain_initializer; + Il2CppObject* application_trust; + Il2CppArray* domain_initializer_args; + uint8_t disallow_appbase_probe; + Il2CppArray* configuration_bytes; + Il2CppArray* serialized_non_primitives; +} Il2CppAppDomainSetup; +typedef struct Il2CppThread +{ + Il2CppObject obj; + Il2CppInternalThread* internal_thread; + Il2CppObject* start_obj; + Il2CppException* pending_exception; + Il2CppObject* principal; + int32_t principal_version; + Il2CppDelegate* delegate; + Il2CppObject* executionContext; + uint8_t executionContextBelongsToOuterScope; +} Il2CppThread; +typedef struct Il2CppException +{ + Il2CppObject object; + Il2CppString* className; + Il2CppString* message; + Il2CppObject* _data; + struct Il2CppException* inner_ex; + Il2CppString* _helpURL; + Il2CppArray* trace_ips; + Il2CppString* stack_trace; + Il2CppString* remote_stack_trace; + int remote_stack_index; + Il2CppObject* _dynamicMethods; + il2cpp_hresult_t hresult; + Il2CppString* source; + Il2CppObject* safeSerializationManager; + Il2CppArray* captured_traces; + Il2CppArray* native_trace_ips; +} Il2CppException; +typedef struct Il2CppSystemException +{ + Il2CppException base; +} Il2CppSystemException; +typedef struct Il2CppArgumentException +{ + Il2CppException base; + Il2CppString *argName; +} Il2CppArgumentException; +typedef struct Il2CppTypedRef +{ + const Il2CppType *type; + void* value; + Il2CppClass *klass; +} Il2CppTypedRef; +typedef struct Il2CppDelegate +{ + Il2CppObject object; + Il2CppMethodPointer method_ptr; + InvokerMethod invoke_impl; + Il2CppObject *target; + const MethodInfo *method; + void* delegate_trampoline; + intptr_t extraArg; + uint8_t **method_code; + Il2CppReflectionMethod *method_info; + Il2CppReflectionMethod *original_method_info; + Il2CppObject *data; + uint8_t method_is_virtual; +} Il2CppDelegate; +typedef struct Il2CppMulticastDelegate +{ + Il2CppDelegate delegate; + Il2CppArray *delegates; +} Il2CppMulticastDelegate; +typedef struct Il2CppMarshalByRefObject +{ + Il2CppObject obj; + Il2CppObject *identity; +} Il2CppMarshalByRefObject; +typedef struct Il2CppAppDomain +{ + Il2CppMarshalByRefObject mbr; + Il2CppDomain *data; +} Il2CppAppDomain; +typedef struct Il2CppStackFrame +{ + Il2CppObject obj; + int32_t il_offset; + int32_t native_offset; + uint64_t methodAddress; + uint32_t methodIndex; + Il2CppReflectionMethod *method; + Il2CppString *filename; + int32_t line; + int32_t column; + Il2CppString *internal_method_name; +} Il2CppStackFrame; +typedef struct Il2CppDateTimeFormatInfo +{ + Il2CppObject obj; + Il2CppObject* CultureData; + Il2CppString* Name; + Il2CppString* LangName; + Il2CppObject* CompareInfo; + Il2CppObject* CultureInfo; + Il2CppString* AMDesignator; + Il2CppString* PMDesignator; + Il2CppString* DateSeparator; + Il2CppString* GeneralShortTimePattern; + Il2CppString* GeneralLongTimePattern; + Il2CppString* TimeSeparator; + Il2CppString* MonthDayPattern; + Il2CppString* DateTimeOffsetPattern; + Il2CppObject* Calendar; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; + Il2CppString* FullDateTimePattern; + Il2CppArray* AbbreviatedDayNames; + Il2CppArray* ShortDayNames; + Il2CppArray* DayNames; + Il2CppArray* AbbreviatedMonthNames; + Il2CppArray* MonthNames; + Il2CppArray* GenitiveMonthNames; + Il2CppArray* GenitiveAbbreviatedMonthNames; + Il2CppArray* LeapYearMonthNames; + Il2CppString* LongDatePattern; + Il2CppString* ShortDatePattern; + Il2CppString* YearMonthPattern; + Il2CppString* LongTimePattern; + Il2CppString* ShortTimePattern; + Il2CppArray* YearMonthPatterns; + Il2CppArray* ShortDatePatterns; + Il2CppArray* LongDatePatterns; + Il2CppArray* ShortTimePatterns; + Il2CppArray* LongTimePatterns; + Il2CppArray* EraNames; + Il2CppArray* AbbrevEraNames; + Il2CppArray* AbbrevEnglishEraNames; + Il2CppArray* OptionalCalendars; + uint8_t readOnly; + int32_t FormatFlags; + int32_t CultureID; + uint8_t UseUserOverride; + uint8_t UseCalendarInfo; + int32_t DataItem; + uint8_t IsDefaultCalendar; + Il2CppArray* DateWords; + Il2CppString* FullTimeSpanPositivePattern; + Il2CppString* FullTimeSpanNegativePattern; + Il2CppArray* dtfiTokenHash; +} Il2CppDateTimeFormatInfo; +typedef struct Il2CppNumberFormatInfo +{ + Il2CppObject obj; + Il2CppArray* numberGroupSizes; + Il2CppArray* currencyGroupSizes; + Il2CppArray* percentGroupSizes; + Il2CppString* positiveSign; + Il2CppString* negativeSign; + Il2CppString* numberDecimalSeparator; + Il2CppString* numberGroupSeparator; + Il2CppString* currencyGroupSeparator; + Il2CppString* currencyDecimalSeparator; + Il2CppString* currencySymbol; + Il2CppString* ansiCurrencySymbol; + Il2CppString* naNSymbol; + Il2CppString* positiveInfinitySymbol; + Il2CppString* negativeInfinitySymbol; + Il2CppString* percentDecimalSeparator; + Il2CppString* percentGroupSeparator; + Il2CppString* percentSymbol; + Il2CppString* perMilleSymbol; + Il2CppArray* nativeDigits; + int dataItem; + int numberDecimalDigits; + int currencyDecimalDigits; + int currencyPositivePattern; + int currencyNegativePattern; + int numberNegativePattern; + int percentPositivePattern; + int percentNegativePattern; + int percentDecimalDigits; + int digitSubstitution; + uint8_t readOnly; + uint8_t useUserOverride; + uint8_t isInvariant; + uint8_t validForParseAsNumber; + uint8_t validForParseAsCurrency; +} Il2CppNumberFormatInfo; +typedef struct Il2CppCultureData +{ + Il2CppObject obj; + Il2CppString *AMDesignator; + Il2CppString *PMDesignator; + Il2CppString *TimeSeparator; + Il2CppArray *LongTimePatterns; + Il2CppArray *ShortTimePatterns; + uint32_t FirstDayOfWeek; + uint32_t CalendarWeekRule; +} Il2CppCultureData; +typedef struct Il2CppCalendarData +{ + Il2CppObject obj; + Il2CppString *NativeName; + Il2CppArray *ShortDatePatterns; + Il2CppArray *YearMonthPatterns; + Il2CppArray *LongDatePatterns; + Il2CppString *MonthDayPattern; + Il2CppArray *EraNames; + Il2CppArray *AbbreviatedEraNames; + Il2CppArray *AbbreviatedEnglishEraNames; + Il2CppArray *DayNames; + Il2CppArray *AbbreviatedDayNames; + Il2CppArray *SuperShortDayNames; + Il2CppArray *MonthNames; + Il2CppArray *AbbreviatedMonthNames; + Il2CppArray *GenitiveMonthNames; + Il2CppArray *GenitiveAbbreviatedMonthNames; +} Il2CppCalendarData; +typedef struct Il2CppCultureInfo +{ + Il2CppObject obj; + uint8_t is_read_only; + int32_t lcid; + int32_t parent_lcid; + int32_t datetime_index; + int32_t number_index; + int32_t default_calendar_type; + uint8_t use_user_override; + Il2CppNumberFormatInfo* number_format; + Il2CppDateTimeFormatInfo* datetime_format; + Il2CppObject* textinfo; + Il2CppString* name; + Il2CppString* englishname; + Il2CppString* nativename; + Il2CppString* iso3lang; + Il2CppString* iso2lang; + Il2CppString* win3lang; + Il2CppString* territory; + Il2CppArray* native_calendar_names; + Il2CppString* compareinfo; + const void* text_info_data; + int dataItem; + Il2CppObject* calendar; + Il2CppObject* parent_culture; + uint8_t constructed; + Il2CppArray* cached_serialized_form; + Il2CppObject* cultureData; + uint8_t isInherited; +} Il2CppCultureInfo; +typedef struct Il2CppRegionInfo +{ + Il2CppObject obj; + int32_t geo_id; + Il2CppString* iso2name; + Il2CppString* iso3name; + Il2CppString* win3name; + Il2CppString* english_name; + Il2CppString* native_name; + Il2CppString* currency_symbol; + Il2CppString* iso_currency_symbol; + Il2CppString* currency_english_name; + Il2CppString* currency_native_name; +} Il2CppRegionInfo; +typedef struct Il2CppSafeHandle +{ + Il2CppObject base; + void* handle; + int state; + uint8_t owns_handle; + uint8_t fullyInitialized; +} Il2CppSafeHandle; +typedef struct Il2CppStringBuilder Il2CppStringBuilder; +typedef struct Il2CppStringBuilder +{ + Il2CppObject object; + Il2CppArray* chunkChars; + struct Il2CppStringBuilder* chunkPrevious; + int chunkLength; + int chunkOffset; + int maxCapacity; +} Il2CppStringBuilder; +typedef struct Il2CppSocketAddress +{ + Il2CppObject base; + int m_Size; + Il2CppArray* data; + uint8_t m_changed; + int m_hash; +} Il2CppSocketAddress; +typedef struct Il2CppSortKey +{ + Il2CppObject base; + Il2CppString *str; + Il2CppArray *key; + int32_t options; + int32_t lcid; +} Il2CppSortKey; +typedef struct Il2CppErrorWrapper +{ + Il2CppObject base; + int32_t errorCode; +} Il2CppErrorWrapper; +typedef struct Il2CppAsyncResult +{ + Il2CppObject base; + Il2CppObject *async_state; + Il2CppWaitHandle *handle; + Il2CppDelegate *async_delegate; + void* data; + Il2CppAsyncCall *object_data; + uint8_t sync_completed; + uint8_t completed; + uint8_t endinvoke_called; + Il2CppObject *async_callback; + Il2CppObject *execution_context; + Il2CppObject *original_context; +} Il2CppAsyncResult; +typedef struct Il2CppAsyncCall +{ + Il2CppObject base; + Il2CppMethodMessage *msg; + MethodInfo *cb_method; + Il2CppDelegate *cb_target; + Il2CppObject *state; + Il2CppObject *res; + Il2CppArray *out_args; +} Il2CppAsyncCall; +typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; +typedef struct Il2CppExceptionWrapper +{ + Il2CppException* ex; +} Il2CppExceptionWrapper; +typedef struct Il2CppIOAsyncResult +{ + Il2CppObject base; + Il2CppDelegate* callback; + Il2CppObject* state; + Il2CppWaitHandle* wait_handle; + uint8_t completed_synchronously; + uint8_t completed; +} Il2CppIOAsyncResult; +typedef struct Il2CppSocketAsyncResult +{ + Il2CppIOAsyncResult base; + Il2CppObject* socket; + int32_t operation; + Il2CppException* delayedException; + Il2CppObject* endPoint; + Il2CppArray* buffer; + int32_t offset; + int32_t size; + int32_t socket_flags; + Il2CppObject* acceptSocket; + Il2CppArray* addresses; + int32_t port; + Il2CppObject* buffers; + uint8_t reuseSocket; + int32_t currentAddress; + Il2CppObject* acceptedSocket; + int32_t total; + int32_t error; + int32_t endCalled; +} Il2CppSocketAsyncResult; +typedef enum Il2CppResourceLocation +{ + IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, + IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, + IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 +} Il2CppResourceLocation; +typedef struct Il2CppManifestResourceInfo +{ + Il2CppObject object; + Il2CppReflectionAssembly* assembly; + Il2CppString* filename; + uint32_t location; +} Il2CppManifestResourceInfo; +typedef struct Il2CppAppContext +{ + Il2CppObject obj; + int32_t domain_id; + int32_t context_id; + void* static_data; +} Il2CppAppContext; +typedef struct Il2CppDecimal +{ + uint16_t reserved; + union + { + struct + { + uint8_t scale; + uint8_t sign; + } u; + uint16_t signscale; + } u; + uint32_t Hi32; + union + { + struct + { + uint32_t Lo32; + uint32_t Mid32; + } v; + uint64_t Lo64; + } v; +} Il2CppDecimal; +typedef struct Il2CppDouble +{ + uint32_t mantLo : 32; + uint32_t mantHi : 20; + uint32_t exp : 11; + uint32_t sign : 1; +} Il2CppDouble; +typedef union Il2CppDouble_double +{ + Il2CppDouble s; + double d; +} Il2CppDouble_double; +typedef enum Il2CppDecimalCompareResult +{ + IL2CPP_DECIMAL_CMP_LT = -1, + IL2CPP_DECIMAL_CMP_EQ, + IL2CPP_DECIMAL_CMP_GT +} Il2CppDecimalCompareResult; +typedef struct Il2CppSingle +{ + uint32_t mant : 23; + uint32_t exp : 8; + uint32_t sign : 1; +} Il2CppSingle; +typedef union Il2CppSingle_float +{ + Il2CppSingle s; + float f; +} Il2CppSingle_float; diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/cpp/native-lib.cpp index 2cc06c0..b96f01d 100644 --- a/app/src/main/cpp/native-lib.cpp +++ b/app/src/main/cpp/native-lib.cpp @@ -4,6 +4,8 @@ #include #include #include "Includes/il2cpp_dump.h" +#include "Includes/game.h" +#include "Includes/log.h" bool isLibraryLoaded(const char *libraryName) { char line[512] = {0}; @@ -20,18 +22,79 @@ bool isLibraryLoaded(const char *libraryName) { } #define libTarget "libil2cpp.so" -void *dump_thread(void *) { +void *hack_thread(void *) { do { - sleep(10); + sleep(1); } while (!isLibraryLoaded(libTarget)); + sleep(10); //waiting libil2cpp.so fully loaded auto il2cpp_handle = dlopen(libTarget, 4); il2cpp_dump(il2cpp_handle, "/sdcard/Download"); return nullptr; } +//The idea from first Il2Cpp Dumper called PokemonGoDumper +//https://github.com/Jumboperson/PokemonGoDumper/blob/master/main.c#L569 + +int iBeenInjected = 0; +void* pLibRealUnity = 0; +typedef void (*UnitySendMessage_t)(const char* ob, const char* method, const char* msg); +typedef jint(JNICALL* CallJNI_OnLoad_t)(JavaVM* vm, void* reserved); +typedef void(JNICALL* CallJNI_OnUnload_t)(JavaVM* vm, void* reserved); + +UnitySendMessage_t RealUSM = 0; +CallJNI_OnLoad_t RealJNIOnLoad = 0; +CallJNI_OnUnload_t RealJNIOnUnload = 0; +void* libdlopen = 0; + +#ifdef RootMode +JNIEXPORT jint JNICALL CallJNIOL( + JavaVM* vm, void* reserved) +{ + LOGI("Loading librealunity.so"); + if (!pLibRealUnity) + pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); + if (!RealJNIOnLoad) + RealJNIOnLoad = reinterpret_cast(dlsym(pLibRealUnity, "JNI_OnLoad")); + return RealJNIOnLoad(vm, reserved); +} + +JNIEXPORT void JNICALL CallJNIUL( + JavaVM* vm, void* reserved) +{ + if (!pLibRealUnity) + pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); + if (!RealJNIOnUnload) + RealJNIOnUnload = reinterpret_cast(dlsym(pLibRealUnity, + "JNI_OnUnload")); + RealJNIOnUnload(vm, reserved); +} + +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) +{ + if (!iBeenInjected) + { + LOGI("Loading dumper"); + pthread_t ptid; + pthread_create(&ptid, nullptr, hack_thread, nullptr); + } + return CallJNIOL(vm, reserved); +} +JNIEXPORT void JNICALL JNI_OnUnload(JavaVM* vm, void* reserved) +{ + if (!iBeenInjected) + { + pthread_t ptid; + pthread_create(&ptid, nullptr, hack_thread, nullptr); + } + CallJNIUL(vm, reserved); +} +#else + __attribute__((constructor)) void lib_main() { // Create a new thread so it does not block the main thread, means the game would not freeze pthread_t ptid; - pthread_create(&ptid, nullptr, dump_thread, nullptr); + pthread_create(&ptid, nullptr, hack_thread, nullptr); } + +#endif From 0af58cc3af09a5c41f691c5ae227838e10e9c6cf Mon Sep 17 00:00:00 2001 From: n63qwj6nqw3 <40742924+AndnixSH@users.noreply.github.com> Date: Sat, 18 Sep 2021 21:21:58 +0200 Subject: [PATCH 08/41] Reduce sleep time and upgrade gradle --- app/src/main/cpp/native-lib.cpp | 5 ++++- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/cpp/native-lib.cpp index b96f01d..2c3ba64 100644 --- a/app/src/main/cpp/native-lib.cpp +++ b/app/src/main/cpp/native-lib.cpp @@ -26,7 +26,10 @@ void *hack_thread(void *) { do { sleep(1); } while (!isLibraryLoaded(libTarget)); - sleep(10); //waiting libil2cpp.so fully loaded + + //Waiting libil2cpp.so fully loaded. + sleep(3); + auto il2cpp_handle = dlopen(libTarget, 4); il2cpp_dump(il2cpp_handle, "/sdcard/Download"); return nullptr; diff --git a/build.gradle b/build.gradle index f3823c2..914a1ae 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath "com.android.tools.build:gradle:4.1.3" + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0ac3d11..4f65120 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip From e53b60a0f520ae5b44263a1aef8c1ddd19d378b2 Mon Sep 17 00:00:00 2001 From: n63qwj6nqw3 <40742924+AndnixSH@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:23:38 +0100 Subject: [PATCH 09/41] Update from brianGIG --- .gitattributes | 2 + README.md | 2 +- app/build.gradle | 33 +++----------- app/src/main/AndroidManifest.xml | 2 +- app/src/main/cpp/CMakeLists.txt | 12 ------ .../java/com/il2cpp/dumper/MainActivity.java | 17 ++++++++ .../java/com/il2cpp/dumper/MainActivity.kt | 18 -------- app/src/main/jni/Android.mk | 20 +++++++++ app/src/main/jni/Application.mk | 5 +++ app/src/main/{cpp => jni}/Includes/game.h | 3 -- .../{cpp => jni}/Includes/il2cpp-tabledefs.h | 0 .../{cpp => jni}/Includes/il2cpp_dump.cpp | 43 +++++++------------ .../main/{cpp => jni}/Includes/il2cpp_dump.h | 0 .../2017.1.0f3/il2cpp-api-functions.h | 0 .../il2cppapi/2017.1.0f3/il2cpp-class.h | 0 .../2017.1.3f1/il2cpp-api-functions.h | 0 .../il2cppapi/2017.1.3f1/il2cpp-class.h | 0 .../2017.2.0f3/il2cpp-api-functions.h | 0 .../il2cppapi/2017.2.0f3/il2cpp-class.h | 0 .../2017.2.1f1/il2cpp-api-functions.h | 0 .../il2cppapi/2017.2.1f1/il2cpp-class.h | 0 .../2018.1.0f2/il2cpp-api-functions.h | 0 .../il2cppapi/2018.1.0f2/il2cpp-class.h | 0 .../2018.2.0f2/il2cpp-api-functions.h | 0 .../il2cppapi/2018.2.0f2/il2cpp-class.h | 0 .../2018.3.0f2/il2cpp-api-functions.h | 0 .../il2cppapi/2018.3.0f2/il2cpp-class.h | 0 .../2018.3.8f1/il2cpp-api-functions.h | 0 .../il2cppapi/2018.3.8f1/il2cpp-class.h | 0 .../2019.1.0f2/il2cpp-api-functions.h | 0 .../il2cppapi/2019.1.0f2/il2cpp-class.h | 0 .../2019.3.0f6/il2cpp-api-functions.h | 0 .../il2cppapi/2019.3.0f6/il2cpp-class.h | 0 .../2019.3.7f1/il2cpp-api-functions.h | 0 .../il2cppapi/2019.3.7f1/il2cpp-class.h | 0 .../2019.4.15f1/il2cpp-api-functions.h | 0 .../il2cppapi/2019.4.15f1/il2cpp-class.h | 0 .../2019.4.21f1/il2cpp-api-functions.h | 0 .../il2cppapi/2019.4.21f1/il2cpp-class.h | 0 .../2020.1.0f1/il2cpp-api-functions.h | 0 .../il2cppapi/2020.1.0f1/il2cpp-class.h | 0 .../2020.1.11f1/il2cpp-api-functions.h | 0 .../il2cppapi/2020.1.11f1/il2cpp-class.h | 0 .../2020.2.0f1/il2cpp-api-functions.h | 0 .../il2cppapi/2020.2.0f1/il2cpp-class.h | 0 .../2020.2.4f1/il2cpp-api-functions.h | 0 .../il2cppapi/2020.2.4f1/il2cpp-class.h | 0 .../2021.1.0f1/il2cpp-api-functions.h | 0 .../il2cppapi/2021.1.0f1/il2cpp-class.h | 0 .../il2cppapi/5.3.0f4/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.0f4/il2cpp-class.h | 0 .../il2cppapi/5.3.2f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.2f1/il2cpp-class.h | 0 .../il2cppapi/5.3.3f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.3f1/il2cpp-class.h | 0 .../il2cppapi/5.3.5f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.5f1/il2cpp-class.h | 0 .../il2cppapi/5.3.6f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.6f1/il2cpp-class.h | 0 .../il2cppapi/5.3.7f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.3.7f1/il2cpp-class.h | 0 .../il2cppapi/5.4.0f3/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.4.0f3/il2cpp-class.h | 0 .../il2cppapi/5.4.1f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.4.1f1/il2cpp-class.h | 0 .../il2cppapi/5.4.4f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.4.4f1/il2cpp-class.h | 0 .../il2cppapi/5.5.0f3/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.5.0f3/il2cpp-class.h | 0 .../il2cppapi/5.5.1f1/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.5.1f1/il2cpp-class.h | 0 .../il2cppapi/5.6.0f3/il2cpp-api-functions.h | 0 .../Includes/il2cppapi/5.6.0f3/il2cpp-class.h | 0 app/src/main/{cpp => jni}/Includes/log.h | 0 app/src/main/{cpp => jni}/native-lib.cpp | 2 +- build.gradle | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 77 files changed, 69 insertions(+), 96 deletions(-) create mode 100644 .gitattributes delete mode 100644 app/src/main/cpp/CMakeLists.txt create mode 100644 app/src/main/java/com/il2cpp/dumper/MainActivity.java delete mode 100644 app/src/main/java/com/il2cpp/dumper/MainActivity.kt create mode 100644 app/src/main/jni/Android.mk create mode 100644 app/src/main/jni/Application.mk rename app/src/main/{cpp => jni}/Includes/game.h (96%) rename app/src/main/{cpp => jni}/Includes/il2cpp-tabledefs.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cpp_dump.cpp (93%) rename app/src/main/{cpp => jni}/Includes/il2cpp_dump.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.0f4/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.2f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.3f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.5f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.6f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.3.7f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.0f3/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.1f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.4.4f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.5.0f3/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.5.1f1/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h (100%) rename app/src/main/{cpp => jni}/Includes/il2cppapi/5.6.0f3/il2cpp-class.h (100%) rename app/src/main/{cpp => jni}/Includes/log.h (100%) rename app/src/main/{cpp => jni}/native-lib.cpp (97%) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/README.md b/README.md index 7f12670..b9ef4ae 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ hope this will help you >::< This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perfare/Riru-Il2CppDumper)
Credit : [Perfare](https://github.com/Perfare)
-This project was originally created by BrianGIG but he have deleted his account, so i will try to maintain this project when i can. +And BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) # Usage Get unity version by opening any asset file into Notepad++ and any text editor diff --git a/app/build.gradle b/app/build.gradle index 245ddd6..9c4ffb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,25 +1,15 @@ -plugins { - id 'com.android.application' - id 'kotlin-android' -} +apply plugin: 'com.android.application' android { - compileSdkVersion 30 + compileSdkVersion 32 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.il2cpp.dumper" minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 32 versionCode 1 versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - externalNativeBuild { - cmake { - cppFlags "" - } - } } buildTypes { @@ -29,21 +19,8 @@ android { } } externalNativeBuild { - cmake { - path "src/main/cpp/CMakeLists.txt" - version "3.10.2" + ndkBuild { + path "src/main/jni/Android.mk" } } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.3.2' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f255bba..8c511e7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> - + diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt deleted file mode 100644 index 58df8db..0000000 --- a/app/src/main/cpp/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -cmake_minimum_required(VERSION 3.10.2) - -project("Auto-Il2cppDumper") - -add_library( - native-lib - SHARED - native-lib.cpp - Includes/il2cpp_dump.cpp) - -find_library(log-lib log) -target_link_libraries(native-lib ${log-lib}) \ No newline at end of file diff --git a/app/src/main/java/com/il2cpp/dumper/MainActivity.java b/app/src/main/java/com/il2cpp/dumper/MainActivity.java new file mode 100644 index 0000000..8bd833a --- /dev/null +++ b/app/src/main/java/com/il2cpp/dumper/MainActivity.java @@ -0,0 +1,17 @@ +package com.il2cpp.dumper; + +import android.app.Activity; +import android.os.Bundle; + + +public class MainActivity extends Activity { + static { + System.loadLibrary("native-lib"); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } +} diff --git a/app/src/main/java/com/il2cpp/dumper/MainActivity.kt b/app/src/main/java/com/il2cpp/dumper/MainActivity.kt deleted file mode 100644 index b105016..0000000 --- a/app/src/main/java/com/il2cpp/dumper/MainActivity.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.il2cpp.dumper - -import android.app.Activity -import android.os.Bundle -import android.os.PersistableBundle - -class MainActivity : Activity() { - override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { - super.onCreate(savedInstanceState, persistentState) - setContentView(R.layout.activity_main) - } - - companion object { - init { - System.loadLibrary("native-lib") - } - } -} \ No newline at end of file diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk new file mode 100644 index 0000000..6ebac89 --- /dev/null +++ b/app/src/main/jni/Android.mk @@ -0,0 +1,20 @@ +LOCAL_PATH := $(call my-dir) +MAIN_LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE := native-lib + +LOCAL_CFLAGS := -Wno-error=format-security -fvisibility=hidden -ffunction-sections -fdata-sections -w +LOCAL_CFLAGS += -fno-rtti -fno-exceptions -fpermissive +LOCAL_CPPFLAGS := -Wno-error=format-security -fvisibility=hidden -ffunction-sections -fdata-sections -w -Werror -s -std=c++17 +LOCAL_CPPFLAGS += -Wno-error=c++11-narrowing -fms-extensions -fno-rtti -fno-exceptions -fpermissive +LOCAL_LDFLAGS += -Wl,--gc-sections,--strip-all, -llog +LOCAL_ARM_MODE := arm + +LOCAL_C_INCLUDES += $(MAIN_LOCAL_PATH) + +LOCAL_SRC_FILES := native-lib.cpp \ + Includes/il2cpp_dump.cpp + +LOCAL_LDLIBS := -llog -landroid -lGLESv2 +include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/app/src/main/jni/Application.mk b/app/src/main/jni/Application.mk new file mode 100644 index 0000000..9eb986b --- /dev/null +++ b/app/src/main/jni/Application.mk @@ -0,0 +1,5 @@ +APP_ABI := all +APP_STL := c++_static +APP_OPTIM := release +APP_THIN_ARCHIVE := true +APP_PIE := true \ No newline at end of file diff --git a/app/src/main/cpp/Includes/game.h b/app/src/main/jni/Includes/game.h similarity index 96% rename from app/src/main/cpp/Includes/game.h rename to app/src/main/jni/Includes/game.h index f8e5f17..6db02a2 100644 --- a/app/src/main/cpp/Includes/game.h +++ b/app/src/main/jni/Includes/game.h @@ -11,9 +11,6 @@ // Uncomment for 2018.3.0f2 and up #define VersionAbove2018dot3 -// Uncomment for 2020.2.0f1 and up -//#define VersionAbove2020dot2 - // Uncomment for 2021.1.0f1 and up //#define VersionAbove2021dot1 diff --git a/app/src/main/cpp/Includes/il2cpp-tabledefs.h b/app/src/main/jni/Includes/il2cpp-tabledefs.h similarity index 100% rename from app/src/main/cpp/Includes/il2cpp-tabledefs.h rename to app/src/main/jni/Includes/il2cpp-tabledefs.h diff --git a/app/src/main/cpp/Includes/il2cpp_dump.cpp b/app/src/main/jni/Includes/il2cpp_dump.cpp similarity index 93% rename from app/src/main/cpp/Includes/il2cpp_dump.cpp rename to app/src/main/jni/Includes/il2cpp_dump.cpp index 1324cf2..06fb883 100644 --- a/app/src/main/cpp/Includes/il2cpp_dump.cpp +++ b/app/src/main/jni/Includes/il2cpp_dump.cpp @@ -320,11 +320,7 @@ std::string dump_type(const Il2CppType *type) { outPut << ", " << extends[i]; } } -#ifdef VersionAbove2020dot2 - outPut << " // TypeDefIndex: " << type->data.__klassIndex << "\n{"; -#else - outPut << " // TypeDefIndex: " << type->data.klassIndex << "\n{"; -#endif + outPut << "\n{"; outPut << dump_field(klass); outPut << dump_property(klass); outPut << dump_method(klass); @@ -351,32 +347,27 @@ void il2cpp_dump(void *handle, char *outDir) { std::stringstream imageOutput; for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); - imageOutput << "// Image " << i << ": " << image->name << " - " << typeDefinitionsCount - << "\n"; + imageOutput << "// Image " << i << ": " << image->name << " - " << "typeCount : " + << image->typeCount << "\n"; typeDefinitionsCount += image->typeCount; } - std::vector outPuts(typeDefinitionsCount); LOGI("typeDefinitionsCount: %i", typeDefinitionsCount); il2cpp_base = get_module_base("libil2cpp.so"); LOGI("il2cpp_base: %" PRIx64"", il2cpp_base); + std::vector outPuts; #ifdef VersionAbove2018dot3 //使用il2cpp_image_get_class for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); + std::stringstream imageStr; + imageStr << "\n// Dll : " << image->name; auto classCount = il2cpp_image_get_class_count(image); for (int j = 0; j < classCount; ++j) { auto klass = il2cpp_image_get_class(image, j); auto type = il2cpp_class_get_type(const_cast(klass)); //LOGD("type name : %s", il2cpp_type_get_name(type)); -#ifdef VersionAbove2020dot2 - LOGI("VersionAbove2020dot2: on"); - auto klassIndex = type->data.__klassIndex; -#else - auto klassIndex = type->data.klassIndex; -#endif - if (outPuts[klassIndex].empty()) { - outPuts[klassIndex] = dump_type(type); - } + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); } } #else @@ -406,6 +397,8 @@ void il2cpp_dump(void *handle, char *outDir) { LOGI("dumping..."); for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); + std::stringstream imageStr; + imageStr << "\n// Dll : " << image->name; //LOGD("image name : %s", image->name); auto imageName = std::string(image->name); auto pos = imageName.rfind('.'); @@ -426,10 +419,8 @@ void il2cpp_dump(void *handle, char *outDir) { auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); auto type = il2cpp_class_get_type(klass); //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto klassIndex = type->data.klassIndex; - if (outPuts[klassIndex].empty()) { - outPuts[klassIndex] = dump_type(type); - } + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); } } #endif @@ -444,13 +435,9 @@ void il2cpp_dump(void *handle, char *outDir) { auto outPath = std::string(outDir).append("/").append(application_id).append("-dump.cs"); std::ofstream outStream(outPath); outStream << imageOutput.str(); - for (int i = 0; i < typeDefinitionsCount; ++i) { - if (!outPuts[i].empty()) { - outStream << outPuts[i]; - } else { - // always missing - //LOGW("miss typeDefinition: %d", i); - } + auto count = outPuts.size(); + for (int i = 0; i < count; ++i) { + outStream << outPuts[i]; } outStream.close(); LOGI("dump done!"); diff --git a/app/src/main/cpp/Includes/il2cpp_dump.h b/app/src/main/jni/Includes/il2cpp_dump.h similarity index 100% rename from app/src/main/cpp/Includes/il2cpp_dump.h rename to app/src/main/jni/Includes/il2cpp_dump.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.0f4/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.0f4/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.2f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.2f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.3f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.3f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.5f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.5f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.6f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.6f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.3.7f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.3.7f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.0f3/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.1f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.4.4f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.4.4f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.5.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.5.0f3/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.5.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.5.1f1/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h rename to app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h diff --git a/app/src/main/cpp/Includes/il2cppapi/5.6.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h similarity index 100% rename from app/src/main/cpp/Includes/il2cppapi/5.6.0f3/il2cpp-class.h rename to app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h diff --git a/app/src/main/cpp/Includes/log.h b/app/src/main/jni/Includes/log.h similarity index 100% rename from app/src/main/cpp/Includes/log.h rename to app/src/main/jni/Includes/log.h diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/jni/native-lib.cpp similarity index 97% rename from app/src/main/cpp/native-lib.cpp rename to app/src/main/jni/native-lib.cpp index 2c3ba64..9af55b9 100644 --- a/app/src/main/cpp/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -31,7 +31,7 @@ void *hack_thread(void *) { sleep(3); auto il2cpp_handle = dlopen(libTarget, 4); - il2cpp_dump(il2cpp_handle, "/sdcard/Download"); + il2cpp_dump(il2cpp_handle, "/storage/emulated/0/Download"); return nullptr; } diff --git a/build.gradle b/build.gradle index 914a1ae..e0318ef 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,11 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.4.32" repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.android.tools.build:gradle:7.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4f65120..1666605 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip From 8d1b9e661db56946bd63c157eccd2802f34149a6 Mon Sep 17 00:00:00 2001 From: n63qwj6nqw3 <40742924+AndnixSH@users.noreply.github.com> Date: Sat, 29 Jan 2022 19:10:39 +0100 Subject: [PATCH 10/41] Change storage location that does not need permission --- README.md | 4 ++-- app/src/main/jni/Includes/game.h | 6 ++++-- app/src/main/jni/Includes/il2cpp_dump.cpp | 21 ++++++++++++++------- app/src/main/jni/Includes/il2cpp_dump.h | 2 ++ app/src/main/jni/native-lib.cpp | 4 +++- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b9ef4ae..494ec1d 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ This method requires to modify game APK. You may need to bypass APK integrity an - Re-compile and run it - Wait 10-30 seconds -- Once the dump complete it will auto generate dump.cs in /sdcard/Download +- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ without storage permission # Root method This is useful to get around security. Does not need to modify game APK at all! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so @@ -79,4 +79,4 @@ Note: Some games does not store the libs in /data/data, you would be unable to d - Put our lib file libunity.so - Run the game - Wait 10-30 seconds -- Once the dump complete it will auto generate dump.cs in /sdcard/Download \ No newline at end of file +- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ without storage permission \ No newline at end of file diff --git a/app/src/main/jni/Includes/game.h b/app/src/main/jni/Includes/game.h index 6db02a2..ab9284c 100644 --- a/app/src/main/jni/Includes/game.h +++ b/app/src/main/jni/Includes/game.h @@ -16,9 +16,11 @@ // Uncomment for root mode // Root mode is to load our fake libunity.so and load game's real librealunity.so -//#define RootMode +// #define RootMode -// Unity Version Compatible list +// Unity Version Compatible list. +// If the version is not listed, pick the closest +// Example if game's version is 2019.4.31f1, use 2019.4.21f1 // 5.3.0f4 | 5.3.0f4 - 5.3.1f1 | v16 // 5.3.2f1 | 5.3.2f1 | v19 // 5.3.3f1 | 5.3.3f1 - 5.3.4f1 | v20 diff --git a/app/src/main/jni/Includes/il2cpp_dump.cpp b/app/src/main/jni/Includes/il2cpp_dump.cpp index 06fb883..637fac8 100644 --- a/app/src/main/jni/Includes/il2cpp_dump.cpp +++ b/app/src/main/jni/Includes/il2cpp_dump.cpp @@ -25,6 +25,18 @@ static void *il2cpp_handle = nullptr; static uint64_t il2cpp_base = 0; +const char* GetPackageName() +{ + //https://stackoverflow.com/questions/42918762/how-to-get-app-package-name-or-applicationid-using-jni-android + char* application_id[64]; + FILE* fp = fopen("proc/self/cmdline", "r"); + if (fp) { + fread(application_id, sizeof(application_id), 1, fp); + fclose(fp); + } + return (const char*)application_id; +} + void init_il2cpp_api() { #define DO_API(r, n, p) n = (r (*) p)dlsym(il2cpp_handle, #n) @@ -424,15 +436,10 @@ void il2cpp_dump(void *handle, char *outDir) { } } #endif - LOGI("Write dump file"); - //https://stackoverflow.com/questions/42918762/how-to-get-app-package-name-or-applicationid-using-jni-android - FILE *cmdline = fopen("/proc/self/cmdline", "r"); - char application_id[64] = { 0 }; - fread(application_id, sizeof(application_id), 1, cmdline); - fclose(cmdline); + auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); + LOGI("Write dump file to %s", outPath.c_str()); - auto outPath = std::string(outDir).append("/").append(application_id).append("-dump.cs"); std::ofstream outStream(outPath); outStream << imageOutput.str(); auto count = outPuts.size(); diff --git a/app/src/main/jni/Includes/il2cpp_dump.h b/app/src/main/jni/Includes/il2cpp_dump.h index fcb7513..41da204 100644 --- a/app/src/main/jni/Includes/il2cpp_dump.h +++ b/app/src/main/jni/Includes/il2cpp_dump.h @@ -17,4 +17,6 @@ void il2cpp_dump(void *handle, char *outDir); +const char* GetPackageName(); + #endif //RIRU_IL2CPPDUMPER_IL2CPP_H diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 9af55b9..661da2a 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -31,7 +31,9 @@ void *hack_thread(void *) { sleep(3); auto il2cpp_handle = dlopen(libTarget, 4); - il2cpp_dump(il2cpp_handle, "/storage/emulated/0/Download"); + char buffer [64]; + sprintf (buffer, "/storage/emulated/0/Android/data/%s/", GetPackageName()); + il2cpp_dump(il2cpp_handle, buffer); return nullptr; } From 68e79ffc3cc47b756feab1ec26c6de1d5bf53b1b Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Tue, 7 Jun 2022 16:36:14 +0200 Subject: [PATCH 11/41] Now based on Zygisk-Il2CppDumper No need to input unity version anymore The project is now cleaned --- .gitignore | 46 +- README.md | 113 +- app/build.gradle | 7 +- app/src/main/Compile.bat | 4 + app/src/main/jni/Android.mk | 4 +- .../il2cpp-api-functions.h | 9 +- app/src/main/jni/Il2Cpp/il2cpp-class.h | 143 ++ .../{Includes => Il2Cpp}/il2cpp-tabledefs.h | 0 .../jni/{Includes => Il2Cpp}/il2cpp_dump.cpp | 355 +-- app/src/main/jni/Il2Cpp/il2cpp_dump.h | 12 + app/src/main/jni/Includes/config.h | 15 + app/src/main/jni/Includes/game.h | 55 - app/src/main/jni/Includes/il2cpp_dump.h | 22 - .../2017.1.0f3/il2cpp-api-functions.h | 263 -- .../il2cppapi/2017.1.0f3/il2cpp-class.h | 1027 -------- .../2017.1.3f1/il2cpp-api-functions.h | 263 -- .../il2cppapi/2017.1.3f1/il2cpp-class.h | 1028 -------- .../2017.2.0f3/il2cpp-api-functions.h | 268 -- .../il2cppapi/2017.2.0f3/il2cpp-class.h | 1027 -------- .../2017.2.1f1/il2cpp-api-functions.h | 268 -- .../il2cppapi/2017.2.1f1/il2cpp-class.h | 1028 -------- .../2018.1.0f2/il2cpp-api-functions.h | 251 -- .../il2cppapi/2018.1.0f2/il2cpp-class.h | 1099 -------- .../2018.2.0f2/il2cpp-api-functions.h | 258 -- .../il2cppapi/2018.2.0f2/il2cpp-class.h | 1131 -------- .../2018.3.0f2/il2cpp-api-functions.h | 274 -- .../il2cppapi/2018.3.0f2/il2cpp-class.h | 1122 -------- .../2018.3.8f1/il2cpp-api-functions.h | 274 -- .../il2cppapi/2018.3.8f1/il2cpp-class.h | 1123 -------- .../2019.1.0f2/il2cpp-api-functions.h | 283 -- .../il2cppapi/2019.1.0f2/il2cpp-class.h | 1368 ---------- .../2019.3.0f6/il2cpp-api-functions.h | 304 --- .../il2cppapi/2019.3.0f6/il2cpp-class.h | 1405 ---------- .../2019.3.7f1/il2cpp-api-functions.h | 304 --- .../il2cppapi/2019.3.7f1/il2cpp-class.h | 1412 ---------- .../2019.4.15f1/il2cpp-api-functions.h | 306 --- .../il2cppapi/2019.4.15f1/il2cpp-class.h | 2196 ---------------- .../2019.4.21f1/il2cpp-api-functions.h | 306 --- .../il2cppapi/2019.4.21f1/il2cpp-class.h | 2205 ---------------- .../2020.1.0f1/il2cpp-api-functions.h | 307 --- .../il2cppapi/2020.1.0f1/il2cpp-class.h | 2198 ---------------- .../2020.1.11f1/il2cpp-api-functions.h | 307 --- .../il2cppapi/2020.1.11f1/il2cpp-class.h | 2197 ---------------- .../2020.2.0f1/il2cpp-api-functions.h | 309 --- .../il2cppapi/2020.2.0f1/il2cpp-class.h | 2270 ---------------- .../2020.2.4f1/il2cpp-api-functions.h | 309 --- .../il2cppapi/2020.2.4f1/il2cpp-class.h | 2279 ---------------- .../il2cppapi/2021.1.0f1/il2cpp-class.h | 2282 ----------------- .../il2cppapi/5.3.0f4/il2cpp-api-functions.h | 247 -- .../Includes/il2cppapi/5.3.0f4/il2cpp-class.h | 742 ------ .../il2cppapi/5.3.2f1/il2cpp-api-functions.h | 250 -- .../Includes/il2cppapi/5.3.2f1/il2cpp-class.h | 877 ------- .../il2cppapi/5.3.3f1/il2cpp-api-functions.h | 250 -- .../Includes/il2cppapi/5.3.3f1/il2cpp-class.h | 795 ------ .../il2cppapi/5.3.5f1/il2cpp-api-functions.h | 253 -- .../Includes/il2cppapi/5.3.5f1/il2cpp-class.h | 924 ------- .../il2cppapi/5.3.6f1/il2cpp-api-functions.h | 257 -- .../Includes/il2cppapi/5.3.6f1/il2cpp-class.h | 985 ------- .../il2cppapi/5.3.7f1/il2cpp-api-functions.h | 257 -- .../Includes/il2cppapi/5.3.7f1/il2cpp-class.h | 985 ------- .../il2cppapi/5.4.0f3/il2cpp-api-functions.h | 257 -- .../Includes/il2cppapi/5.4.0f3/il2cpp-class.h | 985 ------- .../il2cppapi/5.4.1f1/il2cpp-api-functions.h | 257 -- .../Includes/il2cppapi/5.4.1f1/il2cpp-class.h | 985 ------- .../il2cppapi/5.4.4f1/il2cpp-api-functions.h | 257 -- .../Includes/il2cppapi/5.4.4f1/il2cpp-class.h | 986 ------- .../il2cppapi/5.5.0f3/il2cpp-api-functions.h | 258 -- .../Includes/il2cppapi/5.5.0f3/il2cpp-class.h | 1002 -------- .../il2cppapi/5.5.1f1/il2cpp-api-functions.h | 258 -- .../Includes/il2cppapi/5.5.1f1/il2cpp-class.h | 1003 -------- .../il2cppapi/5.6.0f3/il2cpp-api-functions.h | 262 -- .../Includes/il2cppapi/5.6.0f3/il2cpp-class.h | 1013 -------- app/src/main/jni/Includes/log.h | 2 +- app/src/main/jni/native-lib.cpp | 73 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 76 files changed, 500 insertions(+), 47960 deletions(-) create mode 100644 app/src/main/Compile.bat rename app/src/main/jni/{Includes/il2cppapi/2021.1.0f1 => Il2Cpp}/il2cpp-api-functions.h (97%) create mode 100644 app/src/main/jni/Il2Cpp/il2cpp-class.h rename app/src/main/jni/{Includes => Il2Cpp}/il2cpp-tabledefs.h (100%) rename app/src/main/jni/{Includes => Il2Cpp}/il2cpp_dump.cpp (50%) create mode 100644 app/src/main/jni/Il2Cpp/il2cpp_dump.h create mode 100644 app/src/main/jni/Includes/config.h delete mode 100644 app/src/main/jni/Includes/game.h delete mode 100644 app/src/main/jni/Includes/il2cpp_dump.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h delete mode 100644 app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h diff --git a/.gitignore b/.gitignore index aa724b7..16dcd12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,33 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -/build -/captures -.externalNativeBuild -.cxx +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.apk +output.json + +# IntelliJ +*.iml +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof \ No newline at end of file diff --git a/README.md b/README.md index 494ec1d..beb6bd0 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,81 @@ # Auto-Il2cppDumper -This is for helping you get dump.cs from Il2cpp game
-hope this will help you >::< +Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass protection, encryption and obfuscation. -# Important -This project is modifying version of [Riru-Il2cppDumper](https://github.com/Perfare/Riru-Il2CppDumper)
-Credit : [Perfare](https://github.com/Perfare)
- -And BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) +This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it # Usage -Get unity version by opening any asset file into Notepad++ and any text editor +This is full auto, no need to put unity version anymore since it's based on Zygisk-Il2cppDumper. -Edit unity version that match with UnityVersion Compatible list +You can download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below -``` -// UnityVersion Compatible list -// 5.3.0f4 | 5.3.0f4 - 5.3.1f1 | v16 -// 5.3.2f1 | 5.3.2f1 | v19 -// 5.3.3f1 | 5.3.3f1 - 5.3.4f1 | v20 -// 5.3.5f1 | 5.3.5f1 | v21 -// 5.3.6f1 | 5.3.6f1 | v21 -// 5.3.7f1 | 5.3.7f1 - 5.3.8f2 | v21 -// 5.4.0f3 | 5.4.0f3 | v21 -// 5.4.1f1 | 5.4.1f1 - 5.4.3f1 | v21 -// 5.4.4f1 | 5.4.4f1 - 5.4.6f3 | v21 -// 5.5.0f3 | 5.5.0f3 | v22 -// 5.5.1f1 | 5.5.1f1 - 5.5.6f1 | v22 -// 5.6.0f3 | 5.6.0f3 - 5.6.7f1 | v23 -// 2017.1.0f3 | 2017.1.0f3 - 2017.1.2f1 | v24 -// 2017.1.3f1 | 2017.1.3f1 - 2017.1.5f1 | v24 -// 2017.2.0f3 | 2017.2.0f3 | v24 -// 2017.2.1f1 | 2017.2.1f1 - 2017.4.40f1 | v24 -// 2018.1.0f2 | 2018.1.0f2 - 2018.1.9f2 | v24 -// 2018.2.0f2 | 2018.2.0f2 - 2018.2.21f1 | v24 -// 2018.3.0f2 | 2018.3.0f2 - 2018.3.7f1 | v24.1 -// 2018.3.8f1 | 2018.3.8f1 - 2018.4.36f1 | v24.1 -// 2019.1.0f2 | 2019.1.0f2 - 2019.2.21f1 | v24.2 -// 2019.3.0f6 | 2019.3.0f6 - 2019.3.6f1 | v24.2 -// 2019.3.7f1 | 2019.3.7f1 - 2019.4.14f1 | v24.3 -// 2019.4.15f1 | 2019.4.15f1 - 2019.4.20f1 | v24.4 -// 2019.4.21f1 | 2019.4.21f1 - 2019.4.29f1 | v24.5 -// 2020.1.0f1 | 2020.1.0f1 - 2020.1.10f1 | v24.3 -// 2020.1.11f1 | 2020.1.11f1 - 2020.1.17f1 | v24.4 -// 2020.2.0f1 | 2020.2.0f1 - 2020.2.3f1 | v27 -// 2020.2.4f1 | 2020.2.4f1 - 2020.3.15f2 | v27.1 -// 2021.1.0f1 | 2021.1.0f1 - 2021.1.16f1 | v27.2 -``` +###`jni/Includes/config.h` + +Uncomment `#define RootMode` to use it as root mode + +`#define Sleep X`: Default is 2 seconds. Increase if getting issue with dumper, like if not fully dumped -# Non root method -This method requires to modify game APK. You may need to bypass APK integrity and sig check if you want to use this method +# How to use + +### Non root method +This method requires to modify APK. You may need to bypass APK integrity and signature check if you want to use this method - Build APK with Android Studio -- Decompile app-debug.apk +- Decompile app-debug.apk using apktool.jar, APK Tool GUI or any other tools of your choice - Decompile the game -- Copy result libnative.so into the decompiled folder apk -- Search the main activity of the game -- Put this on onCreate function +- Copy result il2cppdumper.so into the decompiled folder apk. Make sure only copy same ABIs as the Target App, for example if Target App has only armeabi-v7a, then you should only copy armeabi-v7a +- Search the main activity in AndroidManifest.xml. Example: com.gameloft.android.XamarinMainActivity + +```xml + + + + + + +``` + +- Locate the smali file of main activity +- Copy and paste this smali code into onCreate function + ```smali - const-string v0, "native-lib" + const-string v0, "il2cppdumper" invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V ``` -- Re-compile and run it -- Wait 10-30 seconds -- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ without storage permission +Like -# Root method +```smali +.method protected onCreate(Landroid/os/Bundle;)V + .locals 2 + + const-string v0, "il2cppdumper" + + invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V + + whatever code below +``` + +- Re-compile, zipalign and sign the APK +- Install APK + +### Root method This is useful to get around security. Does not need to modify game APK at all! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so -Note: Some games does not store the libs in /data/data, you would be unable to do this trick! +Note: Some games does not extract the libs in /data/data. In this case, try to use older Android version or modify APK file (See above). - Build APK with Android Studio -- Extract libnative-lib.so from app-debug.apk. Make sure you know what architecture the game is using before proceed +- Extract libil2cppdumper.so from app-debug.apk. Make sure you know the architecture of the game and your device before proceed - Rename our lib to libunity.so - On rooted device/VM, use any file manager app that can access root. Go to /data/data/(package name)/lib - IMPORTANT! Rename game's libunity.so to librealunity.so - Put our lib file libunity.so + +### Dumping - Run the game -- Wait 10-30 seconds -- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ without storage permission \ No newline at end of file +- Wait a few seconds. Let the game load into main screen +- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ (Android 10 and below) or /storage/emulated/0/Download (Android 11 and above) without storage permission + +# Credits +- Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) +- BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9c4ffb8..c7b3de0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,14 +2,17 @@ apply plugin: 'com.android.application' android { compileSdkVersion 32 - buildToolsVersion "30.0.3" + buildToolsVersion "32.0.0" defaultConfig { applicationId "com.il2cpp.dumper" minSdkVersion 16 targetSdkVersion 32 versionCode 1 - versionName "1.0" + versionName "2.0" + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' + } } buildTypes { diff --git a/app/src/main/Compile.bat b/app/src/main/Compile.bat new file mode 100644 index 0000000..7d6460d --- /dev/null +++ b/app/src/main/Compile.bat @@ -0,0 +1,4 @@ +E:\Android-SDK\ndk\21.3.6528147\ndk-build +NDK_PROJECT_PATH=\ +NDK_APPLICATION_MK=\jni\Application.mk +pause \ No newline at end of file diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk index 6ebac89..f50f6ed 100644 --- a/app/src/main/jni/Android.mk +++ b/app/src/main/jni/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) MAIN_LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := native-lib +LOCAL_MODULE := il2cppdumper LOCAL_CFLAGS := -Wno-error=format-security -fvisibility=hidden -ffunction-sections -fdata-sections -w LOCAL_CFLAGS += -fno-rtti -fno-exceptions -fpermissive @@ -14,7 +14,7 @@ LOCAL_ARM_MODE := arm LOCAL_C_INCLUDES += $(MAIN_LOCAL_PATH) LOCAL_SRC_FILES := native-lib.cpp \ - Includes/il2cpp_dump.cpp + Il2Cpp/il2cpp_dump.cpp LOCAL_LDLIBS := -llog -landroid -lGLESv2 include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h b/app/src/main/jni/Il2Cpp/il2cpp-api-functions.h similarity index 97% rename from app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h rename to app/src/main/jni/Il2Cpp/il2cpp-api-functions.h index a4b4770..f3133eb 100644 --- a/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-api-functions.h +++ b/app/src/main/jni/Il2Cpp/il2cpp-api-functions.h @@ -101,7 +101,7 @@ DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); -DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); +DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char** imageUUID, char** imageName)); // field DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); @@ -137,6 +137,8 @@ DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); DO_API(void, il2cpp_stop_gc_world, ()); DO_API(void, il2cpp_start_gc_world, ()); +DO_API(void*, il2cpp_gc_alloc_fixed, (size_t size)); +DO_API(void, il2cpp_gc_free_fixed, (void* address)); // gchandle DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); @@ -152,10 +154,11 @@ DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); DO_API(uint32_t, il2cpp_allocation_granularity, ()); // liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); +DO_API(void*, il2cpp_unity_liveness_allocate_struct, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_liveness_reallocate_callback reallocate)); DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); +DO_API(void, il2cpp_unity_liveness_finalize, (void* state)); +DO_API(void, il2cpp_unity_liveness_free_struct, (void* state)); // method DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); diff --git a/app/src/main/jni/Il2Cpp/il2cpp-class.h b/app/src/main/jni/Il2Cpp/il2cpp-class.h new file mode 100644 index 0000000..18b842e --- /dev/null +++ b/app/src/main/jni/Il2Cpp/il2cpp-class.h @@ -0,0 +1,143 @@ +typedef uint16_t Il2CppChar; +typedef uintptr_t il2cpp_array_size_t; +typedef int32_t TypeDefinitionIndex; +typedef int32_t GenericParameterIndex; +typedef char Il2CppNativeChar; + +typedef struct Il2CppMemoryCallbacks Il2CppMemoryCallbacks; +typedef struct Il2CppImage Il2CppImage; +typedef struct Il2CppClass Il2CppClass; +typedef struct Il2CppArrayBounds Il2CppArrayBounds; +typedef struct Il2CppAssembly Il2CppAssembly; +typedef struct Il2CppArrayType Il2CppArrayType; +typedef struct Il2CppGenericClass Il2CppGenericClass; +typedef struct Il2CppReflectionType Il2CppReflectionType; +typedef struct MonitorData MonitorData; +typedef Il2CppClass Il2CppVTable; +typedef struct EventInfo EventInfo; +typedef struct FieldInfo FieldInfo; +typedef struct PropertyInfo PropertyInfo; +typedef struct Il2CppDomain Il2CppDomain; +typedef struct Il2CppException Il2CppException; +typedef struct Il2CppObject Il2CppObject; +typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; +typedef struct Il2CppString Il2CppString; +typedef struct Il2CppThread Il2CppThread; +typedef struct Il2CppStackFrameInfo Il2CppStackFrameInfo; +typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; +typedef struct Il2CppDebuggerTransport Il2CppDebuggerTransport; +typedef struct Il2CppMethodDebugInfo Il2CppMethodDebugInfo; +typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; +typedef const struct ___Il2CppMetadataTypeHandle *Il2CppMetadataTypeHandle; +typedef const struct ___Il2CppMetadataGenericParameterHandle *Il2CppMetadataGenericParameterHandle; + +typedef void (*Il2CppMethodPointer)(); + +typedef void (*il2cpp_register_object_callback)(Il2CppObject **arr, int size, void *userdata); + +typedef void *(*il2cpp_liveness_reallocate_callback)(void *ptr, size_t size, void *userdata); + +typedef void (*Il2CppFrameWalkFunc)(const Il2CppStackFrameInfo *info, void *user_data); + +typedef size_t(*Il2CppBacktraceFunc)(Il2CppMethodPointer *buffer, size_t maxSize); + +typedef const Il2CppNativeChar *(*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar *); + +typedef void (*Il2CppLogCallback)(const char *); + +typedef enum { + IL2CPP_UNHANDLED_POLICY_LEGACY, + IL2CPP_UNHANDLED_POLICY_CURRENT +} Il2CppRuntimeUnhandledExceptionPolicy; + +typedef enum { + IL2CPP_GC_MODE_DISABLED = 0, + IL2CPP_GC_MODE_ENABLED = 1, + IL2CPP_GC_MODE_MANUAL = 2 +} Il2CppGCMode; + +typedef enum Il2CppStat { + IL2CPP_STAT_NEW_OBJECT_COUNT, + IL2CPP_STAT_INITIALIZED_CLASS_COUNT, + IL2CPP_STAT_METHOD_COUNT, + IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, + IL2CPP_STAT_GENERIC_INSTANCE_COUNT, + IL2CPP_STAT_GENERIC_CLASS_COUNT, + IL2CPP_STAT_INFLATED_METHOD_COUNT, + IL2CPP_STAT_INFLATED_TYPE_COUNT, +} Il2CppStat; + +typedef enum Il2CppTypeEnum { + IL2CPP_TYPE_END = 0x00, + IL2CPP_TYPE_VOID = 0x01, + IL2CPP_TYPE_BOOLEAN = 0x02, + IL2CPP_TYPE_CHAR = 0x03, + IL2CPP_TYPE_I1 = 0x04, + IL2CPP_TYPE_U1 = 0x05, + IL2CPP_TYPE_I2 = 0x06, + IL2CPP_TYPE_U2 = 0x07, + IL2CPP_TYPE_I4 = 0x08, + IL2CPP_TYPE_U4 = 0x09, + IL2CPP_TYPE_I8 = 0x0a, + IL2CPP_TYPE_U8 = 0x0b, + IL2CPP_TYPE_R4 = 0x0c, + IL2CPP_TYPE_R8 = 0x0d, + IL2CPP_TYPE_STRING = 0x0e, + IL2CPP_TYPE_PTR = 0x0f, + IL2CPP_TYPE_BYREF = 0x10, + IL2CPP_TYPE_VALUETYPE = 0x11, + IL2CPP_TYPE_CLASS = 0x12, + IL2CPP_TYPE_VAR = 0x13, + IL2CPP_TYPE_ARRAY = 0x14, + IL2CPP_TYPE_GENERICINST = 0x15, + IL2CPP_TYPE_TYPEDBYREF = 0x16, + IL2CPP_TYPE_I = 0x18, + IL2CPP_TYPE_U = 0x19, + IL2CPP_TYPE_FNPTR = 0x1b, + IL2CPP_TYPE_OBJECT = 0x1c, + IL2CPP_TYPE_SZARRAY = 0x1d, + IL2CPP_TYPE_MVAR = 0x1e, + IL2CPP_TYPE_CMOD_REQD = 0x1f, + IL2CPP_TYPE_CMOD_OPT = 0x20, + IL2CPP_TYPE_INTERNAL = 0x21, + IL2CPP_TYPE_MODIFIER = 0x40, + IL2CPP_TYPE_SENTINEL = 0x41, + IL2CPP_TYPE_PINNED = 0x45, + IL2CPP_TYPE_ENUM = 0x55, + IL2CPP_TYPE_IL2CPP_TYPE_INDEX = 0xff +} Il2CppTypeEnum; + +typedef struct Il2CppType { + union { + void *dummy; + TypeDefinitionIndex klassIndex; + const Il2CppType *type; + Il2CppArrayType *array; + GenericParameterIndex genericParameterIndex; + Il2CppGenericClass *generic_class; + } data; + unsigned int attrs: 16; + Il2CppTypeEnum type: 8; + unsigned int num_mods: 6; + unsigned int byref: 1; + unsigned int pinned: 1; +} Il2CppType; + +typedef struct MethodInfo { + Il2CppMethodPointer methodPointer; +} MethodInfo; + +typedef struct Il2CppObject { + union { + Il2CppClass *klass; + Il2CppVTable *vtable; + }; + MonitorData *monitor; +} Il2CppObject; + +typedef struct Il2CppArray { + Il2CppObject obj; + Il2CppArrayBounds *bounds; + il2cpp_array_size_t max_length; + void *vector[32]; +} Il2CppArray; diff --git a/app/src/main/jni/Includes/il2cpp-tabledefs.h b/app/src/main/jni/Il2Cpp/il2cpp-tabledefs.h similarity index 100% rename from app/src/main/jni/Includes/il2cpp-tabledefs.h rename to app/src/main/jni/Il2Cpp/il2cpp-tabledefs.h diff --git a/app/src/main/jni/Includes/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp similarity index 50% rename from app/src/main/jni/Includes/il2cpp_dump.cpp rename to app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index 637fac8..33f2b6b 100644 --- a/app/src/main/jni/Includes/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -12,13 +12,13 @@ #include #include #include -#include "log.h" +#include "Includes/log.h" #include "il2cpp-tabledefs.h" -#include IL2CPPCLASS +#include "il2cpp-class.h" #define DO_API(r, n, p) r (*n) p -#include IL2CPPAPI +#include "il2cpp-api-functions.h" #undef DO_API @@ -40,7 +40,7 @@ const char* GetPackageName() void init_il2cpp_api() { #define DO_API(r, n, p) n = (r (*) p)dlsym(il2cpp_handle, #n) -#include IL2CPPAPI +#include "il2cpp-api-functions.h" #undef DO_API } @@ -73,7 +73,7 @@ uint64_t get_module_base(const char *module_name) { return addr; } -std::string get_method_modifier(uint16_t flags) { +std::string get_method_modifier(uint32_t flags) { std::stringstream outPut; auto access = flags & METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK; switch (access) { @@ -119,9 +119,16 @@ std::string get_method_modifier(uint16_t flags) { return outPut.str(); } +bool _il2cpp_type_is_byref(const Il2CppType *type) { + auto byref = type->byref; + if (il2cpp_type_is_byref) { + byref = il2cpp_type_is_byref(type); + } + return byref; +} + std::string dump_method(Il2CppClass * klass) { std::stringstream outPut; - if (klass->method_count > 0) { outPut << "\n\t// Methods\n"; void *iter = nullptr; while (auto method = il2cpp_class_get_methods(klass, &iter)) { @@ -134,81 +141,88 @@ std::string dump_method(Il2CppClass * klass) { } else { outPut << "\t// RVA: 0x VA: 0x0"; } - if (method->slot != 65535) { - outPut << " Slot: " << std::dec << method->slot; - } + /*if (method->slot != 65535) { + outPut << " Slot: " << std::dec << method->slot; + }*/ outPut << "\n\t"; - outPut << get_method_modifier(method->flags); - //TODO genericContainerIndex - auto return_type = method->return_type; - if (return_type->byref) { - outPut << "ref "; - } - auto return_class = il2cpp_class_from_type(return_type); - outPut << return_class->name << " " << method->name << "("; - for (int i = 0; i < method->parameters_count; ++i) { - auto parameters = method->parameters[i]; - auto parameter_type = parameters.parameter_type; - auto attrs = parameter_type->attrs; - if (parameter_type->byref) { - if (attrs & PARAM_ATTRIBUTE_OUT && !(attrs & PARAM_ATTRIBUTE_IN)) { - outPut << "out "; - } else if (attrs & PARAM_ATTRIBUTE_IN && !(attrs & PARAM_ATTRIBUTE_OUT)) { - outPut << "in "; - } else { - outPut << "ref "; - } + uint32_t iflags = 0; + auto flags = il2cpp_method_get_flags(method, &iflags); + outPut << get_method_modifier(flags); + //TODO genericContainerIndex + auto return_type = il2cpp_method_get_return_type(method); + if (_il2cpp_type_is_byref(return_type)) { + outPut << "ref "; + } + auto return_class = il2cpp_class_from_type(return_type); + outPut << il2cpp_class_get_name(return_class) << " " << il2cpp_method_get_name(method) + << "("; + auto param_count = il2cpp_method_get_param_count(method); + for (int i = 0; i < param_count; ++i) { + auto param = il2cpp_method_get_param(method, i); + auto attrs = param->attrs; + if (_il2cpp_type_is_byref(param)) { + if (attrs & PARAM_ATTRIBUTE_OUT && !(attrs & PARAM_ATTRIBUTE_IN)) { + outPut << "out "; + } else if (attrs & PARAM_ATTRIBUTE_IN && !(attrs & PARAM_ATTRIBUTE_OUT)) { + outPut << "in "; } else { - if (attrs & PARAM_ATTRIBUTE_IN) { - outPut << "[In] "; - } - if (attrs & PARAM_ATTRIBUTE_OUT) { - outPut << "[Out] "; - } + outPut << "ref "; + } + } else { + if (attrs & PARAM_ATTRIBUTE_IN) { + outPut << "[In] "; + } + if (attrs & PARAM_ATTRIBUTE_OUT) { + outPut << "[Out] "; } - auto parameter_class = il2cpp_class_from_type(parameter_type); - outPut << parameter_class->name << " " << parameters.name; - outPut << ", "; } - if (method->parameters_count > 0) { - outPut.seekp(-2, outPut.cur); + auto parameter_class = il2cpp_class_from_type(param); + outPut << il2cpp_class_get_name(parameter_class) << " " + << il2cpp_method_get_param_name(method, i); + outPut << ", "; } + if (param_count > 0) { + outPut.seekp(-2, outPut.cur); + } outPut << ") { }\n"; //TODO GenericInstMethod - } } return outPut.str(); } std::string dump_property(Il2CppClass * klass) { std::stringstream outPut; - if (klass->property_count > 0) { - outPut << "\n\t// Properties\n"; - void *iter = nullptr; - while (auto prop = il2cpp_class_get_properties(klass, &iter)) { - //TODO attribute - outPut << "\t"; - Il2CppClass * prop_class = nullptr; - if (prop->get) { - outPut << get_method_modifier(prop->get->flags); - prop_class = il2cpp_class_from_type(prop->get->return_type); - } else if (prop->set) { - outPut << get_method_modifier(prop->set->flags); - prop_class = il2cpp_class_from_type(prop->set->parameters[0].parameter_type); + outPut << "\n\t// Properties\n"; + void *iter = nullptr; + while (auto prop_const = il2cpp_class_get_properties(klass, &iter)) { + //TODO attribute + auto prop = const_cast(prop_const); + auto get = il2cpp_property_get_get_method(prop); + auto set = il2cpp_property_get_set_method(prop); + auto prop_name = il2cpp_property_get_name(prop); + outPut << "\t"; + Il2CppClass *prop_class = nullptr; + uint32_t iflags = 0; + if (get) { + outPut << get_method_modifier(il2cpp_method_get_flags(get, &iflags)); + prop_class = il2cpp_class_from_type(il2cpp_method_get_return_type(get)); + } else if (set) { + outPut << get_method_modifier(il2cpp_method_get_flags(set, &iflags)); + auto param = il2cpp_method_get_param(set, 0); + prop_class = il2cpp_class_from_type(param); + } + if (prop_class) { + outPut << il2cpp_class_get_name(prop_class) << " " << prop_name << " { "; + if (get) { + outPut << "get; "; } - if (prop_class) { - outPut << prop_class->name << " " << prop->name << " { "; - if (prop->get) { - outPut << "get; "; - } - if (prop->set) { - outPut << "set; "; - } - outPut << "}\n"; - } else { - if (prop->name) { - outPut << " // unknown property " << prop->name; - } + if (set) { + outPut << "set; "; + } + outPut << "}\n"; + } else { + if (prop_name) { + outPut << " // unknown property " << prop_name; } } } @@ -217,13 +231,13 @@ std::string dump_property(Il2CppClass * klass) { std::string dump_field(Il2CppClass * klass) { std::stringstream outPut; - if (klass->field_count > 0) { outPut << "\n\t// Fields\n"; + auto is_enum = il2cpp_class_is_enum(klass); void *iter = nullptr; while (auto field = il2cpp_class_get_fields(klass, &iter)) { //TODO attribute outPut << "\t"; - auto attrs = field->type->attrs; + auto attrs = il2cpp_field_get_flags(field); auto access = attrs & FIELD_ATTRIBUTE_FIELD_ACCESS_MASK; switch (access) { case FIELD_ATTRIBUTE_PRIVATE: @@ -253,28 +267,31 @@ std::string dump_field(Il2CppClass * klass) { outPut << "readonly "; } } - auto field_class = il2cpp_class_from_type(field->type); - outPut << field_class->name << " " << field->name; - outPut << "; // 0x" << std::hex << field->offset << "\n"; + auto field_type = il2cpp_field_get_type(field); + auto field_class = il2cpp_class_from_type(field_type); + outPut << il2cpp_class_get_name(field_class) << " " << il2cpp_field_get_name(field); + //TODO 获取构造函数初始化后的字段值 + if (attrs & FIELD_ATTRIBUTE_LITERAL && is_enum) { + uint64_t val = 0; + il2cpp_field_static_get_value(field, &val); + outPut << " = " << std::dec << val; + } + outPut << "; // 0x" << std::hex << il2cpp_field_get_offset(field) << "\n"; } - } return outPut.str(); } std::string dump_type(const Il2CppType *type) { std::stringstream outPut; auto *klass = il2cpp_class_from_type(type); - outPut << "\n// Namespace: " << klass->namespaze << "\n"; - auto flags = klass->flags; + outPut << "\n// Namespace: " << il2cpp_class_get_namespace(klass) << "\n"; + auto flags = il2cpp_class_get_flags(klass); if (flags & TYPE_ATTRIBUTE_SERIALIZABLE) { outPut << "[Serializable]\n"; } //TODO attribute -#ifdef VersionAbove2021dot1 - auto valuetype = type->valuetype; -#else - auto valuetype = klass->valuetype; -#endif + auto is_valuetype = il2cpp_class_is_valuetype(klass); + auto is_enum = il2cpp_class_is_enum(klass); auto visibility = flags & TYPE_ATTRIBUTE_VISIBILITY_MASK; switch (visibility) { case TYPE_ATTRIBUTE_PUBLIC: @@ -300,31 +317,30 @@ std::string dump_type(const Il2CppType *type) { outPut << "static "; } else if (!(flags & TYPE_ATTRIBUTE_INTERFACE) && flags & TYPE_ATTRIBUTE_ABSTRACT) { outPut << "abstract "; - } else if (!valuetype && !klass->enumtype && flags & TYPE_ATTRIBUTE_SEALED) { + } else if (!is_valuetype && !is_enum && flags & TYPE_ATTRIBUTE_SEALED) { outPut << "sealed "; } if (flags & TYPE_ATTRIBUTE_INTERFACE) { outPut << "interface "; - } else if (klass->enumtype) { + } else if (is_enum) { outPut << "enum "; - } else if (valuetype) { + } else if (is_valuetype) { outPut << "struct "; } else { outPut << "class "; } - outPut << klass->name; //TODO genericContainerIndex + outPut << il2cpp_class_get_name(klass); //TODO genericContainerIndex std::vector extends; - if (!valuetype && !klass->enumtype && klass->parent) { - auto parent_type = il2cpp_class_get_type(klass->parent); + auto parent = il2cpp_class_get_parent(klass); + if (!is_valuetype && !is_enum && parent) { + auto parent_type = il2cpp_class_get_type(parent); if (parent_type->type != IL2CPP_TYPE_OBJECT) { - extends.emplace_back(klass->parent->name); + extends.emplace_back(il2cpp_class_get_name(parent)); } } - if (klass->interfaces_count > 0) { - void *iter = nullptr; - while (auto itf = il2cpp_class_get_interfaces(klass, &iter)) { - extends.emplace_back(itf->name); - } + void *iter = nullptr; + while (auto itf = il2cpp_class_get_interfaces(klass, &iter)) { + extends.emplace_back(il2cpp_class_get_name(itf)); } if (!extends.empty()) { outPut << " : " << extends[0]; @@ -342,101 +358,96 @@ std::string dump_type(const Il2CppType *type) { } void il2cpp_dump(void *handle, char *outDir) { - LOGI("UnityVersion: %s", STRINGIFY_MACRO(UnityVersion)); -#ifdef VersionAbove2018dot3 - LOGI("VersionAbove2018dot3: on"); -#else - LOGI("VersionAbove2018dot3: off"); -#endif - LOGI("il2cpp_handle: %p", handle); + LOGI("il2cpp_handle: %p", handle); il2cpp_handle = handle; init_il2cpp_api(); + if (il2cpp_domain_get_assemblies) { + Dl_info dlInfo; + if (dladdr((void *) il2cpp_domain_get_assemblies, &dlInfo)) { + il2cpp_base = reinterpret_cast(dlInfo.dli_fbase); + } else { + LOGW("dladdr error, using get_module_base."); + il2cpp_base = get_module_base("libil2cpp.so"); + } + LOGI("il2cpp_base: %" PRIx64"", il2cpp_base); + } else { + LOGE("Failed to initialize il2cpp api."); + return; + } auto domain = il2cpp_domain_get(); il2cpp_thread_attach(domain); + //start dump + LOGI("dumping..."); size_t size; auto assemblies = il2cpp_domain_get_assemblies(domain, &size); - uint32_t typeDefinitionsCount = 0; std::stringstream imageOutput; for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); - imageOutput << "// Image " << i << ": " << image->name << " - " << "typeCount : " - << image->typeCount << "\n"; - typeDefinitionsCount += image->typeCount; + imageOutput << "// Image " << i << ": " << il2cpp_image_get_name(image) << "\n"; } - LOGI("typeDefinitionsCount: %i", typeDefinitionsCount); - il2cpp_base = get_module_base("libil2cpp.so"); - LOGI("il2cpp_base: %" PRIx64"", il2cpp_base); std::vector outPuts; -#ifdef VersionAbove2018dot3 - //使用il2cpp_image_get_class - for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]); - std::stringstream imageStr; - imageStr << "\n// Dll : " << image->name; - auto classCount = il2cpp_image_get_class_count(image); - for (int j = 0; j < classCount; ++j) { - auto klass = il2cpp_image_get_class(image, j); - auto type = il2cpp_class_get_type(const_cast(klass)); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); + if (il2cpp_image_get_class) { + LOGI("Version greater than 2018.3"); + //使用il2cpp_image_get_class + for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]); + std::stringstream imageStr; + imageStr << "\n// Dll : " << il2cpp_image_get_name(image); + auto classCount = il2cpp_image_get_class_count(image); + for (int j = 0; j < classCount; ++j) { + auto klass = il2cpp_image_get_class(image, j); + auto type = il2cpp_class_get_type(const_cast(klass)); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); + } } - } -#else - //使用反射 - auto corlib = il2cpp_get_corlib(); - auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); - auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); - auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); - if (assemblyLoad && assemblyLoad->methodPointer) { - LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); - } else { - LOGI("miss Assembly::Load"); - return; - } - if (assemblyGetTypes && assemblyGetTypes->methodPointer) { - LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); } else { - LOGI("miss Assembly::GetTypes"); - return; - } -#ifdef VersionAbove2018dot3 - typedef void *(*Assembly_Load_ftn)(Il2CppString * , void * ); -#else - typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); -#endif - typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); - LOGI("dumping..."); - for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]); - std::stringstream imageStr; - imageStr << "\n// Dll : " << image->name; - //LOGD("image name : %s", image->name); - auto imageName = std::string(image->name); - auto pos = imageName.rfind('.'); - auto imageNameNoExt = imageName.substr(0, pos); - auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); -#ifdef VersionAbove2018dot3 - auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)( - assemblyFileName, nullptr); -#else - auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, - assemblyFileName, - nullptr); -#endif - auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( - reflectionAssembly, nullptr); - auto items = reflectionTypes->vector; - for (int j = 0; j < reflectionTypes->max_length; ++j) { - auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); - auto type = il2cpp_class_get_type(klass); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); + LOGI("Version less than 2018.3"); + //使用反射 + auto corlib = il2cpp_get_corlib(); + auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); + auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); + auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); + if (assemblyLoad && assemblyLoad->methodPointer) { + LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); + } else { + LOGI("miss Assembly::Load"); + return; + } + if (assemblyGetTypes && assemblyGetTypes->methodPointer) { + LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); + } else { + LOGI("miss Assembly::GetTypes"); + return; + } + typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); + typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); + for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]); + std::stringstream imageStr; + auto image_name = il2cpp_image_get_name(image); + imageStr << "\n// Dll : " << image_name; + //LOGD("image name : %s", image->name); + auto imageName = std::string(image_name); + auto pos = imageName.rfind('.'); + auto imageNameNoExt = imageName.substr(0, pos); + auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); + auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, + assemblyFileName, + nullptr); + auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( + reflectionAssembly, nullptr); + auto items = reflectionTypes->vector; + for (int j = 0; j < reflectionTypes->max_length; ++j) { + auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); + auto type = il2cpp_class_get_type(klass); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); + } } } -#endif - auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); LOGI("Write dump file to %s", outPath.c_str()); diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.h b/app/src/main/jni/Il2Cpp/il2cpp_dump.h new file mode 100644 index 0000000..2971ca6 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.h @@ -0,0 +1,12 @@ +// +// Created by Perfare on 2020/7/4. +// + +#ifndef RIRU_IL2CPPDUMPER_IL2CPP_H +#define RIRU_IL2CPPDUMPER_IL2CPP_H + +void il2cpp_dump(void *handle, char *outDir); + +const char* GetPackageName(); + +#endif //RIRU_IL2CPPDUMPER_IL2CPP_H diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h new file mode 100644 index 0000000..3b01cae --- /dev/null +++ b/app/src/main/jni/Includes/config.h @@ -0,0 +1,15 @@ +// +// Created by Perfare on 2020/7/4. +// + +#ifndef RIRU_IL2CPPDUMPER_GAME_H +#define RIRU_IL2CPPDUMPER_GAME_H + +// Uncomment for root mode +// Root mode is to load our fake libunity.so and load game's real librealunity.so +//#define RootMode + +// Increase sleep in seconds if getting issue with dumper, like if not fully dumped +#define Sleep 2 + +#endif //RIRU_IL2CPPDUMPER_GAME_H diff --git a/app/src/main/jni/Includes/game.h b/app/src/main/jni/Includes/game.h deleted file mode 100644 index ab9284c..0000000 --- a/app/src/main/jni/Includes/game.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// Created by Perfare on 2020/7/4. -// - -#ifndef RIRU_IL2CPPDUMPER_GAME_H -#define RIRU_IL2CPPDUMPER_GAME_H - -// Set the unity version of the game. Please look at the list below before setting version -#define UnityVersion 2019.4.21f1 - -// Uncomment for 2018.3.0f2 and up -#define VersionAbove2018dot3 - -// Uncomment for 2021.1.0f1 and up -//#define VersionAbove2021dot1 - -// Uncomment for root mode -// Root mode is to load our fake libunity.so and load game's real librealunity.so -// #define RootMode - -// Unity Version Compatible list. -// If the version is not listed, pick the closest -// Example if game's version is 2019.4.31f1, use 2019.4.21f1 -// 5.3.0f4 | 5.3.0f4 - 5.3.1f1 | v16 -// 5.3.2f1 | 5.3.2f1 | v19 -// 5.3.3f1 | 5.3.3f1 - 5.3.4f1 | v20 -// 5.3.5f1 | 5.3.5f1 | v21 -// 5.3.6f1 | 5.3.6f1 | v21 -// 5.3.7f1 | 5.3.7f1 - 5.3.8f2 | v21 -// 5.4.0f3 | 5.4.0f3 | v21 -// 5.4.1f1 | 5.4.1f1 - 5.4.3f1 | v21 -// 5.4.4f1 | 5.4.4f1 - 5.4.6f3 | v21 -// 5.5.0f3 | 5.5.0f3 | v22 -// 5.5.1f1 | 5.5.1f1 - 5.5.6f1 | v22 -// 5.6.0f3 | 5.6.0f3 - 5.6.7f1 | v23 -// 2017.1.0f3 | 2017.1.0f3 - 2017.1.2f1 | v24 -// 2017.1.3f1 | 2017.1.3f1 - 2017.1.5f1 | v24 -// 2017.2.0f3 | 2017.2.0f3 | v24 -// 2017.2.1f1 | 2017.2.1f1 - 2017.4.40f1 | v24 -// 2018.1.0f2 | 2018.1.0f2 - 2018.1.9f2 | v24 -// 2018.2.0f2 | 2018.2.0f2 - 2018.2.21f1 | v24 -// 2018.3.0f2 | 2018.3.0f2 - 2018.3.7f1 | v24.1 -// 2018.3.8f1 | 2018.3.8f1 - 2018.4.36f1 | v24.1 -// 2019.1.0f2 | 2019.1.0f2 - 2019.2.21f1 | v24.2 -// 2019.3.0f6 | 2019.3.0f6 - 2019.3.6f1 | v24.2 -// 2019.3.7f1 | 2019.3.7f1 - 2019.4.14f1 | v24.3 -// 2019.4.15f1 | 2019.4.15f1 - 2019.4.20f1 | v24.4 -// 2019.4.21f1 | 2019.4.21f1 - 2019.4.29f1 | v24.5 -// 2020.1.0f1 | 2020.1.0f1 - 2020.1.10f1 | v24.3 -// 2020.1.11f1 | 2020.1.11f1 - 2020.1.17f1 | v24.4 -// 2020.2.0f1 | 2020.2.0f1 - 2020.2.3f1 | v27 -// 2020.2.4f1 | 2020.2.4f1 - 2020.3.15f2 | v27.1 -// 2021.1.0f1 | 2021.1.0f1 - 2021.1.16f1 | v27.2 - -#endif //RIRU_IL2CPPDUMPER_GAME_H diff --git a/app/src/main/jni/Includes/il2cpp_dump.h b/app/src/main/jni/Includes/il2cpp_dump.h deleted file mode 100644 index 41da204..0000000 --- a/app/src/main/jni/Includes/il2cpp_dump.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// Created by Perfare on 2020/7/4. -// - -#ifndef RIRU_IL2CPPDUMPER_IL2CPP_H -#define RIRU_IL2CPPDUMPER_IL2CPP_H - -#include "game.h" - -#define STR(x) #x -#define STRINGIFY_MACRO(x) STR(x) -#define EXPAND(x) x -#define IL2CPPHEADER(a, b, c) STRINGIFY_MACRO(EXPAND(a)EXPAND(b)EXPAND(c)) -#define IL2CPPAPIDIR il2cppapi/ -#define IL2CPPCLASS IL2CPPHEADER(IL2CPPAPIDIR, UnityVersion, /il2cpp-class.h) -#define IL2CPPAPI IL2CPPHEADER(IL2CPPAPIDIR, UnityVersion, /il2cpp-api-functions.h) - -void il2cpp_dump(void *handle, char *outDir); - -const char* GetPackageName(); - -#endif //RIRU_IL2CPPDUMPER_IL2CPP_H diff --git a/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h deleted file mode 100644 index 31a8c40..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-api-functions.h +++ /dev/null @@ -1,263 +0,0 @@ -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(char*, il2cpp_thread_get_name, (Il2CppThread * thread, uint32_t * len)); -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API(const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass * klass)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo * info)); -DO_API(const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument * document)); -DO_API(const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument * document)); -DO_API(const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo * method)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo * info)); -DO_API(const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo * info)); -DO_API(size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset)); -DO_API(const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo * info)); -DO_API(const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo * info)); -DO_API(const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, int64_t uid, int32_t offset)); -DO_API(void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location, void *data)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location)); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h deleted file mode 100644 index ae7275a..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.1.0f3/il2cpp-class.h +++ /dev/null @@ -1,1027 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h deleted file mode 100644 index 31a8c40..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-api-functions.h +++ /dev/null @@ -1,263 +0,0 @@ -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(char*, il2cpp_thread_get_name, (Il2CppThread * thread, uint32_t * len)); -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API(const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass * klass)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo * info)); -DO_API(const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument * document)); -DO_API(const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument * document)); -DO_API(const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo * method)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo * info)); -DO_API(const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo * info)); -DO_API(size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset)); -DO_API(const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo * info)); -DO_API(const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo * info)); -DO_API(const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, int64_t uid, int32_t offset)); -DO_API(void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location, void *data)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location)); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h deleted file mode 100644 index e898f9d..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.1.3f1/il2cpp-class.h +++ /dev/null @@ -1,1028 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - const char* nameNoExt; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h deleted file mode 100644 index 2dc7fb3..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-api-functions.h +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(char*, il2cpp_thread_get_name, (Il2CppThread * thread, uint32_t * len)); -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API(const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass * klass)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo * info)); -DO_API(const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument * document)); -DO_API(const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument * document)); -DO_API(const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo * method)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo * info)); -DO_API(const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo * info)); -DO_API(size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset)); -DO_API(const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo * info)); -DO_API(const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo * info)); -DO_API(const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, int64_t uid, int32_t offset)); -DO_API(void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location, void *data)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location)); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h deleted file mode 100644 index 1f0b1d1..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.2.0f3/il2cpp-class.h +++ /dev/null @@ -1,1027 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h deleted file mode 100644 index 2dc7fb3..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-api-functions.h +++ /dev/null @@ -1,268 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(char*, il2cpp_thread_get_name, (Il2CppThread * thread, uint32_t * len)); -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo & frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API(const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass * klass)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo * info)); -DO_API(const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument * document)); -DO_API(const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument * document)); -DO_API(const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo * method)); -DO_API(const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo * info)); -DO_API(const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo * info)); -DO_API(size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset)); -DO_API(const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo * info)); -DO_API(const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo * info)); -DO_API(const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo * info)); -DO_API(Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo * info, uint32_t position)); -DO_API(void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, int64_t uid, int32_t offset)); -DO_API(void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location, void *data)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo * info)); -DO_API(void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo * info, uint64_t location)); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h deleted file mode 100644 index b720234..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2017.2.1f1/il2cpp-class.h +++ /dev/null @@ -1,1028 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h deleted file mode 100644 index 5eb6b25..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-api-functions.h +++ /dev/null @@ -1,251 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); diff --git a/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h deleted file mode 100644 index aa6fad1..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.1.0f2/il2cpp-class.h +++ /dev/null @@ -1,1099 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const uint32_t kInvalidIl2CppMethodSlot = 65535; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - const Il2CppType** m_type; - const char* m_name; - MethodVariableKind m_variableKind; - int m_start; - int m_end; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodScope -{ - int startOffset; - int endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int m_codeSize; - int m_numScopes; - Il2CppMethodScope *m_scopes; -} Il2CppMethodHeaderInfo; -typedef struct Hash16 -{ - uint8_t m_hash[16]; -} Hash16; -typedef struct Il2CppSequencePoint -{ - const Il2CppMethodExecutionContextInfo* executionContextInfos; - uint32_t executionContextInfoCount; - const Il2CppMethodHeaderInfo* header; - const MethodInfo* method; - const Il2CppClass* catchType; - const char* sourceFile; - Hash16 sourceFileHash; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - uint8_t isActive; - int id; - uint8_t tryDepth; -} Il2CppSequencePoint; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - uint8_t enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h deleted file mode 100644 index 6a9665c..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-api-functions.h +++ /dev/null @@ -1,258 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); diff --git a/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h deleted file mode 100644 index 3cd1abb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.2.0f2/il2cpp-class.h +++ /dev/null @@ -1,1131 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const uint32_t kInvalidIl2CppMethodSlot = 65535; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - MethodVariableKind variableKind; - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int8_t tableIndex; - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t codeSize; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointIndex -{ - uint8_t tableIndex; - int32_t index; -} Il2CppSequencePointIndex; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodIndex; - EncodedMethodIndex methodMetadataIndex; - const MethodInfo *method_; - TypeIndex catchTypeIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - uint8_t isActive; - int32_t id; - uint8_t tryDepth; -} Il2CppSequencePoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo** methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePointIndex* sequencePointIndexes; - Il2CppSequencePoint** sequencePoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - uint8_t enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h deleted file mode 100644 index 83c1818..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-api-functions.h +++ /dev/null @@ -1,274 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); diff --git a/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h deleted file mode 100644 index 0361339..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.3.0f2/il2cpp-class.h +++ /dev/null @@ -1,1122 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const uint32_t kInvalidIl2CppMethodSlot = 65535; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int8_t tableIndex; - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t codeSize; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointIndex -{ - uint8_t tableIndex; - int32_t index; -} Il2CppSequencePointIndex; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - uint8_t isActive; - int32_t id; - uint8_t tryDepth; -} Il2CppSequencePoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo** methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePointIndex* sequencePointIndexes; - Il2CppSequencePoint** sequencePoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - uint8_t enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h deleted file mode 100644 index 83c1818..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-api-functions.h +++ /dev/null @@ -1,274 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - - -DO_API(void, il2cpp_init, (const char* domain_name)); -DO_API(void, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); diff --git a/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h deleted file mode 100644 index f083d04..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2018.3.8f1/il2cpp-class.h +++ /dev/null @@ -1,1123 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const uint32_t kInvalidIl2CppMethodSlot = 65535; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int8_t tableIndex; - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t codeSize; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointIndex -{ - uint8_t tableIndex; - int32_t index; -} Il2CppSequencePointIndex; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - uint8_t isActive; - int32_t id; - uint8_t tryDepth; -} Il2CppSequencePoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo** methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePointIndex* sequencePointIndexes; - Il2CppSequencePoint** sequencePoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - uint8_t enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h deleted file mode 100644 index 8658149..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-api-functions.h +++ /dev/null @@ -1,283 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); - -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); - -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); diff --git a/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h deleted file mode 100644 index bd0c753..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.1.0f2/il2cpp-class.h +++ /dev/null @@ -1,1368 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef uintptr_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -static const uint32_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t codeSize; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - uint8_t isActive; - int32_t id; - uint8_t tryDepth; -} Il2CppSequencePoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexPair* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - uint8_t enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h deleted file mode 100644 index 43293e3..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-api-functions.h +++ /dev/null @@ -1,304 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); diff --git a/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h deleted file mode 100644 index f236656..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.3.0f6/il2cpp-class.h +++ /dev/null @@ -1,1405 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint32_t Il2CppMethodSlot; -static const uint32_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int8_t tryId; - int8_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h deleted file mode 100644 index 43293e3..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-api-functions.h +++ /dev/null @@ -1,304 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); diff --git a/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h deleted file mode 100644 index 06e81ad..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.3.7f1/il2cpp-class.h +++ /dev/null @@ -1,1412 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint32_t Il2CppMethodSlot; -static const uint32_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int8_t tryId; - int8_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h deleted file mode 100644 index 4250a28..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-api-functions.h +++ /dev/null @@ -1,306 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h deleted file mode 100644 index 381cb97..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.4.15f1/il2cpp-class.h +++ /dev/null @@ -1,2196 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint32_t Il2CppMethodSlot; -static const uint32_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject *type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h deleted file mode 100644 index 4250a28..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-api-functions.h +++ /dev/null @@ -1,306 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h deleted file mode 100644 index da4a491..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2019.4.21f1/il2cpp-class.h +++ /dev/null @@ -1,2205 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint32_t Il2CppMethodSlot; -static const uint32_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex adjustorThunkIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppTokenAdjustorThunkPair -{ - uint32_t token; - Il2CppMethodPointer adjustorThunk; -} Il2CppTokenAdjustorThunkPair; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const uint32_t adjustorThunkCount; - const Il2CppTokenAdjustorThunkPair* adjustorThunks; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - const Il2CppMethodPointer* genericAdjustorThunks; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject *type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h deleted file mode 100644 index 0b50d22..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-api-functions.h +++ /dev/null @@ -1,307 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); -DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h deleted file mode 100644 index b830635..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.1.0f1/il2cpp-class.h +++ /dev/null @@ -1,2198 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; - uintptr_t raw_ip; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint16_t Il2CppMethodSlot; -static const uint16_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int8_t tryId; - int8_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const char* hash_value; - const char* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject* type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h deleted file mode 100644 index 0b50d22..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-api-functions.h +++ /dev/null @@ -1,307 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); -DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h deleted file mode 100644 index e3792af..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.1.11f1/il2cpp-class.h +++ /dev/null @@ -1,2197 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; - uintptr_t raw_ip; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint16_t Il2CppMethodSlot; -static const uint16_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - GenericContainerIndex genericContainerIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppTokenIndexPair -{ - uint32_t token; - int32_t index; -} Il2CppTokenIndexPair; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject* type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h deleted file mode 100644 index a4b4770..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-api-functions.h +++ /dev/null @@ -1,309 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); -DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_start_incremental_collection , ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(void, il2cpp_gc_set_mode, (Il2CppGCMode mode)); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h deleted file mode 100644 index 2e6e9f7..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.2.0f1/il2cpp-class.h +++ /dev/null @@ -1,2270 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_GC_MODE_DISABLED = 0, - IL2CPP_GC_MODE_ENABLED = 1, - IL2CPP_GC_MODE_MANUAL = 2 -} Il2CppGCMode; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; - uintptr_t raw_ip; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint16_t Il2CppMethodSlot; -static const uint16_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -typedef int32_t TypeFieldIndex; -typedef int32_t TypeMethodIndex; -typedef int32_t MethodParameterIndex; -typedef int32_t TypePropertyIndex; -typedef int32_t TypeEventIndex; -typedef int32_t TypeInterfaceIndex; -typedef int32_t TypeNestedTypeIndex; -typedef int32_t TypeInterfaceOffsetIndex; -typedef int32_t GenericContainerParameterIndex; -typedef int32_t AssemblyTypeIndex; -typedef int32_t AssemblyExportedTypeIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex __methodIndex; - TypeIndex __typeIndex; -} Il2CppRGCTXDefinitionData; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static inline uint32_t GetTokenType(uint32_t token) -{ - return token & 0xFF000000; -} -static inline uint32_t GetTokenRowId(uint32_t token) -{ - return token & 0x00FFFFFF; -} -typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; -typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; -typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; -typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; -typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; -typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppMetadataRange -{ - int32_t start; - int32_t length; -} Il2CppMetadataRange; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t windowsRuntimeStringsOffset; - int32_t windowsRuntimeStringsSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericClass -{ - const Il2CppType* type; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex __klassIndex; - Il2CppMetadataTypeHandle typeHandle; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex __genericParameterIndex; - Il2CppMetadataGenericParameterHandle genericParameterHandle; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef struct Il2CppMetadataFieldInfo -{ - const Il2CppType* type; - const char* name; - uint32_t token; -} Il2CppMetadataFieldInfo; -typedef struct Il2CppMetadataMethodInfo -{ - Il2CppMetadataMethodDefinitionHandle handle; - const char* name; - const Il2CppType* return_type; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMetadataMethodInfo; -typedef struct Il2CppMetadataParameterInfo -{ - const char* name; - uint32_t token; - const Il2CppType* type; -} Il2CppMetadataParameterInfo; -typedef struct Il2CppMetadataPropertyInfo -{ - const char* name; - const MethodInfo* get; - const MethodInfo* set; - uint32_t attrs; - uint32_t token; -} Il2CppMetadataPropertyInfo; -typedef struct Il2CppMetadataEventInfo -{ - const char* name; - const Il2CppType* type; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} Il2CppMetadataEventInfo; -typedef struct Il2CppInterfaceOffsetInfo -{ - const Il2CppType* interfaceType; - int32_t offset; -} Il2CppInterfaceOffsetInfo; -typedef struct Il2CppGenericParameterInfo -{ - Il2CppMetadataGenericContainerHandle containerHandle; - const char* name; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameterInfo; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex __klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex __methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex __methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; - }; - union - { - const Il2CppGenericMethod* genericMethod; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - Il2CppMetadataTypeHandle typeMetadataHandle; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - uint32_t typeCount; - uint32_t exportedTypeCount; - uint32_t customAttributeCount; - Il2CppMetadataImageHandle metadataHandle; - Il2CppNameToTypeHandleHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t __genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; - const CustomAttributesCacheGenerator* customAttributeCacheGenerator; - const Il2CppMethodPointer moduleInitializer; - TypeDefinitionIndex* staticConstructorTypeIndices; - const Il2CppMetadataRegistration* metadataRegistration; - const Il2CppCodeRegistration* codeRegistaration; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject* type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h deleted file mode 100644 index a4b4770..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-api-functions.h +++ /dev/null @@ -1,309 +0,0 @@ -#ifndef DO_API_NO_RETURN -#define DO_API_NO_RETURN(r, n, p) DO_API(r,n,p) -#endif - -DO_API(int, il2cpp_init, (const char* domain_name)); -DO_API(int, il2cpp_init_utf16, (const Il2CppChar * domain_name)); -DO_API(void, il2cpp_shutdown, ()); -DO_API(void, il2cpp_set_config_dir, (const char *config_path)); -DO_API(void, il2cpp_set_data_dir, (const char *data_path)); -DO_API(void, il2cpp_set_temp_dir, (const char *temp_path)); -DO_API(void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir)); -DO_API(void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar * const argv[], const char* basedir)); -DO_API(void, il2cpp_set_config_utf16, (const Il2CppChar * executablePath)); -DO_API(void, il2cpp_set_config, (const char* executablePath)); - -DO_API(void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks * callbacks)); -DO_API(const Il2CppImage*, il2cpp_get_corlib, ()); -DO_API(void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method)); -DO_API(Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name)); - -DO_API(void*, il2cpp_alloc, (size_t size)); -DO_API(void, il2cpp_free, (void* ptr)); - -// array -DO_API(Il2CppClass*, il2cpp_array_class_get, (Il2CppClass * element_class, uint32_t rank)); -DO_API(uint32_t, il2cpp_array_length, (Il2CppArray * array)); -DO_API(uint32_t, il2cpp_array_get_byte_length, (Il2CppArray * array)); -DO_API(Il2CppArray*, il2cpp_array_new, (Il2CppClass * elementTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass * arrayTypeInfo, il2cpp_array_size_t length)); -DO_API(Il2CppArray*, il2cpp_array_new_full, (Il2CppClass * array_class, il2cpp_array_size_t * lengths, il2cpp_array_size_t * lower_bounds)); -DO_API(Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass * element_class, uint32_t rank, bool bounded)); -DO_API(int, il2cpp_array_element_size, (const Il2CppClass * array_class)); - -// assembly -DO_API(const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly * assembly)); - -// class -DO_API(void, il2cpp_class_for_each, (void(*klassReportFunc)(Il2CppClass* klass, void* userData), void* userData)); -DO_API(const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_generic, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_inflated, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_assignable_from, (Il2CppClass * klass, Il2CppClass * oklass)); -DO_API(bool, il2cpp_class_is_subclass_of, (Il2CppClass * klass, Il2CppClass * klassc, bool check_interfaces)); -DO_API(bool, il2cpp_class_has_parent, (Il2CppClass * klass, Il2CppClass * klassc)); -DO_API(Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage * image, const char* namespaze, const char *name)); -DO_API(Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType * type)); -DO_API(Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass * klass)); -DO_API(const EventInfo*, il2cpp_class_get_events, (Il2CppClass * klass, void* *iter)); -DO_API(FieldInfo*, il2cpp_class_get_fields, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass * klass, void* *iter)); -DO_API(Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass * klass, void* *iter)); -DO_API(const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass * klass, const char *name)); -DO_API(FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass * klass, const char *name)); -DO_API(const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass * klass, void* *iter)); -DO_API(const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass * klass, const char* name, int argsCount)); -DO_API(const char*, il2cpp_class_get_name, (Il2CppClass * klass)); -DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); -DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_instance_size, (Il2CppClass * klass)); -DO_API(size_t, il2cpp_class_num_fields, (const Il2CppClass * enumKlass)); -DO_API(bool, il2cpp_class_is_valuetype, (const Il2CppClass * klass)); -DO_API(int32_t, il2cpp_class_value_size, (Il2CppClass * klass, uint32_t * align)); -DO_API(bool, il2cpp_class_is_blittable, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_flags, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_abstract, (const Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_interface, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_array_element_size, (const Il2CppClass * klass)); -DO_API(Il2CppClass*, il2cpp_class_from_type, (const Il2CppType * type)); -DO_API(const Il2CppType*, il2cpp_class_get_type, (Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_type_token, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_has_attribute, (Il2CppClass * klass, Il2CppClass * attr_class)); -DO_API(bool, il2cpp_class_has_references, (Il2CppClass * klass)); -DO_API(bool, il2cpp_class_is_enum, (const Il2CppClass * klass)); -DO_API(const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass * klass)); -DO_API(const char*, il2cpp_class_get_assemblyname, (const Il2CppClass * klass)); -DO_API(int, il2cpp_class_get_rank, (const Il2CppClass * klass)); -DO_API(uint32_t, il2cpp_class_get_data_size, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_class_get_static_field_data, (const Il2CppClass * klass)); - -// testing only -DO_API(size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass * klass)); -DO_API(void, il2cpp_class_get_bitmap, (Il2CppClass * klass, size_t * bitmap)); - -// stats -DO_API(bool, il2cpp_stats_dump_to_file, (const char *path)); -DO_API(uint64_t, il2cpp_stats_get_value, (Il2CppStat stat)); - -// domain -DO_API(Il2CppDomain*, il2cpp_domain_get, ()); -DO_API(const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain * domain, const char* name)); -DO_API(const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain * domain, size_t * size)); - -// exception -DO_API_NO_RETURN(void, il2cpp_raise_exception, (Il2CppException*)); -DO_API(Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage * image, const char *name_space, const char *name, const char *msg)); -DO_API(Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg)); -DO_API(void, il2cpp_format_exception, (const Il2CppException * ex, char* message, int message_size)); -DO_API(void, il2cpp_format_stack_trace, (const Il2CppException * ex, char* output, int output_size)); -DO_API(void, il2cpp_unhandled_exception, (Il2CppException*)); -DO_API(void, il2cpp_native_stack_trace, (const Il2CppException * ex, uintptr_t** addresses, int* numFrames, char* imageUUID)); - -// field -DO_API(int, il2cpp_field_get_flags, (FieldInfo * field)); -DO_API(const char*, il2cpp_field_get_name, (FieldInfo * field)); -DO_API(Il2CppClass*, il2cpp_field_get_parent, (FieldInfo * field)); -DO_API(size_t, il2cpp_field_get_offset, (FieldInfo * field)); -DO_API(const Il2CppType*, il2cpp_field_get_type, (FieldInfo * field)); -DO_API(void, il2cpp_field_get_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo * field, Il2CppObject * obj)); -DO_API(bool, il2cpp_field_has_attribute, (FieldInfo * field, Il2CppClass * attr_class)); -DO_API(void, il2cpp_field_set_value, (Il2CppObject * obj, FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_get_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_static_set_value, (FieldInfo * field, void *value)); -DO_API(void, il2cpp_field_set_value_object, (Il2CppObject * instance, FieldInfo * field, Il2CppObject * value)); -DO_API(bool, il2cpp_field_is_literal, (FieldInfo * field)); -// gc -DO_API(void, il2cpp_gc_collect, (int maxGenerations)); -DO_API(int32_t, il2cpp_gc_collect_a_little, ()); -DO_API(void, il2cpp_gc_start_incremental_collection , ()); -DO_API(void, il2cpp_gc_disable, ()); -DO_API(void, il2cpp_gc_enable, ()); -DO_API(bool, il2cpp_gc_is_disabled, ()); -DO_API(void, il2cpp_gc_set_mode, (Il2CppGCMode mode)); -DO_API(int64_t, il2cpp_gc_get_max_time_slice_ns, ()); -DO_API(void, il2cpp_gc_set_max_time_slice_ns, (int64_t maxTimeSlice)); -DO_API(bool, il2cpp_gc_is_incremental, ()); -DO_API(int64_t, il2cpp_gc_get_used_size, ()); -DO_API(int64_t, il2cpp_gc_get_heap_size, ()); -DO_API(void, il2cpp_gc_wbarrier_set_field, (Il2CppObject * obj, void **targetAddress, void *object)); -DO_API(bool, il2cpp_gc_has_strict_wbarriers, ()); -DO_API(void, il2cpp_gc_set_external_allocation_tracker, (void(*func)(void*, size_t, int))); -DO_API(void, il2cpp_gc_set_external_wbarrier_tracker, (void(*func)(void**))); -DO_API(void, il2cpp_gc_foreach_heap, (void(*func)(void* data, void* userData), void* userData)); -DO_API(void, il2cpp_stop_gc_world, ()); -DO_API(void, il2cpp_start_gc_world, ()); -// gchandle -DO_API(uint32_t, il2cpp_gchandle_new, (Il2CppObject * obj, bool pinned)); -DO_API(uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject * obj, bool track_resurrection)); -DO_API(Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle)); -DO_API(void, il2cpp_gchandle_free, (uint32_t gchandle)); -DO_API(void , il2cpp_gchandle_foreach_get_target, (void(*func)(void* data, void* userData), void* userData)); - -// vm runtime info -DO_API(uint32_t, il2cpp_object_header_size, ()); -DO_API(uint32_t, il2cpp_array_object_header_size, ()); -DO_API(uint32_t, il2cpp_offset_of_array_length_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_offset_of_array_bounds_in_array_object_header, ()); -DO_API(uint32_t, il2cpp_allocation_granularity, ()); - -// liveness -DO_API(void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass * filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped)); -DO_API(void, il2cpp_unity_liveness_calculation_end, (void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject * root, void* state)); -DO_API(void, il2cpp_unity_liveness_calculation_from_statics, (void* state)); - -// method -DO_API(const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo * method)); -DO_API(Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_name, (const MethodInfo * method)); -DO_API(const MethodInfo*, il2cpp_method_get_from_reflection, (const Il2CppReflectionMethod * method)); -DO_API(Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo * method, Il2CppClass * refclass)); -DO_API(bool, il2cpp_method_is_generic, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_inflated, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_is_instance, (const MethodInfo * method)); -DO_API(uint32_t, il2cpp_method_get_param_count, (const MethodInfo * method)); -DO_API(const Il2CppType*, il2cpp_method_get_param, (const MethodInfo * method, uint32_t index)); -DO_API(Il2CppClass*, il2cpp_method_get_class, (const MethodInfo * method)); -DO_API(bool, il2cpp_method_has_attribute, (const MethodInfo * method, Il2CppClass * attr_class)); -DO_API(uint32_t, il2cpp_method_get_flags, (const MethodInfo * method, uint32_t * iflags)); -DO_API(uint32_t, il2cpp_method_get_token, (const MethodInfo * method)); -DO_API(const char*, il2cpp_method_get_param_name, (const MethodInfo * method, uint32_t index)); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API(void, il2cpp_profiler_install, (Il2CppProfiler * prof, Il2CppProfileFunc shutdown_callback)); -DO_API(void, il2cpp_profiler_set_events, (Il2CppProfileFlags events)); -DO_API(void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave)); -DO_API(void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback)); -DO_API(void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback)); -DO_API(void, il2cpp_profiler_install_fileio, (Il2CppProfileFileIOFunc callback)); -DO_API(void, il2cpp_profiler_install_thread, (Il2CppProfileThreadFunc start, Il2CppProfileThreadFunc end)); - -#endif - -// property -DO_API(uint32_t, il2cpp_property_get_flags, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo * prop)); -DO_API(const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo * prop)); -DO_API(const char*, il2cpp_property_get_name, (PropertyInfo * prop)); -DO_API(Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo * prop)); - -// object -DO_API(Il2CppClass*, il2cpp_object_get_class, (Il2CppObject * obj)); -DO_API(uint32_t, il2cpp_object_get_size, (Il2CppObject * obj)); -DO_API(const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject * obj, const MethodInfo * method)); -DO_API(Il2CppObject*, il2cpp_object_new, (const Il2CppClass * klass)); -DO_API(void*, il2cpp_object_unbox, (Il2CppObject * obj)); - -DO_API(Il2CppObject*, il2cpp_value_box, (Il2CppClass * klass, void* data)); - -// monitor -DO_API(void, il2cpp_monitor_enter, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_enter, (Il2CppObject * obj, uint32_t timeout)); -DO_API(void, il2cpp_monitor_exit, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_pulse_all, (Il2CppObject * obj)); -DO_API(void, il2cpp_monitor_wait, (Il2CppObject * obj)); -DO_API(bool, il2cpp_monitor_try_wait, (Il2CppObject * obj, uint32_t timeout)); - -// runtime -DO_API(Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo * method, void *obj, void **params, Il2CppException **exc)); -DO_API(Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo * method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc)); -DO_API(void, il2cpp_runtime_class_init, (Il2CppClass * klass)); -DO_API(void, il2cpp_runtime_object_init, (Il2CppObject * obj)); - -DO_API(void, il2cpp_runtime_object_init_exception, (Il2CppObject * obj, Il2CppException** exc)); - -DO_API(void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value)); - -// string -DO_API(int32_t, il2cpp_string_length, (Il2CppString * str)); -DO_API(Il2CppChar*, il2cpp_string_chars, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_new, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length)); -DO_API(Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar * text, int32_t len)); -DO_API(Il2CppString*, il2cpp_string_new_wrapper, (const char* str)); -DO_API(Il2CppString*, il2cpp_string_intern, (Il2CppString * str)); -DO_API(Il2CppString*, il2cpp_string_is_interned, (Il2CppString * str)); - -// thread -DO_API(Il2CppThread*, il2cpp_thread_current, ()); -DO_API(Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain * domain)); -DO_API(void, il2cpp_thread_detach, (Il2CppThread * thread)); - -DO_API(Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t * size)); -DO_API(bool, il2cpp_is_vm_thread, (Il2CppThread * thread)); - -// stacktrace -DO_API(void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data)); -DO_API(void, il2cpp_thread_walk_frame_stack, (Il2CppThread * thread, Il2CppFrameWalkFunc func, void* user_data)); -DO_API(bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_top_frame, (Il2CppThread * thread, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(bool, il2cpp_thread_get_frame_at, (Il2CppThread * thread, int32_t offset, Il2CppStackFrameInfo * frame)); -DO_API(int32_t, il2cpp_current_thread_get_stack_depth, ()); -DO_API(int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread * thread)); -DO_API(void, il2cpp_override_stack_backtrace, (Il2CppBacktraceFunc stackBacktraceFunc)); - -// type -DO_API(Il2CppObject*, il2cpp_type_get_object, (const Il2CppType * type)); -DO_API(int, il2cpp_type_get_type, (const Il2CppType * type)); -DO_API(Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType * type)); -DO_API(char*, il2cpp_type_get_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_byref, (const Il2CppType * type)); -DO_API(uint32_t, il2cpp_type_get_attrs, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_equals, (const Il2CppType * type, const Il2CppType * otherType)); -DO_API(char*, il2cpp_type_get_assembly_qualified_name, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_static, (const Il2CppType * type)); -DO_API(bool, il2cpp_type_is_pointer_type, (const Il2CppType * type)); - -// image -DO_API(const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_name, (const Il2CppImage * image)); -DO_API(const char*, il2cpp_image_get_filename, (const Il2CppImage * image)); -DO_API(const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage * image)); - -DO_API(size_t, il2cpp_image_get_class_count, (const Il2CppImage * image)); -DO_API(const Il2CppClass*, il2cpp_image_get_class, (const Il2CppImage * image, size_t index)); - -// Memory information -DO_API(Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, ()); -DO_API(void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot * snapshot)); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -// Debugger -DO_API(void, il2cpp_debugger_set_agent_options, (const char* options)); -DO_API(bool, il2cpp_is_debugger_attached, ()); -DO_API(void, il2cpp_register_debugger_agent_transport, (Il2CppDebuggerTransport * debuggerTransport)); - -// Debug metadata -DO_API(bool, il2cpp_debug_get_method_info, (const MethodInfo*, Il2CppMethodDebugInfo * methodDebugInfo)); - -// TLS module -DO_API(void, il2cpp_unity_install_unitytls_interface, (const void* unitytlsInterfaceStruct)); - -// custom attributes -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_class, (Il2CppClass * klass)); -DO_API(Il2CppCustomAttrInfo*, il2cpp_custom_attrs_from_method, (const MethodInfo * method)); - -DO_API(Il2CppObject*, il2cpp_custom_attrs_get_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(bool, il2cpp_custom_attrs_has_attr, (Il2CppCustomAttrInfo * ainfo, Il2CppClass * attr_klass)); -DO_API(Il2CppArray*, il2cpp_custom_attrs_construct, (Il2CppCustomAttrInfo * cinfo)); - -DO_API(void, il2cpp_custom_attrs_free, (Il2CppCustomAttrInfo * ainfo)); - -// Il2CppClass user data for GetComponent optimization -DO_API(void, il2cpp_class_set_userdata, (Il2CppClass * klass, void* userdata)); -DO_API(int, il2cpp_class_get_userdata_offset, ()); - -DO_API(void, il2cpp_set_default_thread_affinity, (int64_t affinity_mask)); diff --git a/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h deleted file mode 100644 index 4226f62..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2020.2.4f1/il2cpp-class.h +++ /dev/null @@ -1,2279 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_GC_MODE_DISABLED = 0, - IL2CPP_GC_MODE_ENABLED = 1, - IL2CPP_GC_MODE_MANUAL = 2 -} Il2CppGCMode; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; - uintptr_t raw_ip; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint16_t Il2CppMethodSlot; -static const uint16_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -typedef int32_t TypeFieldIndex; -typedef int32_t TypeMethodIndex; -typedef int32_t MethodParameterIndex; -typedef int32_t TypePropertyIndex; -typedef int32_t TypeEventIndex; -typedef int32_t TypeInterfaceIndex; -typedef int32_t TypeNestedTypeIndex; -typedef int32_t TypeInterfaceOffsetIndex; -typedef int32_t GenericContainerParameterIndex; -typedef int32_t AssemblyTypeIndex; -typedef int32_t AssemblyExportedTypeIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex __methodIndex; - TypeIndex __typeIndex; -} Il2CppRGCTXDefinitionData; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex adjustorThunkIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static inline uint32_t GetTokenType(uint32_t token) -{ - return token & 0xFF000000; -} -static inline uint32_t GetTokenRowId(uint32_t token) -{ - return token & 0x00FFFFFF; -} -typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; -typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; -typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; -typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; -typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; -typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppMetadataRange -{ - int32_t start; - int32_t length; -} Il2CppMetadataRange; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t windowsRuntimeStringsOffset; - int32_t windowsRuntimeStringsSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericClass -{ - const Il2CppType* type; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex __klassIndex; - Il2CppMetadataTypeHandle typeHandle; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex __genericParameterIndex; - Il2CppMetadataGenericParameterHandle genericParameterHandle; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef struct Il2CppMetadataFieldInfo -{ - const Il2CppType* type; - const char* name; - uint32_t token; -} Il2CppMetadataFieldInfo; -typedef struct Il2CppMetadataMethodInfo -{ - Il2CppMetadataMethodDefinitionHandle handle; - const char* name; - const Il2CppType* return_type; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMetadataMethodInfo; -typedef struct Il2CppMetadataParameterInfo -{ - const char* name; - uint32_t token; - const Il2CppType* type; -} Il2CppMetadataParameterInfo; -typedef struct Il2CppMetadataPropertyInfo -{ - const char* name; - const MethodInfo* get; - const MethodInfo* set; - uint32_t attrs; - uint32_t token; -} Il2CppMetadataPropertyInfo; -typedef struct Il2CppMetadataEventInfo -{ - const char* name; - const Il2CppType* type; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} Il2CppMetadataEventInfo; -typedef struct Il2CppInterfaceOffsetInfo -{ - const Il2CppType* interfaceType; - int32_t offset; -} Il2CppInterfaceOffsetInfo; -typedef struct Il2CppGenericParameterInfo -{ - Il2CppMetadataGenericContainerHandle containerHandle; - const char* name; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameterInfo; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex __klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex __methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex __methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; - }; - union - { - const Il2CppGenericMethod* genericMethod; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - Il2CppMetadataTypeHandle typeMetadataHandle; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - uint32_t typeCount; - uint32_t exportedTypeCount; - uint32_t customAttributeCount; - Il2CppMetadataImageHandle metadataHandle; - Il2CppNameToTypeHandleHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t __genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppTokenAdjustorThunkPair -{ - uint32_t token; - Il2CppMethodPointer adjustorThunk; -} Il2CppTokenAdjustorThunkPair; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const uint32_t adjustorThunkCount; - const Il2CppTokenAdjustorThunkPair* adjustorThunks; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; - const CustomAttributesCacheGenerator* customAttributeCacheGenerator; - const Il2CppMethodPointer moduleInitializer; - TypeDefinitionIndex* staticConstructorTypeIndices; - const Il2CppMetadataRegistration* metadataRegistration; - const Il2CppCodeRegistration* codeRegistaration; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - const Il2CppMethodPointer* genericAdjustorThunks; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject* type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h deleted file mode 100644 index 2345107..0000000 --- a/app/src/main/jni/Includes/il2cppapi/2021.1.0f1/il2cpp-class.h +++ /dev/null @@ -1,2282 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo; -typedef enum -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19, - IL2CPP_PROFILE_FILEIO = 1 << 20 -} Il2CppProfileFlags; -typedef enum -{ - IL2CPP_PROFILE_FILEIO_WRITE = 0, - IL2CPP_PROFILE_FILEIO_READ -} Il2CppProfileFileIOKind; -typedef enum -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum -{ - IL2CPP_GC_MODE_DISABLED = 0, - IL2CPP_GC_MODE_ENABLED = 1, - IL2CPP_GC_MODE_MANUAL = 2 -} Il2CppGCMode; -typedef enum -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; - uintptr_t raw_ip; - int sourceCodeLineNumber; - int ilOffset; - const char* filePath; -} Il2CppStackFrameInfo; -typedef void(*Il2CppMethodPointer)(); -typedef struct Il2CppMethodDebugInfo -{ - Il2CppMethodPointer methodPointer; - int32_t code_size; - const char *file; -} Il2CppMethodDebugInfo; -typedef struct -{ - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef struct -{ - const char *name; - void(*connect)(const char *address); - int(*wait_for_attach)(void); - void(*close1)(void); - void(*close2)(void); - int(*send)(void *buf, int len); - int(*recv)(void *buf, int len); -} Il2CppDebuggerTransport; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef void (*Il2CppProfileFileIOFunc) (Il2CppProfiler* prof, Il2CppProfileFileIOKind kind, int count); -typedef void (*Il2CppProfileThreadFunc) (Il2CppProfiler *prof, unsigned long tid); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef size_t(*Il2CppBacktraceFunc) (Il2CppMethodPointer* buffer, size_t maxSize); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef uintptr_t il2cpp_array_size_t; -typedef void ( *SynchronizationContextCallback)(intptr_t arg); -typedef uint16_t Il2CppMethodSlot; -static const uint16_t kInvalidIl2CppMethodSlot = 65535; -static const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum -{ - IL2CPP_TOKEN_MODULE = 0x00000000, - IL2CPP_TOKEN_TYPE_REF = 0x01000000, - IL2CPP_TOKEN_TYPE_DEF = 0x02000000, - IL2CPP_TOKEN_FIELD_DEF = 0x04000000, - IL2CPP_TOKEN_METHOD_DEF = 0x06000000, - IL2CPP_TOKEN_PARAM_DEF = 0x08000000, - IL2CPP_TOKEN_INTERFACE_IMPL = 0x09000000, - IL2CPP_TOKEN_MEMBER_REF = 0x0a000000, - IL2CPP_TOKEN_CUSTOM_ATTRIBUTE = 0x0c000000, - IL2CPP_TOKEN_PERMISSION = 0x0e000000, - IL2CPP_TOKEN_SIGNATURE = 0x11000000, - IL2CPP_TOKEN_EVENT = 0x14000000, - IL2CPP_TOKEN_PROPERTY = 0x17000000, - IL2CPP_TOKEN_MODULE_REF = 0x1a000000, - IL2CPP_TOKEN_TYPE_SPEC = 0x1b000000, - IL2CPP_TOKEN_ASSEMBLY = 0x20000000, - IL2CPP_TOKEN_ASSEMBLY_REF = 0x23000000, - IL2CPP_TOKEN_FILE = 0x26000000, - IL2CPP_TOKEN_EXPORTED_TYPE = 0x27000000, - IL2CPP_TOKEN_MANIFEST_RESOURCE = 0x28000000, - IL2CPP_TOKEN_GENERIC_PARAM = 0x2a000000, - IL2CPP_TOKEN_METHOD_SPEC = 0x2b000000, -} Il2CppTokenType; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -typedef int32_t TypeFieldIndex; -typedef int32_t TypeMethodIndex; -typedef int32_t MethodParameterIndex; -typedef int32_t TypePropertyIndex; -typedef int32_t TypeEventIndex; -typedef int32_t TypeInterfaceIndex; -typedef int32_t TypeNestedTypeIndex; -typedef int32_t TypeInterfaceOffsetIndex; -typedef int32_t GenericContainerParameterIndex; -typedef int32_t AssemblyTypeIndex; -typedef int32_t AssemblyExportedTypeIndex; -static const TypeIndex kTypeIndexInvalid = -1; -static const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -static const DefaultValueDataIndex kDefaultValueIndexNull = -1; -static const CustomAttributeIndex kCustomAttributeIndexInvalid = -1; -static const EventIndex kEventIndexInvalid = -1; -static const FieldIndex kFieldIndexInvalid = -1; -static const MethodIndex kMethodIndexInvalid = -1; -static const PropertyIndex kPropertyIndexInvalid = -1; -static const GenericContainerIndex kGenericContainerIndexInvalid = -1; -static const GenericParameterIndex kGenericParameterIndexInvalid = -1; -static const RGCTXIndex kRGCTXIndexInvalid = -1; -static const StringLiteralIndex kStringLiteralIndexInvalid = -1; -static const InteropDataIndex kInteropDataIndexInvalid = -1; -static const int kPublicKeyByteLength = 8; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD, - IL2CPP_RGCTX_DATA_ARRAY, -} Il2CppRGCTXDataType; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex __methodIndex; - TypeIndex __typeIndex; -} Il2CppRGCTXDefinitionData; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - const Il2CppRGCTXDefinitionData* data; -} Il2CppRGCTXDefinition; -typedef struct -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex adjustorThunkIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -static inline uint32_t GetTokenType(uint32_t token) -{ - return token & 0xFF000000; -} -static inline uint32_t GetTokenRowId(uint32_t token) -{ - return token & 0x00FFFFFF; -} -typedef const struct ___Il2CppMetadataImageHandle* Il2CppMetadataImageHandle; -typedef const struct ___Il2CppMetadataCustomAttributeHandle* Il2CppMetadataCustomAttributeHandle; -typedef const struct ___Il2CppMetadataTypeHandle* Il2CppMetadataTypeHandle; -typedef const struct ___Il2CppMetadataMethodHandle* Il2CppMetadataMethodDefinitionHandle; -typedef const struct ___Il2CppMetadataGenericContainerHandle* Il2CppMetadataGenericContainerHandle; -typedef const struct ___Il2CppMetadataGenericParameterHandle* Il2CppMetadataGenericParameterHandle; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - TypeIndex byvalTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - GenericContainerIndex genericContainerIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppAssemblyNameDefinition -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyNameDefinition; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - TypeDefinitionIndex exportedTypeStart; - uint32_t exportedTypeCount; - MethodIndex entryPointIndex; - uint32_t token; - CustomAttributeIndex customAttributeStart; - uint32_t customAttributeCount; -} Il2CppImageDefinition; -typedef struct Il2CppAssemblyDefinition -{ - ImageIndex imageIndex; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyNameDefinition aname; -} Il2CppAssemblyDefinition; -typedef struct Il2CppCustomAttributeTypeRange -{ - uint32_t token; - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppMetadataRange -{ - int32_t start; - int32_t length; -} Il2CppMetadataRange; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; - int32_t windowsRuntimeStringsOffset; - int32_t windowsRuntimeStringsSize; - int32_t exportedTypeDefinitionsOffset; - int32_t exportedTypeDefinitionsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppMetadataField -{ - uint32_t offset; - uint32_t typeIndex; - const char* name; - uint8_t isStatic; -} Il2CppMetadataField; -typedef enum Il2CppMetadataTypeFlags -{ - kNone = 0, - kValueType = 1 << 0, - kArray = 1 << 1, - kArrayRankMask = 0xFFFF0000 -} Il2CppMetadataTypeFlags; -typedef struct Il2CppMetadataType -{ - Il2CppMetadataTypeFlags flags; - Il2CppMetadataField* fields; - uint32_t fieldCount; - uint32_t staticsSize; - uint8_t* statics; - uint32_t baseOrElementTypeIndex; - char* name; - const char* assemblyName; - uint64_t typeInfoAddress; - uint32_t size; -} Il2CppMetadataType; -typedef struct Il2CppMetadataSnapshot -{ - uint32_t typeCount; - Il2CppMetadataType* types; -} Il2CppMetadataSnapshot; -typedef struct Il2CppManagedMemorySection -{ - uint64_t sectionStartAddress; - uint32_t sectionSize; - uint8_t* sectionBytes; -} Il2CppManagedMemorySection; -typedef struct Il2CppManagedHeap -{ - uint32_t sectionCount; - Il2CppManagedMemorySection* sections; -} Il2CppManagedHeap; -typedef struct Il2CppStacks -{ - uint32_t stackCount; - Il2CppManagedMemorySection* stacks; -} Il2CppStacks; -typedef struct NativeObject -{ - uint32_t gcHandleIndex; - uint32_t size; - uint32_t instanceId; - uint32_t classId; - uint32_t referencedNativeObjectIndicesCount; - uint32_t* referencedNativeObjectIndices; -} NativeObject; -typedef struct Il2CppGCHandles -{ - uint32_t trackedObjectCount; - uint64_t* pointersToObjects; -} Il2CppGCHandles; -typedef struct Il2CppRuntimeInformation -{ - uint32_t pointerSize; - uint32_t objectHeaderSize; - uint32_t arrayHeaderSize; - uint32_t arrayBoundsOffsetInHeader; - uint32_t arraySizeOffsetInHeader; - uint32_t allocationGranularity; -} Il2CppRuntimeInformation; -typedef struct Il2CppManagedMemorySnapshot -{ - Il2CppManagedHeap heap; - Il2CppStacks stacks; - Il2CppMetadataSnapshot metadata; - Il2CppGCHandles gcHandles; - Il2CppRuntimeInformation runtimeInformation; - void* additionalUserInformation; -} Il2CppManagedMemorySnapshot; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST = 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericClass -{ - const Il2CppType* type; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union - { - void* dummy; - TypeDefinitionIndex __klassIndex; - Il2CppMetadataTypeHandle typeHandle; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex __genericParameterIndex; - Il2CppMetadataGenericParameterHandle genericParameterHandle; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 5; - unsigned int byref : 1; - unsigned int pinned : 1; - unsigned int valuetype : 1; -} Il2CppType; -typedef struct Il2CppMetadataFieldInfo -{ - const Il2CppType* type; - const char* name; - uint32_t token; -} Il2CppMetadataFieldInfo; -typedef struct Il2CppMetadataMethodInfo -{ - Il2CppMetadataMethodDefinitionHandle handle; - const char* name; - const Il2CppType* return_type; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMetadataMethodInfo; -typedef struct Il2CppMetadataParameterInfo -{ - const char* name; - uint32_t token; - const Il2CppType* type; -} Il2CppMetadataParameterInfo; -typedef struct Il2CppMetadataPropertyInfo -{ - const char* name; - const MethodInfo* get; - const MethodInfo* set; - uint32_t attrs; - uint32_t token; -} Il2CppMetadataPropertyInfo; -typedef struct Il2CppMetadataEventInfo -{ - const char* name; - const Il2CppType* type; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} Il2CppMetadataEventInfo; -typedef struct Il2CppInterfaceOffsetInfo -{ - const Il2CppType* interfaceType; - int32_t offset; -} Il2CppInterfaceOffsetInfo; -typedef struct Il2CppGenericParameterInfo -{ - Il2CppMetadataGenericContainerHandle containerHandle; - const char* name; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameterInfo; -typedef enum Il2CppCallConvention -{ - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE, - CHARSET_NOT_SPECIFIED -} Il2CppCharSet; -typedef struct Il2CppHString__ -{ - int unused; -} Il2CppHString__; -typedef Il2CppHString__* Il2CppHString; -typedef struct Il2CppHStringHeader -{ - union - { - void* Reserved1; - char Reserved2[24]; - } Reserved; -} Il2CppHStringHeader; -typedef struct Il2CppGuid -{ - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} Il2CppGuid; -typedef struct Il2CppSafeArrayBound -{ - uint32_t element_count; - int32_t lower_bound; -} Il2CppSafeArrayBound; -typedef struct Il2CppSafeArray -{ - uint16_t dimension_count; - uint16_t features; - uint32_t element_size; - uint32_t lock_count; - void* data; - Il2CppSafeArrayBound bounds[1]; -} Il2CppSafeArray; -typedef struct Il2CppWin32Decimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } s; - uint16_t signscale; - } u; - uint32_t hi32; - union - { - struct - { - uint32_t lo32; - uint32_t mid32; - } s2; - uint64_t lo64; - } u2; -} Il2CppWin32Decimal; -typedef int16_t IL2CPP_VARIANT_BOOL; -typedef enum Il2CppVarType -{ - IL2CPP_VT_EMPTY = 0, - IL2CPP_VT_NULL = 1, - IL2CPP_VT_I2 = 2, - IL2CPP_VT_I4 = 3, - IL2CPP_VT_R4 = 4, - IL2CPP_VT_R8 = 5, - IL2CPP_VT_CY = 6, - IL2CPP_VT_DATE = 7, - IL2CPP_VT_BSTR = 8, - IL2CPP_VT_DISPATCH = 9, - IL2CPP_VT_ERROR = 10, - IL2CPP_VT_BOOL = 11, - IL2CPP_VT_VARIANT = 12, - IL2CPP_VT_UNKNOWN = 13, - IL2CPP_VT_DECIMAL = 14, - IL2CPP_VT_I1 = 16, - IL2CPP_VT_UI1 = 17, - IL2CPP_VT_UI2 = 18, - IL2CPP_VT_UI4 = 19, - IL2CPP_VT_I8 = 20, - IL2CPP_VT_UI8 = 21, - IL2CPP_VT_INT = 22, - IL2CPP_VT_UINT = 23, - IL2CPP_VT_VOID = 24, - IL2CPP_VT_HRESULT = 25, - IL2CPP_VT_PTR = 26, - IL2CPP_VT_SAFEARRAY = 27, - IL2CPP_VT_CARRAY = 28, - IL2CPP_VT_USERDEFINED = 29, - IL2CPP_VT_LPSTR = 30, - IL2CPP_VT_LPWSTR = 31, - IL2CPP_VT_RECORD = 36, - IL2CPP_VT_INT_PTR = 37, - IL2CPP_VT_UINT_PTR = 38, - IL2CPP_VT_FILETIME = 64, - IL2CPP_VT_BLOB = 65, - IL2CPP_VT_STREAM = 66, - IL2CPP_VT_STORAGE = 67, - IL2CPP_VT_STREAMED_OBJECT = 68, - IL2CPP_VT_STORED_OBJECT = 69, - IL2CPP_VT_BLOB_OBJECT = 70, - IL2CPP_VT_CF = 71, - IL2CPP_VT_CLSID = 72, - IL2CPP_VT_VERSIONED_STREAM = 73, - IL2CPP_VT_BSTR_BLOB = 0xfff, - IL2CPP_VT_VECTOR = 0x1000, - IL2CPP_VT_ARRAY = 0x2000, - IL2CPP_VT_BYREF = 0x4000, - IL2CPP_VT_RESERVED = 0x8000, - IL2CPP_VT_ILLEGAL = 0xffff, - IL2CPP_VT_ILLEGALMASKED = 0xfff, - IL2CPP_VT_TYPEMASK = 0xfff, -} Il2CppVarType; -typedef struct Il2CppVariant Il2CppVariant; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppVariant -{ - union - { - struct __tagVARIANT - { - uint16_t type; - uint16_t reserved1; - uint16_t reserved2; - uint16_t reserved3; - union - { - int64_t llVal; - int32_t lVal; - uint8_t bVal; - int16_t iVal; - float fltVal; - double dblVal; - IL2CPP_VARIANT_BOOL boolVal; - int32_t scode; - int64_t cyVal; - double date; - Il2CppChar* bstrVal; - Il2CppIUnknown* punkVal; - void* pdispVal; - Il2CppSafeArray* parray; - uint8_t* pbVal; - int16_t* piVal; - int32_t* plVal; - int64_t* pllVal; - float* pfltVal; - double* pdblVal; - IL2CPP_VARIANT_BOOL* pboolVal; - int32_t* pscode; - int64_t* pcyVal; - double* pdate; - Il2CppChar* pbstrVal; - Il2CppIUnknown** ppunkVal; - void** ppdispVal; - Il2CppSafeArray** pparray; - struct Il2CppVariant* pvarVal; - void* byref; - char cVal; - uint16_t uiVal; - uint32_t ulVal; - uint64_t ullVal; - int intVal; - unsigned int uintVal; - Il2CppWin32Decimal* pdecVal; - char* pcVal; - uint16_t* puiVal; - uint32_t* pulVal; - uint64_t* pullVal; - int* pintVal; - unsigned int* puintVal; - struct __tagBRECORD - { - void* pvRecord; - void* pRecInfo; - } n4; - } n3; - } n2; - Il2CppWin32Decimal decVal; - } n1; -} Il2CppVariant; -typedef struct Il2CppFileTime -{ - uint32_t low; - uint32_t high; -} Il2CppFileTime; -typedef struct Il2CppStatStg -{ - Il2CppChar* name; - uint32_t type; - uint64_t size; - Il2CppFileTime mtime; - Il2CppFileTime ctime; - Il2CppFileTime atime; - uint32_t mode; - uint32_t locks; - Il2CppGuid clsid; - uint32_t state; - uint32_t reserved; -} Il2CppStatStg; -typedef enum Il2CppWindowsRuntimeTypeKind -{ - kTypeKindPrimitive = 0, - kTypeKindMetadata, - kTypeKindCustom -} Il2CppWindowsRuntimeTypeKind; -typedef struct Il2CppWindowsRuntimeTypeName -{ - Il2CppHString typeName; - enum Il2CppWindowsRuntimeTypeKind typeKind; -} Il2CppWindowsRuntimeTypeName; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeHandleHashTable Il2CppNameToTypeHandleHashTable; -typedef struct Il2CppCodeGenModule Il2CppCodeGenModule; -typedef struct Il2CppMetadataRegistration Il2CppMetadataRegistration; -typedef struct Il2CppCodeRegistration Il2CppCodeRegistration; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -typedef struct Il2CppDefaults -{ - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *internal_thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_ireadonlylist_class; - Il2CppClass *generic_ireadonlycollection_class; - Il2CppClass *runtimetype_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *attribute_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *mono_assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *mono_parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass *threadpool_wait_callback_class; - MethodInfo *threadpool_perform_wait_callback_method; - Il2CppClass *mono_method_message_class; - Il2CppClass* ireference_class; - Il2CppClass* ireferencearray_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; - Il2CppClass* windows_foundation_uri_class; - Il2CppClass* windows_foundation_iuri_runtime_class_class; - Il2CppClass* system_uri_class; - Il2CppClass* system_guid_class; - Il2CppClass* sbyte_shared_enum; - Il2CppClass* int16_shared_enum; - Il2CppClass* int32_shared_enum; - Il2CppClass* int64_shared_enum; - Il2CppClass* byte_shared_enum; - Il2CppClass* uint16_shared_enum; - Il2CppClass* uint32_shared_enum; - Il2CppClass* uint64_shared_enum; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**, void*); -typedef enum MethodVariableKind -{ - kMethodVariableKind_This, - kMethodVariableKind_Parameter, - kMethodVariableKind_LocalVariable -} MethodVariableKind; -typedef enum SequencePointKind -{ - kSequencePointKind_Normal, - kSequencePointKind_StepOut -} SequencePointKind; -typedef struct Il2CppMethodExecutionContextInfo -{ - TypeIndex typeIndex; - int32_t nameIndex; - int32_t scopeIndex; -} Il2CppMethodExecutionContextInfo; -typedef struct Il2CppMethodExecutionContextInfoIndex -{ - int32_t startIndex; - int32_t count; -} Il2CppMethodExecutionContextInfoIndex; -typedef struct Il2CppMethodScope -{ - int32_t startOffset; - int32_t endOffset; -} Il2CppMethodScope; -typedef struct Il2CppMethodHeaderInfo -{ - int32_t code_size; - int32_t startScope; - int32_t numScopes; -} Il2CppMethodHeaderInfo; -typedef struct Il2CppSequencePointSourceFile -{ - const char *file; - uint8_t hash[16]; -} Il2CppSequencePointSourceFile; -typedef struct Il2CppTypeSourceFilePair -{ - TypeDefinitionIndex __klassIndex; - int32_t sourceFileIndex; -} Il2CppTypeSourceFilePair; -typedef struct Il2CppSequencePoint -{ - MethodIndex __methodDefinitionIndex; - int32_t sourceFileIndex; - int32_t lineStart, lineEnd; - int32_t columnStart, columnEnd; - int32_t ilOffset; - SequencePointKind kind; - int32_t isActive; - int32_t id; -} Il2CppSequencePoint; -typedef struct Il2CppCatchPoint -{ - MethodIndex __methodDefinitionIndex; - TypeIndex catchTypeIndex; - int32_t ilOffset; - int32_t tryId; - int32_t parentTryId; -} Il2CppCatchPoint; -typedef struct Il2CppDebuggerMetadataRegistration -{ - Il2CppMethodExecutionContextInfo* methodExecutionContextInfos; - Il2CppMethodExecutionContextInfoIndex* methodExecutionContextInfoIndexes; - Il2CppMethodScope* methodScopes; - Il2CppMethodHeaderInfo* methodHeaderInfos; - Il2CppSequencePointSourceFile* sequencePointSourceFiles; - int32_t numSequencePoints; - Il2CppSequencePoint* sequencePoints; - int32_t numCatchPoints; - Il2CppCatchPoint* catchPoints; - int32_t numTypeSourceFileEntries; - Il2CppTypeSourceFilePair* typeSourceFiles; - const char** methodExecutionContextInfoStrings; -} Il2CppDebuggerMetadataRegistration; -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *klass; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - Il2CppMetadataMethodDefinitionHandle methodMetadataHandle; - }; - union - { - const Il2CppGenericMethod* genericMethod; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - }; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; - uint8_t wrapper_type : 1; - uint8_t is_marshaled_from_native : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - Il2CppType byval_arg; - Il2CppType this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - Il2CppMetadataTypeHandle typeMetadataHandle; - const Il2CppInteropData* interopData; - Il2CppClass* klass; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - struct Il2CppClass** typeHierarchy; - void *unity_user_data; - uint32_t initializationExceptionGCHandle; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) size_t cctor_thread; - Il2CppMetadataGenericContainerHandle genericContainerHandle; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t naturalAligment; - uint8_t packingSize; - uint8_t initialized_and_no_error : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - uint8_t has_initialization_error : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; - -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; - volatile int threadpool_jobs; - void* agent_info; -} Il2CppDomain; -typedef struct Il2CppAssemblyName -{ - const char* name; - const char* culture; - const uint8_t* public_key; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t public_key_token[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImage -{ - const char* name; - const char *nameNoExt; - Il2CppAssembly* assembly; - uint32_t typeCount; - uint32_t exportedTypeCount; - uint32_t customAttributeCount; - Il2CppMetadataImageHandle metadataHandle; - Il2CppNameToTypeHandleHashTable * nameToClassHashTable; - const Il2CppCodeGenModule* codeGenModule; - uint32_t token; - uint8_t dynamic; -} Il2CppImage; -typedef struct Il2CppAssembly -{ - Il2CppImage* image; - uint32_t token; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppCodeGenOptions -{ - uint8_t enablePrimitiveValueTypeGenericSharing; - int maximumRuntimeGenericDepth; -} Il2CppCodeGenOptions; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppTokenRangePair -{ - uint32_t token; - Il2CppRange range; -} Il2CppTokenRangePair; -typedef struct Il2CppTokenIndexMethodTuple -{ - uint32_t token; - int32_t index; - void** method; - uint32_t __genericMethodIndex; -} Il2CppTokenIndexMethodTuple; -typedef struct Il2CppTokenAdjustorThunkPair -{ - uint32_t token; - Il2CppMethodPointer adjustorThunk; -} Il2CppTokenAdjustorThunkPair; -typedef struct Il2CppWindowsRuntimeFactoryTableEntry -{ - const Il2CppType* type; - Il2CppMethodPointer createFactoryFunction; -} Il2CppWindowsRuntimeFactoryTableEntry; -typedef struct Il2CppCodeGenModule -{ - const char* moduleName; - const uint32_t methodPointerCount; - const Il2CppMethodPointer* methodPointers; - const uint32_t adjustorThunkCount; - const Il2CppTokenAdjustorThunkPair* adjustorThunks; - const int32_t* invokerIndices; - const uint32_t reversePInvokeWrapperCount; - const Il2CppTokenIndexMethodTuple* reversePInvokeWrapperIndices; - const uint32_t rgctxRangesCount; - const Il2CppTokenRangePair* rgctxRanges; - const uint32_t rgctxsCount; - const Il2CppRGCTXDefinition* rgctxs; - const Il2CppDebuggerMetadataRegistration *debuggerMetadata; - const CustomAttributesCacheGenerator* customAttributeCacheGenerator; - const Il2CppMethodPointer moduleInitializer; - TypeDefinitionIndex* staticConstructorTypeIndices; - const Il2CppMetadataRegistration* metadataRegistration; - const Il2CppCodeRegistration* codeRegistaration; -} Il2CppCodeGenModule; -typedef struct Il2CppCodeRegistration -{ - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - const Il2CppMethodPointer* genericAdjustorThunks; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; - uint32_t windowsRuntimeFactoryCount; - Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable; - uint32_t codeGenModulesCount; - const Il2CppCodeGenModule** codeGenModules; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct FieldInfo FieldInfo; -typedef struct EventInfo EventInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppAsyncCall Il2CppAsyncCall; -typedef struct Il2CppIUnknown Il2CppIUnknown; -typedef struct Il2CppWaitHandle Il2CppWaitHandle; -typedef struct MonitorData MonitorData; -typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; -typedef Il2CppClass Il2CppVTable; -typedef struct Il2CppObject -{ - union - { - Il2CppClass *klass; - Il2CppVTable *vtable; - }; - MonitorData *monitor; -} Il2CppObject; -typedef int32_t il2cpp_array_lower_bound_t; -typedef struct Il2CppArrayBounds -{ - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -} Il2CppArrayBounds; -typedef struct Il2CppArray -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; -} Il2CppArray; -typedef struct Il2CppArraySize -{ - Il2CppObject obj; - Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - __attribute__((aligned(8))) void* vector[32]; -} Il2CppArraySize; -typedef struct Il2CppString -{ - Il2CppObject object; - int32_t length; - Il2CppChar chars[32]; -} Il2CppString; -typedef struct Il2CppReflectionType -{ - Il2CppObject object; - const Il2CppType *type; -} Il2CppReflectionType; -typedef struct Il2CppReflectionRuntimeType -{ - Il2CppReflectionType type; - Il2CppObject* type_info; - Il2CppObject* genericCache; - Il2CppObject* serializationCtor; -} Il2CppReflectionRuntimeType; -typedef struct Il2CppReflectionMonoType -{ - Il2CppReflectionRuntimeType type; -} Il2CppReflectionMonoType; -typedef struct Il2CppReflectionEvent -{ - Il2CppObject object; - Il2CppObject *cached_add_event; -} Il2CppReflectionEvent; -typedef struct Il2CppReflectionMonoEvent -{ - Il2CppReflectionEvent event; - Il2CppReflectionType* reflectedType; - const EventInfo* eventInfo; -} Il2CppReflectionMonoEvent; -typedef struct Il2CppReflectionMonoEventInfo -{ - Il2CppReflectionType* declaringType; - Il2CppReflectionType* reflectedType; - Il2CppString* name; - Il2CppReflectionMethod* addMethod; - Il2CppReflectionMethod* removeMethod; - Il2CppReflectionMethod* raiseMethod; - uint32_t eventAttributes; - Il2CppArray* otherMethods; -} Il2CppReflectionMonoEventInfo; -typedef struct Il2CppReflectionField -{ - Il2CppObject object; - Il2CppClass *klass; - FieldInfo *field; - Il2CppString *name; - Il2CppReflectionType *type; - uint32_t attrs; -} Il2CppReflectionField; -typedef struct Il2CppReflectionProperty -{ - Il2CppObject object; - Il2CppClass *klass; - const PropertyInfo *property; -} Il2CppReflectionProperty; -typedef struct Il2CppReflectionMethod -{ - Il2CppObject object; - const MethodInfo *method; - Il2CppString *name; - Il2CppReflectionType *reftype; -} Il2CppReflectionMethod; -typedef struct Il2CppReflectionGenericMethod -{ - Il2CppReflectionMethod base; -} Il2CppReflectionGenericMethod; -typedef struct Il2CppMethodInfo -{ - Il2CppReflectionType *parent; - Il2CppReflectionType *ret; - uint32_t attrs; - uint32_t implattrs; - uint32_t callconv; -} Il2CppMethodInfo; -typedef struct Il2CppPropertyInfo -{ - Il2CppReflectionType* parent; - Il2CppReflectionType* declaringType; - Il2CppString *name; - Il2CppReflectionMethod *get; - Il2CppReflectionMethod *set; - uint32_t attrs; -} Il2CppPropertyInfo; -typedef struct Il2CppReflectionParameter -{ - Il2CppObject object; - Il2CppReflectionType *ClassImpl; - Il2CppObject *DefaultValueImpl; - Il2CppObject *MemberImpl; - Il2CppString *NameImpl; - int32_t PositionImpl; - uint32_t AttrsImpl; - Il2CppObject *MarshalAsImpl; -} Il2CppReflectionParameter; -typedef struct Il2CppReflectionModule -{ - Il2CppObject obj; - const Il2CppImage* image; - Il2CppReflectionAssembly* assembly; - Il2CppString* fqname; - Il2CppString* name; - Il2CppString* scopename; - uint8_t is_resource; - uint32_t token; -} Il2CppReflectionModule; -typedef struct Il2CppReflectionAssemblyName -{ - Il2CppObject obj; - Il2CppString *name; - Il2CppString *codebase; - int32_t major, minor, build, revision; - Il2CppObject *cultureInfo; - uint32_t flags; - uint32_t hashalg; - Il2CppObject *keypair; - Il2CppArray *publicKey; - Il2CppArray *keyToken; - uint32_t versioncompat; - Il2CppObject *version; - uint32_t processor_architecture; - uint32_t contentType; -} Il2CppReflectionAssemblyName; -typedef struct Il2CppReflectionAssembly -{ - Il2CppObject object; - const Il2CppAssembly *assembly; - Il2CppObject *resolve_event_holder; - Il2CppObject *evidence; - Il2CppObject *minimum; - Il2CppObject *optional; - Il2CppObject *refuse; - Il2CppObject *granted; - Il2CppObject *denied; - uint8_t from_byte_array; - Il2CppString *name; -} Il2CppReflectionAssembly; -typedef struct Il2CppReflectionMarshal -{ - Il2CppObject object; - int32_t count; - int32_t type; - int32_t eltype; - Il2CppString* guid; - Il2CppString* mcookie; - Il2CppString* marshaltype; - Il2CppObject* marshaltyperef; - int32_t param_num; - uint8_t has_size; -} Il2CppReflectionMarshal; -typedef struct Il2CppReflectionPointer -{ - Il2CppObject object; - void* data; - Il2CppReflectionType* type; -} Il2CppReflectionPointer; -typedef struct Il2CppInternalThread -{ - Il2CppObject obj; - int lock_thread_id; - void* handle; - void* native_handle; - Il2CppArray* cached_culture_info; - Il2CppChar* name; - int name_len; - uint32_t state; - Il2CppObject* abort_exc; - int abort_state_handle; - uint64_t tid; - intptr_t debugger_thread; - void** static_data; - void* runtime_thread_info; - Il2CppObject* current_appcontext; - Il2CppObject* root_domain_thread; - Il2CppArray* _serialized_principal; - int _serialized_principal_version; - void* appdomain_refs; - int32_t interruption_requested; - void* synch_cs; - uint8_t threadpool_thread; - uint8_t thread_interrupt_requested; - int stack_size; - uint8_t apartment_state; - int critical_region_level; - int managed_id; - uint32_t small_id; - void* manage_callback; - void* interrupt_on_stop; - intptr_t flags; - void* thread_pinning_ref; - void* abort_protected_block_count; - int32_t priority; - void* owned_mutexes; - void * suspended; - int32_t self_suspended; - size_t thread_state; - size_t unused2; - void* last; -} Il2CppInternalThread; -typedef struct Il2CppIOSelectorJob -{ - Il2CppObject object; - int32_t operation; - Il2CppObject *callback; - Il2CppObject *state; -} Il2CppIOSelectorJob; -typedef enum -{ - Il2Cpp_CallType_Sync = 0, - Il2Cpp_CallType_BeginInvoke = 1, - Il2Cpp_CallType_EndInvoke = 2, - Il2Cpp_CallType_OneWay = 3 -} Il2CppCallType; -typedef struct Il2CppMethodMessage -{ - Il2CppObject obj; - Il2CppReflectionMethod *method; - Il2CppArray *args; - Il2CppArray *names; - Il2CppArray *arg_types; - Il2CppObject *ctx; - Il2CppObject *rval; - Il2CppObject *exc; - Il2CppAsyncResult *async_result; - uint32_t call_type; -} Il2CppMethodMessage; -typedef struct Il2CppAppDomainSetup -{ - Il2CppObject object; - Il2CppString* application_base; - Il2CppString* application_name; - Il2CppString* cache_path; - Il2CppString* configuration_file; - Il2CppString* dynamic_base; - Il2CppString* license_file; - Il2CppString* private_bin_path; - Il2CppString* private_bin_path_probe; - Il2CppString* shadow_copy_directories; - Il2CppString* shadow_copy_files; - uint8_t publisher_policy; - uint8_t path_changed; - int loader_optimization; - uint8_t disallow_binding_redirects; - uint8_t disallow_code_downloads; - Il2CppObject* activation_arguments; - Il2CppObject* domain_initializer; - Il2CppObject* application_trust; - Il2CppArray* domain_initializer_args; - uint8_t disallow_appbase_probe; - Il2CppArray* configuration_bytes; - Il2CppArray* serialized_non_primitives; -} Il2CppAppDomainSetup; -typedef struct Il2CppThread -{ - Il2CppObject obj; - Il2CppInternalThread* internal_thread; - Il2CppObject* start_obj; - Il2CppException* pending_exception; - Il2CppObject* principal; - int32_t principal_version; - Il2CppDelegate* delegate; - Il2CppObject* executionContext; - uint8_t executionContextBelongsToOuterScope; -} Il2CppThread; -typedef struct Il2CppException -{ - Il2CppObject object; - Il2CppString* className; - Il2CppString* message; - Il2CppObject* _data; - struct Il2CppException* inner_ex; - Il2CppString* _helpURL; - Il2CppArray* trace_ips; - Il2CppString* stack_trace; - Il2CppString* remote_stack_trace; - int remote_stack_index; - Il2CppObject* _dynamicMethods; - il2cpp_hresult_t hresult; - Il2CppString* source; - Il2CppObject* safeSerializationManager; - Il2CppArray* captured_traces; - Il2CppArray* native_trace_ips; -} Il2CppException; -typedef struct Il2CppSystemException -{ - Il2CppException base; -} Il2CppSystemException; -typedef struct Il2CppArgumentException -{ - Il2CppException base; - Il2CppString *argName; -} Il2CppArgumentException; -typedef struct Il2CppTypedRef -{ - const Il2CppType *type; - void* value; - Il2CppClass *klass; -} Il2CppTypedRef; -typedef struct Il2CppDelegate -{ - Il2CppObject object; - Il2CppMethodPointer method_ptr; - InvokerMethod invoke_impl; - Il2CppObject *target; - const MethodInfo *method; - void* delegate_trampoline; - intptr_t extraArg; - uint8_t **method_code; - Il2CppReflectionMethod *method_info; - Il2CppReflectionMethod *original_method_info; - Il2CppObject *data; - uint8_t method_is_virtual; -} Il2CppDelegate; -typedef struct Il2CppMulticastDelegate -{ - Il2CppDelegate delegate; - Il2CppArray *delegates; -} Il2CppMulticastDelegate; -typedef struct Il2CppMarshalByRefObject -{ - Il2CppObject obj; - Il2CppObject *identity; -} Il2CppMarshalByRefObject; -typedef struct Il2CppAppDomain -{ - Il2CppMarshalByRefObject mbr; - Il2CppDomain *data; -} Il2CppAppDomain; -typedef struct Il2CppStackFrame -{ - Il2CppObject obj; - int32_t il_offset; - int32_t native_offset; - uint64_t methodAddress; - uint32_t methodIndex; - Il2CppReflectionMethod *method; - Il2CppString *filename; - int32_t line; - int32_t column; - Il2CppString *internal_method_name; -} Il2CppStackFrame; -typedef struct Il2CppDateTimeFormatInfo -{ - Il2CppObject obj; - Il2CppObject* CultureData; - Il2CppString* Name; - Il2CppString* LangName; - Il2CppObject* CompareInfo; - Il2CppObject* CultureInfo; - Il2CppString* AMDesignator; - Il2CppString* PMDesignator; - Il2CppString* DateSeparator; - Il2CppString* GeneralShortTimePattern; - Il2CppString* GeneralLongTimePattern; - Il2CppString* TimeSeparator; - Il2CppString* MonthDayPattern; - Il2CppString* DateTimeOffsetPattern; - Il2CppObject* Calendar; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; - Il2CppString* FullDateTimePattern; - Il2CppArray* AbbreviatedDayNames; - Il2CppArray* ShortDayNames; - Il2CppArray* DayNames; - Il2CppArray* AbbreviatedMonthNames; - Il2CppArray* MonthNames; - Il2CppArray* GenitiveMonthNames; - Il2CppArray* GenitiveAbbreviatedMonthNames; - Il2CppArray* LeapYearMonthNames; - Il2CppString* LongDatePattern; - Il2CppString* ShortDatePattern; - Il2CppString* YearMonthPattern; - Il2CppString* LongTimePattern; - Il2CppString* ShortTimePattern; - Il2CppArray* YearMonthPatterns; - Il2CppArray* ShortDatePatterns; - Il2CppArray* LongDatePatterns; - Il2CppArray* ShortTimePatterns; - Il2CppArray* LongTimePatterns; - Il2CppArray* EraNames; - Il2CppArray* AbbrevEraNames; - Il2CppArray* AbbrevEnglishEraNames; - Il2CppArray* OptionalCalendars; - uint8_t readOnly; - int32_t FormatFlags; - int32_t CultureID; - uint8_t UseUserOverride; - uint8_t UseCalendarInfo; - int32_t DataItem; - uint8_t IsDefaultCalendar; - Il2CppArray* DateWords; - Il2CppString* FullTimeSpanPositivePattern; - Il2CppString* FullTimeSpanNegativePattern; - Il2CppArray* dtfiTokenHash; -} Il2CppDateTimeFormatInfo; -typedef struct Il2CppNumberFormatInfo -{ - Il2CppObject obj; - Il2CppArray* numberGroupSizes; - Il2CppArray* currencyGroupSizes; - Il2CppArray* percentGroupSizes; - Il2CppString* positiveSign; - Il2CppString* negativeSign; - Il2CppString* numberDecimalSeparator; - Il2CppString* numberGroupSeparator; - Il2CppString* currencyGroupSeparator; - Il2CppString* currencyDecimalSeparator; - Il2CppString* currencySymbol; - Il2CppString* ansiCurrencySymbol; - Il2CppString* naNSymbol; - Il2CppString* positiveInfinitySymbol; - Il2CppString* negativeInfinitySymbol; - Il2CppString* percentDecimalSeparator; - Il2CppString* percentGroupSeparator; - Il2CppString* percentSymbol; - Il2CppString* perMilleSymbol; - Il2CppArray* nativeDigits; - int dataItem; - int numberDecimalDigits; - int currencyDecimalDigits; - int currencyPositivePattern; - int currencyNegativePattern; - int numberNegativePattern; - int percentPositivePattern; - int percentNegativePattern; - int percentDecimalDigits; - int digitSubstitution; - uint8_t readOnly; - uint8_t useUserOverride; - uint8_t isInvariant; - uint8_t validForParseAsNumber; - uint8_t validForParseAsCurrency; -} Il2CppNumberFormatInfo; -typedef struct Il2CppCultureData -{ - Il2CppObject obj; - Il2CppString *AMDesignator; - Il2CppString *PMDesignator; - Il2CppString *TimeSeparator; - Il2CppArray *LongTimePatterns; - Il2CppArray *ShortTimePatterns; - uint32_t FirstDayOfWeek; - uint32_t CalendarWeekRule; -} Il2CppCultureData; -typedef struct Il2CppCalendarData -{ - Il2CppObject obj; - Il2CppString *NativeName; - Il2CppArray *ShortDatePatterns; - Il2CppArray *YearMonthPatterns; - Il2CppArray *LongDatePatterns; - Il2CppString *MonthDayPattern; - Il2CppArray *EraNames; - Il2CppArray *AbbreviatedEraNames; - Il2CppArray *AbbreviatedEnglishEraNames; - Il2CppArray *DayNames; - Il2CppArray *AbbreviatedDayNames; - Il2CppArray *SuperShortDayNames; - Il2CppArray *MonthNames; - Il2CppArray *AbbreviatedMonthNames; - Il2CppArray *GenitiveMonthNames; - Il2CppArray *GenitiveAbbreviatedMonthNames; -} Il2CppCalendarData; -typedef struct Il2CppCultureInfo -{ - Il2CppObject obj; - uint8_t is_read_only; - int32_t lcid; - int32_t parent_lcid; - int32_t datetime_index; - int32_t number_index; - int32_t default_calendar_type; - uint8_t use_user_override; - Il2CppNumberFormatInfo* number_format; - Il2CppDateTimeFormatInfo* datetime_format; - Il2CppObject* textinfo; - Il2CppString* name; - Il2CppString* englishname; - Il2CppString* nativename; - Il2CppString* iso3lang; - Il2CppString* iso2lang; - Il2CppString* win3lang; - Il2CppString* territory; - Il2CppArray* native_calendar_names; - Il2CppString* compareinfo; - const void* text_info_data; - int dataItem; - Il2CppObject* calendar; - Il2CppObject* parent_culture; - uint8_t constructed; - Il2CppArray* cached_serialized_form; - Il2CppObject* cultureData; - uint8_t isInherited; -} Il2CppCultureInfo; -typedef struct Il2CppRegionInfo -{ - Il2CppObject obj; - int32_t geo_id; - Il2CppString* iso2name; - Il2CppString* iso3name; - Il2CppString* win3name; - Il2CppString* english_name; - Il2CppString* native_name; - Il2CppString* currency_symbol; - Il2CppString* iso_currency_symbol; - Il2CppString* currency_english_name; - Il2CppString* currency_native_name; -} Il2CppRegionInfo; -typedef struct Il2CppSafeHandle -{ - Il2CppObject base; - void* handle; - int state; - uint8_t owns_handle; - uint8_t fullyInitialized; -} Il2CppSafeHandle; -typedef struct Il2CppStringBuilder Il2CppStringBuilder; -typedef struct Il2CppStringBuilder -{ - Il2CppObject object; - Il2CppArray* chunkChars; - struct Il2CppStringBuilder* chunkPrevious; - int chunkLength; - int chunkOffset; - int maxCapacity; -} Il2CppStringBuilder; -typedef struct Il2CppSocketAddress -{ - Il2CppObject base; - int m_Size; - Il2CppArray* data; - uint8_t m_changed; - int m_hash; -} Il2CppSocketAddress; -typedef struct Il2CppSortKey -{ - Il2CppObject base; - Il2CppString *str; - Il2CppArray *key; - int32_t options; - int32_t lcid; -} Il2CppSortKey; -typedef struct Il2CppErrorWrapper -{ - Il2CppObject base; - int32_t errorCode; -} Il2CppErrorWrapper; -typedef struct Il2CppAsyncResult -{ - Il2CppObject base; - Il2CppObject *async_state; - Il2CppWaitHandle *handle; - Il2CppDelegate *async_delegate; - void* data; - Il2CppAsyncCall *object_data; - uint8_t sync_completed; - uint8_t completed; - uint8_t endinvoke_called; - Il2CppObject *async_callback; - Il2CppObject *execution_context; - Il2CppObject *original_context; -} Il2CppAsyncResult; -typedef struct Il2CppAsyncCall -{ - Il2CppObject base; - Il2CppMethodMessage *msg; - MethodInfo *cb_method; - Il2CppDelegate *cb_target; - Il2CppObject *state; - Il2CppObject *res; - Il2CppArray *out_args; -} Il2CppAsyncCall; -typedef struct Il2CppExceptionWrapper Il2CppExceptionWrapper; -typedef struct Il2CppExceptionWrapper -{ - Il2CppException* ex; -} Il2CppExceptionWrapper; -typedef struct Il2CppIOAsyncResult -{ - Il2CppObject base; - Il2CppDelegate* callback; - Il2CppObject* state; - Il2CppWaitHandle* wait_handle; - uint8_t completed_synchronously; - uint8_t completed; -} Il2CppIOAsyncResult; -typedef struct Il2CppSocketAsyncResult -{ - Il2CppIOAsyncResult base; - Il2CppObject* socket; - int32_t operation; - Il2CppException* delayedException; - Il2CppObject* endPoint; - Il2CppArray* buffer; - int32_t offset; - int32_t size; - int32_t socket_flags; - Il2CppObject* acceptSocket; - Il2CppArray* addresses; - int32_t port; - Il2CppObject* buffers; - uint8_t reuseSocket; - int32_t currentAddress; - Il2CppObject* acceptedSocket; - int32_t total; - int32_t error; - int32_t endCalled; -} Il2CppSocketAsyncResult; -typedef enum Il2CppResourceLocation -{ - IL2CPP_RESOURCE_LOCATION_EMBEDDED = 1, - IL2CPP_RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, - IL2CPP_RESOURCE_LOCATION_IN_MANIFEST = 4 -} Il2CppResourceLocation; -typedef struct Il2CppManifestResourceInfo -{ - Il2CppObject object; - Il2CppReflectionAssembly* assembly; - Il2CppString* filename; - uint32_t location; -} Il2CppManifestResourceInfo; -typedef struct Il2CppAppContext -{ - Il2CppObject obj; - int32_t domain_id; - int32_t context_id; - void* static_data; -} Il2CppAppContext; -typedef struct Il2CppDecimal -{ - uint16_t reserved; - union - { - struct - { - uint8_t scale; - uint8_t sign; - } u; - uint16_t signscale; - } u; - uint32_t Hi32; - union - { - struct - { - uint32_t Lo32; - uint32_t Mid32; - } v; - uint64_t Lo64; - } v; -} Il2CppDecimal; -typedef struct Il2CppDouble -{ - uint32_t mantLo : 32; - uint32_t mantHi : 20; - uint32_t exp : 11; - uint32_t sign : 1; -} Il2CppDouble; -typedef union Il2CppDouble_double -{ - Il2CppDouble s; - double d; -} Il2CppDouble_double; -typedef enum Il2CppDecimalCompareResult -{ - IL2CPP_DECIMAL_CMP_LT = -1, - IL2CPP_DECIMAL_CMP_EQ, - IL2CPP_DECIMAL_CMP_GT -} Il2CppDecimalCompareResult; -typedef struct Il2CppSingle -{ - uint32_t mant : 23; - uint32_t exp : 8; - uint32_t sign : 1; -} Il2CppSingle; -typedef union Il2CppSingle_float -{ - Il2CppSingle s; - float f; -} Il2CppSingle_float; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h deleted file mode 100644 index bbd4d69..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-api-functions.h +++ /dev/null @@ -1,247 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, methodPointerType method) ); -DO_API( methodPointerType, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, register_object_callback callback, void* userdata, WorldChangedCallback onWorldStarted, WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppObject **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppObject **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppObject** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( uint16_t*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const uint16_t *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h deleted file mode 100644 index 6ad25fd..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.0f4/il2cpp-class.h +++ /dev/null @@ -1,742 +0,0 @@ -typedef void (*methodPointerType)(); -typedef int32_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -static inline bool IsGenericMethodIndex (EncodedMethodIndex index) -{ - return (index & 0x80000000U) != 0; -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x7FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex delegateWrapperFromManagedToNativeIndex; - int32_t marshalingFunctionsIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex delegateWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - Il2CppAssemblyName aname; -} Il2CppAssembly; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct PInvokeArguments -{ - const char* moduleName; - const char* entryPoint; - Il2CppCallConvention callingConvention; - Il2CppCharSet charSet; - int parameterSize; - bool isNoMangle; -} PInvokeArguments; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - methodPointerType method; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - const MethodInfo** vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - methodPointerType marshal_to_native_func; - methodPointerType marshal_from_native_func; - methodPointerType marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const methodPointerType* methodPointers; - uint32_t delegateWrappersFromNativeToManagedCount; - const methodPointerType** delegateWrappersFromNativeToManaged; - uint32_t delegateWrappersFromManagedToNativeCount; - const methodPointerType* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t genericMethodPointersCount; - const methodPointerType* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - int32_t methodReferencesCount; - const EncodedMethodIndex* methodReferences; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h deleted file mode 100644 index 46f1d09..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-api-functions.h +++ /dev/null @@ -1,250 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, methodPointerType method) ); -DO_API( methodPointerType, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, register_object_callback callback, void* userdata, WorldChangedCallback onWorldStarted, WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppObject **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppObject **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppObject** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( uint16_t*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const uint16_t *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h deleted file mode 100644 index cd5922b..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.2f1/il2cpp-class.h +++ /dev/null @@ -1,877 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -enum Il2CppProfileFlags { - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -}; -enum Il2CppGCEvent { - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -}; -enum Il2CppStat { - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -}; -enum Il2CppRuntimeUnhandledExceptionPolicy { - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -}; -struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -}; -typedef struct { - void* (*malloc_func)(size_t size); - void (*free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); -} Il2CppMemoryCallbacks; -typedef void (*register_object_callback)(void** arr, int size, void* userdata); -typedef void (*WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const char* (*Il2CppSetFindPlugInCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*methodPointerType)(); -typedef int32_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex delegateWrapperFromManagedToNativeIndex; - int32_t marshalingFunctionsIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex delegateWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct PInvokeArguments -{ - const char* moduleName; - const char* entryPoint; - Il2CppCallConvention callingConvention; - Il2CppCharSet charSet; - int parameterSize; - bool isNoMangle; -} PInvokeArguments; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*, CustomAttributeTypeCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - methodPointerType method; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - const MethodInfo** vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - methodPointerType marshal_to_native_func; - methodPointerType marshal_from_native_func; - methodPointerType marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const methodPointerType* methodPointers; - uint32_t delegateWrappersFromNativeToManagedCount; - const methodPointerType** delegateWrappersFromNativeToManaged; - uint32_t delegateWrappersFromManagedToNativeCount; - const methodPointerType* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t genericMethodPointersCount; - const methodPointerType* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h deleted file mode 100644 index 46f1d09..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-api-functions.h +++ /dev/null @@ -1,250 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, methodPointerType method) ); -DO_API( methodPointerType, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, register_object_callback callback, void* userdata, WorldChangedCallback onWorldStarted, WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppObject **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppObject **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppObject** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( uint16_t*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const uint16_t *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h deleted file mode 100644 index bd7f0f6..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.3f1/il2cpp-class.h +++ /dev/null @@ -1,795 +0,0 @@ -typedef void (*methodPointerType)(); -typedef int32_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex delegateWrapperFromManagedToNativeIndex; - int32_t marshalingFunctionsIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex delegateWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct PInvokeArguments -{ - const char* moduleName; - const char* entryPoint; - Il2CppCallConvention callingConvention; - Il2CppCharSet charSet; - int parameterSize; - bool isNoMangle; -} PInvokeArguments; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*, CustomAttributeTypeCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - methodPointerType method; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - const MethodInfo** vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - methodPointerType marshal_to_native_func; - methodPointerType marshal_from_native_func; - methodPointerType marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const methodPointerType* methodPointers; - uint32_t delegateWrappersFromNativeToManagedCount; - const methodPointerType** delegateWrappersFromNativeToManaged; - uint32_t delegateWrappersFromManagedToNativeCount; - const methodPointerType* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t genericMethodPointersCount; - const methodPointerType* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h deleted file mode 100644 index c2d4616..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-api-functions.h +++ /dev/null @@ -1,253 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( uint16_t*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const uint16_t *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h deleted file mode 100644 index 00afeba..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.5f1/il2cpp-class.h +++ /dev/null @@ -1,924 +0,0 @@ -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const char* (*Il2CppSetFindPlugInCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex delegateWrapperFromManagedToNativeIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex delegateWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct PInvokeArguments -{ - const char* moduleName; - const char* entryPoint; - Il2CppCallConvention callingConvention; - Il2CppCharSet charSet; - int parameterSize; - bool isNoMangle; -} PInvokeArguments; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer method; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - const MethodInfo** vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t delegateWrappersFromNativeToManagedCount; - const Il2CppMethodPointer** delegateWrappersFromNativeToManaged; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h deleted file mode 100644 index f326efb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-api-functions.h +++ /dev/null @@ -1,257 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h deleted file mode 100644 index f538a45..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.6f1/il2cpp-class.h +++ /dev/null @@ -1,985 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - VirtualInvokeData* vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h deleted file mode 100644 index f326efb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-api-functions.h +++ /dev/null @@ -1,257 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h deleted file mode 100644 index 14fcdde..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.3.7f1/il2cpp-class.h +++ /dev/null @@ -1,985 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - VirtualInvokeData* vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h deleted file mode 100644 index f326efb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-api-functions.h +++ /dev/null @@ -1,257 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h deleted file mode 100644 index f538a45..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.0f3/il2cpp-class.h +++ /dev/null @@ -1,985 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - VirtualInvokeData* vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t* fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes* typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h deleted file mode 100644 index f326efb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-api-functions.h +++ /dev/null @@ -1,257 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h deleted file mode 100644 index 14fcdde..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.1f1/il2cpp-class.h +++ /dev/null @@ -1,985 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - VirtualInvokeData* vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h deleted file mode 100644 index f326efb..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-api-functions.h +++ /dev/null @@ -1,257 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* argv[], const char* basedir) ); -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// delegate -DO_API( Il2CppAsyncResult*, il2cpp_delegate_begin_invoke, (Il2CppDelegate* delegate, void** params, Il2CppDelegate* asyncCallback, Il2CppObject* state) ); -DO_API( Il2CppObject*, il2cpp_delegate_end_invoke, (Il2CppAsyncResult* asyncResult, void **out_args) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h deleted file mode 100644 index ea98b04..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.4.4f1/il2cpp-class.h +++ /dev/null @@ -1,986 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - VirtualInvokeData* vtable; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppObject* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h deleted file mode 100644 index abef95d..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-api-functions.h +++ /dev/null @@ -1,258 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_init_utf16, (const Il2CppChar* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_config_utf16, (const Il2CppChar* executablePath) ); -DO_API( void, il2cpp_set_config, (const char* executablePath)); - -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h deleted file mode 100644 index efff404..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.5.0f3/il2cpp-class.h +++ /dev/null @@ -1,1002 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h deleted file mode 100644 index abef95d..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-api-functions.h +++ /dev/null @@ -1,258 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_init_utf16, (const Il2CppChar* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_config_utf16, (const Il2CppChar* executablePath) ); -DO_API( void, il2cpp_set_config, (const char* executablePath)); - -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h deleted file mode 100644 index 5856745..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.5.1f1/il2cpp-class.h +++ /dev/null @@ -1,1003 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t GuidIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const GuidIndex kGuidIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - MethodIndex reversePInvokeWrapperIndex; - int32_t marshalingFunctionsIndex; - int32_t ccwFunctionIndex; - GuidIndex guidIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppMarshalingFunctions -{ - Il2CppMethodPointer marshal_to_native_func; - Il2CppMethodPointer marshal_from_native_func; - Il2CppMethodPointer marshal_cleanup_func; -} Il2CppMarshalingFunctions; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t delegateWrappersFromManagedToNativeCount; - const Il2CppMethodPointer* delegateWrappersFromManagedToNative; - uint32_t marshalingFunctionsCount; - const Il2CppMarshalingFunctions* marshalingFunctions; - uint32_t ccwMarshalingFunctionsCount; - const Il2CppMethodPointer* ccwMarshalingFunctions; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - GuidIndex guidCount; - const Il2CppGuid** guids; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h b/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h deleted file mode 100644 index 6ac0568..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-api-functions.h +++ /dev/null @@ -1,262 +0,0 @@ - -DO_API( void, il2cpp_init, (const char* domain_name) ); -DO_API( void, il2cpp_init_utf16, (const Il2CppChar* domain_name) ); -DO_API( void, il2cpp_shutdown, () ); -DO_API( void, il2cpp_set_config_dir, (const char *config_path) ); -DO_API( void, il2cpp_set_data_dir, (const char *data_path) ); -DO_API( void, il2cpp_set_commandline_arguments, (int argc, const char* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_commandline_arguments_utf16, (int argc, const Il2CppChar* const argv[], const char* basedir) ); -DO_API( void, il2cpp_set_config_utf16, (const Il2CppChar* executablePath) ); -DO_API( void, il2cpp_set_config, (const char* executablePath)); - -DO_API( void, il2cpp_set_memory_callbacks, (Il2CppMemoryCallbacks* callbacks) ); -DO_API( const Il2CppImage*, il2cpp_get_corlib, () ); -DO_API( void, il2cpp_add_internal_call, (const char* name, Il2CppMethodPointer method) ); -DO_API( Il2CppMethodPointer, il2cpp_resolve_icall, (const char* name) ); - -DO_API( void*, il2cpp_alloc, (size_t size) ); -DO_API( void, il2cpp_free, (void* ptr) ); - -// array -DO_API( Il2CppClass*, il2cpp_array_class_get, (Il2CppClass *element_class, uint32_t rank) ); -DO_API( uint32_t, il2cpp_array_length, (Il2CppArray* array) ); -DO_API( uint32_t, il2cpp_array_get_byte_length, (Il2CppArray *array) ); -DO_API( Il2CppArray*, il2cpp_array_new, (Il2CppClass *elementTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_specific, (Il2CppClass *arrayTypeInfo, il2cpp_array_size_t length) ); -DO_API( Il2CppArray*, il2cpp_array_new_full, (Il2CppClass *array_class, il2cpp_array_size_t *lengths, il2cpp_array_size_t *lower_bounds) ); -DO_API( Il2CppClass*, il2cpp_bounded_array_class_get, (Il2CppClass *element_class, uint32_t rank, bool bounded) ); -DO_API( int, il2cpp_array_element_size, (const Il2CppClass* array_class) ); - -// assembly -DO_API( const Il2CppImage*, il2cpp_assembly_get_image, (const Il2CppAssembly *assembly) ); - -// class -DO_API( const Il2CppType*, il2cpp_class_enum_basetype, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_generic, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_inflated, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_assignable_from, (Il2CppClass *klass, Il2CppClass *oklass) ); -DO_API( bool, il2cpp_class_is_subclass_of, (Il2CppClass *klass, Il2CppClass *klassc, bool check_interfaces) ); -DO_API( bool, il2cpp_class_has_parent, (Il2CppClass* klass, Il2CppClass* klassc) ); -DO_API( Il2CppClass*, il2cpp_class_from_il2cpp_type, (const Il2CppType* type) ); -DO_API( Il2CppClass*, il2cpp_class_from_name, (const Il2CppImage* image, const char* namespaze, const char *name) ); -DO_API( Il2CppClass*, il2cpp_class_from_system_type, (Il2CppReflectionType *type) ); -DO_API( Il2CppClass*, il2cpp_class_get_element_class, (Il2CppClass *klass) ); -DO_API( const EventInfo*, il2cpp_class_get_events, (Il2CppClass *klass, void* *iter)); -DO_API( FieldInfo*, il2cpp_class_get_fields, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_nested_types, (Il2CppClass *klass, void* *iter) ); -DO_API( Il2CppClass*, il2cpp_class_get_interfaces, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_properties, (Il2CppClass *klass, void* *iter) ); -DO_API( const PropertyInfo*, il2cpp_class_get_property_from_name, (Il2CppClass *klass, const char *name) ); -DO_API( FieldInfo*, il2cpp_class_get_field_from_name, (Il2CppClass* klass, const char *name) ); -DO_API( const MethodInfo*, il2cpp_class_get_methods, (Il2CppClass *klass, void* *iter) ); -DO_API( const MethodInfo*, il2cpp_class_get_method_from_name, (Il2CppClass *klass, const char* name, int argsCount) ); -DO_API( const char*, il2cpp_class_get_name, (Il2CppClass *klass) ); -DO_API( const char*, il2cpp_class_get_namespace, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_get_declaring_type, (Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_instance_size, (Il2CppClass *klass) ); -DO_API( size_t, il2cpp_class_num_fields, (const Il2CppClass* enumKlass) ); -DO_API( bool, il2cpp_class_is_valuetype, (const Il2CppClass *klass) ); -DO_API( int32_t, il2cpp_class_value_size, (Il2CppClass *klass, uint32_t *align) ); -DO_API( int, il2cpp_class_get_flags, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_abstract, (const Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_interface, (const Il2CppClass *klass) ); -DO_API( int, il2cpp_class_array_element_size, (const Il2CppClass *klass) ); -DO_API( Il2CppClass*, il2cpp_class_from_type, (const Il2CppType *type) ); -DO_API( const Il2CppType*, il2cpp_class_get_type, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_has_attribute, (Il2CppClass *klass, Il2CppClass *attr_class) ); -DO_API( bool, il2cpp_class_has_references, (Il2CppClass *klass) ); -DO_API( bool, il2cpp_class_is_enum, (const Il2CppClass *klass) ); -DO_API( const Il2CppImage*, il2cpp_class_get_image, (Il2CppClass* klass) ); -DO_API( const char*, il2cpp_class_get_assemblyname, (const Il2CppClass *klass) ); - -// testing only -DO_API( size_t, il2cpp_class_get_bitmap_size, (const Il2CppClass *klass) ); -DO_API( void, il2cpp_class_get_bitmap, (Il2CppClass *klass, size_t* bitmap) ); - -// stats -DO_API( bool, il2cpp_stats_dump_to_file, (const char *path) ); -DO_API( uint64_t, il2cpp_stats_get_value, (Il2CppStat stat) ); - -// domain -DO_API( Il2CppDomain*, il2cpp_domain_get, () ); -DO_API( const Il2CppAssembly*, il2cpp_domain_assembly_open, (Il2CppDomain* domain, const char* name) ); -DO_API( const Il2CppAssembly**, il2cpp_domain_get_assemblies, (const Il2CppDomain* domain, size_t* size) ); - -// exception -DO_API( void, il2cpp_raise_exception, (Il2CppException*) ); -DO_API( Il2CppException*, il2cpp_exception_from_name_msg, (const Il2CppImage* image, const char *name_space, const char *name, const char *msg) ); -DO_API( Il2CppException*, il2cpp_get_exception_argument_null, (const char *arg) ); -DO_API( void, il2cpp_format_exception, (const Il2CppException* ex, char* message, int message_size) ); -DO_API( void, il2cpp_format_stack_trace, (const Il2CppException* ex, char* output, int output_size) ); -DO_API( void, il2cpp_unhandled_exception, (Il2CppException*) ); - -// field -DO_API( int, il2cpp_field_get_flags, (FieldInfo *field) ); -DO_API( const char*, il2cpp_field_get_name, (FieldInfo *field) ); -DO_API( Il2CppClass*, il2cpp_field_get_parent, (FieldInfo *field) ); -DO_API( size_t, il2cpp_field_get_offset, (FieldInfo *field) ); -DO_API( const Il2CppType*, il2cpp_field_get_type, (FieldInfo *field) ); -DO_API( void, il2cpp_field_get_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( Il2CppObject*, il2cpp_field_get_value_object, (FieldInfo *field, Il2CppObject *obj) ); -DO_API( bool, il2cpp_field_has_attribute, (FieldInfo *field, Il2CppClass *attr_class) ); -DO_API( void, il2cpp_field_set_value, (Il2CppObject *obj, FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_get_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_static_set_value, (FieldInfo *field, void *value) ); -DO_API( void, il2cpp_field_set_value_object, (Il2CppObject *instance, FieldInfo *field, Il2CppObject *value)); - -// gc -DO_API( void, il2cpp_gc_collect, (int maxGenerations) ); -DO_API( int32_t, il2cpp_gc_collect_a_little, ()); -DO_API( void, il2cpp_gc_disable, ()); -DO_API( void, il2cpp_gc_enable, () ); -DO_API( int64_t, il2cpp_gc_get_used_size, () ); -DO_API( int64_t, il2cpp_gc_get_heap_size, () ); - -// gchandle -DO_API( uint32_t, il2cpp_gchandle_new, (Il2CppObject *obj, bool pinned) ); -DO_API( uint32_t, il2cpp_gchandle_new_weakref, (Il2CppObject *obj, bool track_resurrection) ); -DO_API( Il2CppObject*, il2cpp_gchandle_get_target , (uint32_t gchandle) ); -DO_API( void, il2cpp_gchandle_free, (uint32_t gchandle) ); - -// liveness -DO_API( void*, il2cpp_unity_liveness_calculation_begin, (Il2CppClass* filter, int max_object_count, il2cpp_register_object_callback callback, void* userdata, il2cpp_WorldChangedCallback onWorldStarted, il2cpp_WorldChangedCallback onWorldStopped) ); -DO_API( void, il2cpp_unity_liveness_calculation_end, (void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_root, (Il2CppObject* root, void* state) ); -DO_API( void, il2cpp_unity_liveness_calculation_from_statics, (void* state) ); - -// method -DO_API( const Il2CppType*, il2cpp_method_get_return_type, (const MethodInfo* method) ); -DO_API( Il2CppClass*, il2cpp_method_get_declaring_type, (const MethodInfo* method) ); -DO_API( const char*, il2cpp_method_get_name, (const MethodInfo *method) ); -DO_API( Il2CppReflectionMethod*, il2cpp_method_get_object, (const MethodInfo *method, Il2CppClass *refclass) ); -DO_API( bool, il2cpp_method_is_generic, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_inflated, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_is_instance, (const MethodInfo *method) ); -DO_API( uint32_t, il2cpp_method_get_param_count, (const MethodInfo *method) ); -DO_API( const Il2CppType*, il2cpp_method_get_param, (const MethodInfo *method, uint32_t index) ); -DO_API( Il2CppClass*, il2cpp_method_get_class, (const MethodInfo *method) ); -DO_API( bool, il2cpp_method_has_attribute, (const MethodInfo *method, Il2CppClass *attr_class) ); -DO_API( uint32_t, il2cpp_method_get_flags, (const MethodInfo *method, uint32_t *iflags) ); -DO_API( uint32_t, il2cpp_method_get_token, (const MethodInfo *method) ); -DO_API( const char*, il2cpp_method_get_param_name, (const MethodInfo *method, uint32_t index) ); - -// profiler -#if IL2CPP_ENABLE_PROFILER - -DO_API( void, il2cpp_profiler_install, (Il2CppProfiler *prof, Il2CppProfileFunc shutdown_callback) ); -DO_API( void, il2cpp_profiler_set_events, (Il2CppProfileFlags events) ); -DO_API( void, il2cpp_profiler_install_enter_leave, (Il2CppProfileMethodFunc enter, Il2CppProfileMethodFunc fleave) ); -DO_API( void, il2cpp_profiler_install_allocation, (Il2CppProfileAllocFunc callback) ); -DO_API( void, il2cpp_profiler_install_gc, (Il2CppProfileGCFunc callback, Il2CppProfileGCResizeFunc heap_resize_callback) ); - -#endif - -// property -DO_API( uint32_t, il2cpp_property_get_flags, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_get_method, (PropertyInfo *prop) ); -DO_API( const MethodInfo*, il2cpp_property_get_set_method, (PropertyInfo *prop) ); -DO_API( const char*, il2cpp_property_get_name, (PropertyInfo *prop) ); -DO_API( Il2CppClass*, il2cpp_property_get_parent, (PropertyInfo *prop) ); - -// object -DO_API( Il2CppClass*, il2cpp_object_get_class, (Il2CppObject* obj) ); -DO_API( uint32_t, il2cpp_object_get_size, (Il2CppObject* obj) ); -DO_API( const MethodInfo*, il2cpp_object_get_virtual_method, (Il2CppObject *obj, const MethodInfo *method) ); -DO_API( Il2CppObject*, il2cpp_object_new, (const Il2CppClass *klass) ); -DO_API( void*, il2cpp_object_unbox, (Il2CppObject* obj) ); - -DO_API( Il2CppObject*, il2cpp_value_box, (Il2CppClass *klass, void* data) ); - -// monitor -DO_API( void, il2cpp_monitor_enter, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_enter, (Il2CppObject* obj, uint32_t timeout) ); -DO_API( void, il2cpp_monitor_exit, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_pulse_all, (Il2CppObject* obj) ); -DO_API( void, il2cpp_monitor_wait, (Il2CppObject* obj) ); -DO_API( bool, il2cpp_monitor_try_wait, (Il2CppObject* obj, uint32_t timeout) ); - -// runtime -DO_API( Il2CppObject*, il2cpp_runtime_invoke, (const MethodInfo *method, void *obj, void **params, Il2CppException **exc) ); -DO_API( Il2CppObject*, il2cpp_runtime_invoke_convert_args, (const MethodInfo *method, void *obj, Il2CppObject **params, int paramCount, Il2CppException **exc) ); -DO_API( void, il2cpp_runtime_class_init, (Il2CppClass* klass) ); -DO_API( void, il2cpp_runtime_object_init, (Il2CppObject* obj) ); - -DO_API( void, il2cpp_runtime_object_init_exception, (Il2CppObject* obj, Il2CppException** exc) ); - -DO_API( void, il2cpp_runtime_unhandled_exception_policy_set, (Il2CppRuntimeUnhandledExceptionPolicy value) ); - -// string -DO_API( int32_t, il2cpp_string_length, (Il2CppString* str) ); -DO_API( Il2CppChar*, il2cpp_string_chars, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_new, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_new_len, (const char* str, uint32_t length) ); -DO_API( Il2CppString*, il2cpp_string_new_utf16, (const Il2CppChar *text, int32_t len) ); -DO_API( Il2CppString*, il2cpp_string_new_wrapper, (const char* str) ); -DO_API( Il2CppString*, il2cpp_string_intern, (Il2CppString* str) ); -DO_API( Il2CppString*, il2cpp_string_is_interned, (Il2CppString* str) ); - -// thread -DO_API( char*, il2cpp_thread_get_name, (Il2CppThread *thread, uint32_t *len) ); -DO_API( Il2CppThread*, il2cpp_thread_current, () ); -DO_API( Il2CppThread*, il2cpp_thread_attach, (Il2CppDomain *domain) ); -DO_API( void, il2cpp_thread_detach, (Il2CppThread *thread) ); - -DO_API( Il2CppThread**, il2cpp_thread_get_all_attached_threads, (size_t *size) ); -DO_API( bool, il2cpp_is_vm_thread, (Il2CppThread *thread) ); - -// stacktrace -DO_API( void, il2cpp_current_thread_walk_frame_stack, (Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( void, il2cpp_thread_walk_frame_stack, (Il2CppThread* thread, Il2CppFrameWalkFunc func, void* user_data) ); -DO_API( bool, il2cpp_current_thread_get_top_frame, (Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_top_frame, (Il2CppThread* thread, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_current_thread_get_frame_at, (int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( bool, il2cpp_thread_get_frame_at, (Il2CppThread* thread, int32_t offset, Il2CppStackFrameInfo& frame) ); -DO_API( int32_t, il2cpp_current_thread_get_stack_depth, () ); -DO_API( int32_t, il2cpp_thread_get_stack_depth, (Il2CppThread *thread) ); - -// type -DO_API( Il2CppObject*, il2cpp_type_get_object, (const Il2CppType *type) ); -DO_API( int, il2cpp_type_get_type, (const Il2CppType *type) ); -DO_API( Il2CppClass*, il2cpp_type_get_class_or_element_class, (const Il2CppType *type) ); -DO_API( char*, il2cpp_type_get_name, (const Il2CppType *type) ); - -// image -DO_API( const Il2CppAssembly*, il2cpp_image_get_assembly, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_name, (const Il2CppImage *image) ); -DO_API( const char*, il2cpp_image_get_filename, (const Il2CppImage *image) ); -DO_API( const MethodInfo*, il2cpp_image_get_entry_point, (const Il2CppImage* image) ); - -// Memory information -DO_API( Il2CppManagedMemorySnapshot*, il2cpp_capture_memory_snapshot, () ); -DO_API( void, il2cpp_free_captured_memory_snapshot, (Il2CppManagedMemorySnapshot* snapshot) ); - -DO_API(void, il2cpp_set_find_plugin_callback, (Il2CppSetFindPlugInCallback method)); - -// Logging -DO_API(void, il2cpp_register_log_callback, (Il2CppLogCallback method)); - -#if IL2CPP_DEBUGGER_ENABLED -// debug -DO_API( const Il2CppDebugTypeInfo*, il2cpp_debug_get_class_info, (const Il2CppClass *klass) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_class_get_document, (const Il2CppDebugTypeInfo* info) ); -DO_API( const char*, il2cpp_debug_document_get_filename, (const Il2CppDebugDocument* document) ); -DO_API( const char*, il2cpp_debug_document_get_directory, (const Il2CppDebugDocument* document) ); -DO_API( const Il2CppDebugMethodInfo*, il2cpp_debug_get_method_info, (const MethodInfo *method) ); -DO_API( const Il2CppDebugDocument*, il2cpp_debug_method_get_document, (const Il2CppDebugMethodInfo* info) ); -DO_API( const int32_t*, il2cpp_debug_method_get_offset_table, (const Il2CppDebugMethodInfo* info) ); -DO_API( size_t, il2cpp_debug_method_get_code_size, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_update_frame_il_offset, (int32_t il_offset) ); -DO_API( const Il2CppDebugLocalsInfo**, il2cpp_debug_method_get_locals_info, (const Il2CppDebugMethodInfo* info) ); -DO_API( const Il2CppClass*, il2cpp_debug_local_get_type, (const Il2CppDebugLocalsInfo *info) ); -DO_API( const char*, il2cpp_debug_local_get_name, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_start_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( uint32_t, il2cpp_debug_local_get_end_offset, (const Il2CppDebugLocalsInfo *info) ); -DO_API( Il2CppObject*, il2cpp_debug_method_get_param_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( Il2CppObject*, il2cpp_debug_frame_get_local_value, (const Il2CppStackFrameInfo *info, uint32_t position) ); -DO_API( void*, il2cpp_debug_method_get_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, int64_t uid, int32_t offset) ); -DO_API( void, il2cpp_debug_method_set_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location, void *data) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data, (const Il2CppDebugMethodInfo* info) ); -DO_API( void, il2cpp_debug_method_clear_breakpoint_data_at, (const Il2CppDebugMethodInfo* info, uint64_t location) ); -#endif diff --git a/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h b/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h deleted file mode 100644 index ed3b22a..0000000 --- a/app/src/main/jni/Includes/il2cppapi/5.6.0f3/il2cpp-class.h +++ /dev/null @@ -1,1013 +0,0 @@ -typedef uint32_t Il2CppMethodSlot; -const int ipv6AddressSize = 16; -typedef int32_t il2cpp_hresult_t; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppType Il2CppType; -typedef struct EventInfo EventInfo; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct PropertyInfo PropertyInfo; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppArray Il2CppArray; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppDomain Il2CppDomain; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppException Il2CppException; -typedef struct Il2CppProfiler Il2CppProfiler; -typedef struct Il2CppObject Il2CppObject; -typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; -typedef struct Il2CppReflectionType Il2CppReflectionType; -typedef struct Il2CppString Il2CppString; -typedef struct Il2CppThread Il2CppThread; -typedef struct Il2CppAsyncResult Il2CppAsyncResult; -typedef enum Il2CppProfileFlags -{ - IL2CPP_PROFILE_NONE = 0, - IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, - IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, - IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, - IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, - IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, - IL2CPP_PROFILE_INLINING = 1 << 5, - IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, - IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, - IL2CPP_PROFILE_GC = 1 << 8, - IL2CPP_PROFILE_THREADS = 1 << 9, - IL2CPP_PROFILE_REMOTING = 1 << 10, - IL2CPP_PROFILE_TRANSITIONS = 1 << 11, - IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, - IL2CPP_PROFILE_COVERAGE = 1 << 13, - IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, - IL2CPP_PROFILE_STATISTICAL = 1 << 15, - IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, - IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, - IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, - IL2CPP_PROFILE_GC_MOVES = 1 << 19 -} Il2CppProfileFlags; -typedef enum Il2CppGCEvent -{ - IL2CPP_GC_EVENT_START, - IL2CPP_GC_EVENT_MARK_START, - IL2CPP_GC_EVENT_MARK_END, - IL2CPP_GC_EVENT_RECLAIM_START, - IL2CPP_GC_EVENT_RECLAIM_END, - IL2CPP_GC_EVENT_END, - IL2CPP_GC_EVENT_PRE_STOP_WORLD, - IL2CPP_GC_EVENT_POST_STOP_WORLD, - IL2CPP_GC_EVENT_PRE_START_WORLD, - IL2CPP_GC_EVENT_POST_START_WORLD -} Il2CppGCEvent; -typedef enum Il2CppStat -{ - IL2CPP_STAT_NEW_OBJECT_COUNT, - IL2CPP_STAT_INITIALIZED_CLASS_COUNT, - IL2CPP_STAT_METHOD_COUNT, - IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, - IL2CPP_STAT_GENERIC_INSTANCE_COUNT, - IL2CPP_STAT_GENERIC_CLASS_COUNT, - IL2CPP_STAT_INFLATED_METHOD_COUNT, - IL2CPP_STAT_INFLATED_TYPE_COUNT, -} Il2CppStat; -typedef enum StackFrameType -{ - FRAME_TYPE_MANAGED = 0, - FRAME_TYPE_DEBUGGER_INVOKE = 1, - FRAME_TYPE_MANAGED_TO_NATIVE = 2, - FRAME_TYPE_SENTINEL = 3 -} StackFrameType; -typedef enum Il2CppRuntimeUnhandledExceptionPolicy -{ - IL2CPP_UNHANDLED_POLICY_LEGACY, - IL2CPP_UNHANDLED_POLICY_CURRENT -} Il2CppRuntimeUnhandledExceptionPolicy; -typedef struct Il2CppStackFrameInfo -{ - const MethodInfo *method; -} Il2CppStackFrameInfo; -typedef struct { - void* (*malloc_func)(size_t size); - void* (*aligned_malloc_func)(size_t size, size_t alignment); - void (*free_func)(void *ptr); - void (*aligned_free_func)(void *ptr); - void* (*calloc_func)(size_t nmemb, size_t size); - void* (*realloc_func)(void *ptr, size_t size); - void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); -} Il2CppMemoryCallbacks; -typedef uint16_t Il2CppChar; -typedef char Il2CppNativeChar; -typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); -typedef void (*il2cpp_WorldChangedCallback)(); -typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); -typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); -typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); -typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); -typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); -typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); -typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); -typedef void (*Il2CppLogCallback)(const char*); -typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; -typedef void (*Il2CppMethodPointer)(); -typedef int32_t il2cpp_array_size_t; -typedef enum Il2CppTypeEnum -{ - IL2CPP_TYPE_END = 0x00, - IL2CPP_TYPE_VOID = 0x01, - IL2CPP_TYPE_BOOLEAN = 0x02, - IL2CPP_TYPE_CHAR = 0x03, - IL2CPP_TYPE_I1 = 0x04, - IL2CPP_TYPE_U1 = 0x05, - IL2CPP_TYPE_I2 = 0x06, - IL2CPP_TYPE_U2 = 0x07, - IL2CPP_TYPE_I4 = 0x08, - IL2CPP_TYPE_U4 = 0x09, - IL2CPP_TYPE_I8 = 0x0a, - IL2CPP_TYPE_U8 = 0x0b, - IL2CPP_TYPE_R4 = 0x0c, - IL2CPP_TYPE_R8 = 0x0d, - IL2CPP_TYPE_STRING = 0x0e, - IL2CPP_TYPE_PTR = 0x0f, - IL2CPP_TYPE_BYREF = 0x10, - IL2CPP_TYPE_VALUETYPE = 0x11, - IL2CPP_TYPE_CLASS = 0x12, - IL2CPP_TYPE_VAR = 0x13, - IL2CPP_TYPE_ARRAY = 0x14, - IL2CPP_TYPE_GENERICINST= 0x15, - IL2CPP_TYPE_TYPEDBYREF = 0x16, - IL2CPP_TYPE_I = 0x18, - IL2CPP_TYPE_U = 0x19, - IL2CPP_TYPE_FNPTR = 0x1b, - IL2CPP_TYPE_OBJECT = 0x1c, - IL2CPP_TYPE_SZARRAY = 0x1d, - IL2CPP_TYPE_MVAR = 0x1e, - IL2CPP_TYPE_CMOD_REQD = 0x1f, - IL2CPP_TYPE_CMOD_OPT = 0x20, - IL2CPP_TYPE_INTERNAL = 0x21, - IL2CPP_TYPE_MODIFIER = 0x40, - IL2CPP_TYPE_SENTINEL = 0x41, - IL2CPP_TYPE_PINNED = 0x45, - IL2CPP_TYPE_ENUM = 0x55 -} Il2CppTypeEnum; -typedef int32_t TypeIndex; -typedef int32_t TypeDefinitionIndex; -typedef int32_t FieldIndex; -typedef int32_t DefaultValueIndex; -typedef int32_t DefaultValueDataIndex; -typedef int32_t CustomAttributeIndex; -typedef int32_t ParameterIndex; -typedef int32_t MethodIndex; -typedef int32_t GenericMethodIndex; -typedef int32_t PropertyIndex; -typedef int32_t EventIndex; -typedef int32_t GenericContainerIndex; -typedef int32_t GenericParameterIndex; -typedef int16_t GenericParameterConstraintIndex; -typedef int32_t NestedTypeIndex; -typedef int32_t InterfacesIndex; -typedef int32_t VTableIndex; -typedef int32_t InterfaceOffsetIndex; -typedef int32_t RGCTXIndex; -typedef int32_t StringIndex; -typedef int32_t StringLiteralIndex; -typedef int32_t GenericInstIndex; -typedef int32_t ImageIndex; -typedef int32_t AssemblyIndex; -typedef int32_t InteropDataIndex; -const TypeIndex kTypeIndexInvalid = -1; -const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; -const DefaultValueDataIndex kDefaultValueIndexNull = -1; -const EventIndex kEventIndexInvalid = -1; -const FieldIndex kFieldIndexInvalid = -1; -const MethodIndex kMethodIndexInvalid = -1; -const PropertyIndex kPropertyIndexInvalid = -1; -const GenericContainerIndex kGenericContainerIndexInvalid = -1; -const GenericParameterIndex kGenericParameterIndexInvalid = -1; -const RGCTXIndex kRGCTXIndexInvalid = -1; -const StringLiteralIndex kStringLiteralIndexInvalid = -1; -const InteropDataIndex kInteropDataIndexInvalid = -1; -typedef uint32_t EncodedMethodIndex; -typedef enum Il2CppMetadataUsage -{ - kIl2CppMetadataUsageInvalid, - kIl2CppMetadataUsageTypeInfo, - kIl2CppMetadataUsageIl2CppType, - kIl2CppMetadataUsageMethodDef, - kIl2CppMetadataUsageFieldInfo, - kIl2CppMetadataUsageStringLiteral, - kIl2CppMetadataUsageMethodRef, -} Il2CppMetadataUsage; -static inline Il2CppMetadataUsage GetEncodedIndexType (EncodedMethodIndex index) -{ - return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); -} -static inline uint32_t GetDecodedMethodIndex (EncodedMethodIndex index) -{ - return index & 0x1FFFFFFFU; -} -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; -typedef union Il2CppRGCTXDefinitionData -{ - int32_t rgctxDataDummy; - MethodIndex methodIndex; - TypeIndex typeIndex; -} Il2CppRGCTXDefinitionData; -typedef enum Il2CppRGCTXDataType -{ - IL2CPP_RGCTX_DATA_INVALID, - IL2CPP_RGCTX_DATA_TYPE, - IL2CPP_RGCTX_DATA_CLASS, - IL2CPP_RGCTX_DATA_METHOD -} Il2CppRGCTXDataType; -typedef struct Il2CppRGCTXDefinition -{ - Il2CppRGCTXDataType type; - Il2CppRGCTXDefinitionData data; -} Il2CppRGCTXDefinition; -typedef struct Il2CppInterfaceOffsetPair -{ - TypeIndex interfaceTypeIndex; - int32_t offset; -} Il2CppInterfaceOffsetPair; -typedef struct Il2CppTypeDefinition -{ - StringIndex nameIndex; - StringIndex namespaceIndex; - CustomAttributeIndex customAttributeIndex; - TypeIndex byvalTypeIndex; - TypeIndex byrefTypeIndex; - TypeIndex declaringTypeIndex; - TypeIndex parentIndex; - TypeIndex elementTypeIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - GenericContainerIndex genericContainerIndex; - uint32_t flags; - FieldIndex fieldStart; - MethodIndex methodStart; - EventIndex eventStart; - PropertyIndex propertyStart; - NestedTypeIndex nestedTypesStart; - InterfacesIndex interfacesStart; - VTableIndex vtableStart; - InterfacesIndex interfaceOffsetsStart; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint32_t bitfield; - uint32_t token; -} Il2CppTypeDefinition; -typedef struct Il2CppFieldDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppFieldDefinition; -typedef struct Il2CppFieldDefaultValue -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppFieldDefaultValue; -typedef struct Il2CppFieldMarshaledSize -{ - FieldIndex fieldIndex; - TypeIndex typeIndex; - int32_t size; -} Il2CppFieldMarshaledSize; -typedef struct Il2CppFieldRef -{ - TypeIndex typeIndex; - FieldIndex fieldIndex; -} Il2CppFieldRef; -typedef struct Il2CppParameterDefinition -{ - StringIndex nameIndex; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - TypeIndex typeIndex; -} Il2CppParameterDefinition; -typedef struct Il2CppParameterDefaultValue -{ - ParameterIndex parameterIndex; - TypeIndex typeIndex; - DefaultValueDataIndex dataIndex; -} Il2CppParameterDefaultValue; -typedef struct Il2CppMethodDefinition -{ - StringIndex nameIndex; - TypeDefinitionIndex declaringType; - TypeIndex returnType; - ParameterIndex parameterStart; - CustomAttributeIndex customAttributeIndex; - GenericContainerIndex genericContainerIndex; - MethodIndex methodIndex; - MethodIndex invokerIndex; - MethodIndex reversePInvokeWrapperIndex; - RGCTXIndex rgctxStartIndex; - int32_t rgctxCount; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint16_t parameterCount; -} Il2CppMethodDefinition; -typedef struct Il2CppEventDefinition -{ - StringIndex nameIndex; - TypeIndex typeIndex; - MethodIndex add; - MethodIndex remove; - MethodIndex raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppEventDefinition; -typedef struct Il2CppPropertyDefinition -{ - StringIndex nameIndex; - MethodIndex get; - MethodIndex set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} Il2CppPropertyDefinition; -typedef struct Il2CppMethodSpec -{ - MethodIndex methodDefinitionIndex; - GenericInstIndex classIndexIndex; - GenericInstIndex methodIndexIndex; -} Il2CppMethodSpec; -typedef struct Il2CppStringLiteral -{ - uint32_t length; - StringLiteralIndex dataIndex; -} Il2CppStringLiteral; -typedef struct Il2CppGenericMethodIndices -{ - MethodIndex methodIndex; - MethodIndex invokerIndex; -} Il2CppGenericMethodIndices; -typedef struct Il2CppGenericMethodFunctionsDefinitions -{ - GenericMethodIndex genericMethodIndex; - Il2CppGenericMethodIndices indices; -} Il2CppGenericMethodFunctionsDefinitions; -const int kPublicKeyByteLength = 8; -typedef struct Il2CppAssemblyName -{ - StringIndex nameIndex; - StringIndex cultureIndex; - StringIndex hashValueIndex; - StringIndex publicKeyIndex; - uint32_t hash_alg; - int32_t hash_len; - uint32_t flags; - int32_t major; - int32_t minor; - int32_t build; - int32_t revision; - uint8_t publicKeyToken[8]; -} Il2CppAssemblyName; -typedef struct Il2CppImageDefinition -{ - StringIndex nameIndex; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - uint32_t token; -} Il2CppImageDefinition; -typedef struct Il2CppAssembly -{ - ImageIndex imageIndex; - CustomAttributeIndex customAttributeIndex; - int32_t referencedAssemblyStart; - int32_t referencedAssemblyCount; - Il2CppAssemblyName aname; -} Il2CppAssembly; -typedef struct Il2CppMetadataUsageList -{ - uint32_t start; - uint32_t count; -} Il2CppMetadataUsageList; -typedef struct Il2CppMetadataUsagePair -{ - uint32_t destinationIndex; - uint32_t encodedSourceIndex; -} Il2CppMetadataUsagePair; -typedef struct Il2CppCustomAttributeTypeRange -{ - int32_t start; - int32_t count; -} Il2CppCustomAttributeTypeRange; -typedef struct Il2CppRange -{ - int32_t start; - int32_t length; -} Il2CppRange; -typedef struct Il2CppWindowsRuntimeTypeNamePair -{ - StringIndex nameIndex; - TypeIndex typeIndex; -} Il2CppWindowsRuntimeTypeNamePair; -#pragma pack(push, p1,4) -typedef struct Il2CppGlobalMetadataHeader -{ - int32_t sanity; - int32_t version; - int32_t stringLiteralOffset; - int32_t stringLiteralCount; - int32_t stringLiteralDataOffset; - int32_t stringLiteralDataCount; - int32_t stringOffset; - int32_t stringCount; - int32_t eventsOffset; - int32_t eventsCount; - int32_t propertiesOffset; - int32_t propertiesCount; - int32_t methodsOffset; - int32_t methodsCount; - int32_t parameterDefaultValuesOffset; - int32_t parameterDefaultValuesCount; - int32_t fieldDefaultValuesOffset; - int32_t fieldDefaultValuesCount; - int32_t fieldAndParameterDefaultValueDataOffset; - int32_t fieldAndParameterDefaultValueDataCount; - int32_t fieldMarshaledSizesOffset; - int32_t fieldMarshaledSizesCount; - int32_t parametersOffset; - int32_t parametersCount; - int32_t fieldsOffset; - int32_t fieldsCount; - int32_t genericParametersOffset; - int32_t genericParametersCount; - int32_t genericParameterConstraintsOffset; - int32_t genericParameterConstraintsCount; - int32_t genericContainersOffset; - int32_t genericContainersCount; - int32_t nestedTypesOffset; - int32_t nestedTypesCount; - int32_t interfacesOffset; - int32_t interfacesCount; - int32_t vtableMethodsOffset; - int32_t vtableMethodsCount; - int32_t interfaceOffsetsOffset; - int32_t interfaceOffsetsCount; - int32_t typeDefinitionsOffset; - int32_t typeDefinitionsCount; - int32_t rgctxEntriesOffset; - int32_t rgctxEntriesCount; - int32_t imagesOffset; - int32_t imagesCount; - int32_t assembliesOffset; - int32_t assembliesCount; - int32_t metadataUsageListsOffset; - int32_t metadataUsageListsCount; - int32_t metadataUsagePairsOffset; - int32_t metadataUsagePairsCount; - int32_t fieldRefsOffset; - int32_t fieldRefsCount; - int32_t referencedAssembliesOffset; - int32_t referencedAssembliesCount; - int32_t attributesInfoOffset; - int32_t attributesInfoCount; - int32_t attributeTypesOffset; - int32_t attributeTypesCount; - int32_t unresolvedVirtualCallParameterTypesOffset; - int32_t unresolvedVirtualCallParameterTypesCount; - int32_t unresolvedVirtualCallParameterRangesOffset; - int32_t unresolvedVirtualCallParameterRangesCount; - int32_t windowsRuntimeTypeNamesOffset; - int32_t windowsRuntimeTypeNamesSize; -} Il2CppGlobalMetadataHeader; -#pragma pack(pop, p1) -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct Il2CppType Il2CppType; -typedef struct Il2CppArrayType -{ - const Il2CppType* etype; - uint8_t rank; - uint8_t numsizes; - uint8_t numlobounds; - int *sizes; - int *lobounds; -} Il2CppArrayType; -typedef struct Il2CppGenericInst -{ - uint32_t type_argc; - const Il2CppType **type_argv; -} Il2CppGenericInst; -typedef struct Il2CppGenericContext -{ - const Il2CppGenericInst *class_inst; - const Il2CppGenericInst *method_inst; -} Il2CppGenericContext; -typedef struct Il2CppGenericParameter -{ - GenericContainerIndex ownerIndex; - StringIndex nameIndex; - GenericParameterConstraintIndex constraintsStart; - int16_t constraintsCount; - uint16_t num; - uint16_t flags; -} Il2CppGenericParameter; -typedef struct Il2CppGenericContainer -{ - int32_t ownerIndex; - int32_t type_argc; - int32_t is_method; - GenericParameterIndex genericParameterStart; -} Il2CppGenericContainer; -typedef struct Il2CppGenericClass -{ - TypeDefinitionIndex typeDefinitionIndex; - Il2CppGenericContext context; - Il2CppClass *cached_class; -} Il2CppGenericClass; -typedef struct Il2CppGenericMethod -{ - const MethodInfo* methodDefinition; - Il2CppGenericContext context; -} Il2CppGenericMethod; -typedef struct Il2CppType -{ - union { - void* dummy; - TypeDefinitionIndex klassIndex; - const Il2CppType *type; - Il2CppArrayType *array; - GenericParameterIndex genericParameterIndex; - Il2CppGenericClass *generic_class; - } data; - unsigned int attrs : 16; - Il2CppTypeEnum type : 8; - unsigned int num_mods : 6; - unsigned int byref : 1; - unsigned int pinned : 1; -} Il2CppType; -typedef enum { - IL2CPP_CALL_DEFAULT, - IL2CPP_CALL_C, - IL2CPP_CALL_STDCALL, - IL2CPP_CALL_THISCALL, - IL2CPP_CALL_FASTCALL, - IL2CPP_CALL_VARARG -} Il2CppCallConvention; -typedef enum Il2CppCharSet -{ - CHARSET_ANSI, - CHARSET_UNICODE -} Il2CppCharSet; -typedef struct Il2CppClass Il2CppClass; -typedef struct Il2CppGuid Il2CppGuid; -typedef struct Il2CppImage Il2CppImage; -typedef struct Il2CppAssembly Il2CppAssembly; -typedef struct Il2CppAppDomain Il2CppAppDomain; -typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; -typedef struct Il2CppDelegate Il2CppDelegate; -typedef struct Il2CppAppContext Il2CppAppContext; -typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; -typedef struct VirtualInvokeData -{ - Il2CppMethodPointer methodPtr; - const MethodInfo* method; -} VirtualInvokeData; -typedef enum Il2CppTypeNameFormat -{ - IL2CPP_TYPE_NAME_FORMAT_IL, - IL2CPP_TYPE_NAME_FORMAT_REFLECTION, - IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, - IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED -} Il2CppTypeNameFormat; -extern bool g_il2cpp_is_fully_initialized; -typedef struct { - Il2CppImage *corlib; - Il2CppClass *object_class; - Il2CppClass *byte_class; - Il2CppClass *void_class; - Il2CppClass *boolean_class; - Il2CppClass *sbyte_class; - Il2CppClass *int16_class; - Il2CppClass *uint16_class; - Il2CppClass *int32_class; - Il2CppClass *uint32_class; - Il2CppClass *int_class; - Il2CppClass *uint_class; - Il2CppClass *int64_class; - Il2CppClass *uint64_class; - Il2CppClass *single_class; - Il2CppClass *double_class; - Il2CppClass *char_class; - Il2CppClass *string_class; - Il2CppClass *enum_class; - Il2CppClass *array_class; - Il2CppClass *delegate_class; - Il2CppClass *multicastdelegate_class; - Il2CppClass *asyncresult_class; - Il2CppClass *manualresetevent_class; - Il2CppClass *typehandle_class; - Il2CppClass *fieldhandle_class; - Il2CppClass *methodhandle_class; - Il2CppClass *systemtype_class; - Il2CppClass *monotype_class; - Il2CppClass *exception_class; - Il2CppClass *threadabortexception_class; - Il2CppClass *thread_class; - Il2CppClass *appdomain_class; - Il2CppClass *appdomain_setup_class; - Il2CppClass *field_info_class; - Il2CppClass *method_info_class; - Il2CppClass *property_info_class; - Il2CppClass *event_info_class; - Il2CppClass *mono_event_info_class; - Il2CppClass *stringbuilder_class; - Il2CppClass *stack_frame_class; - Il2CppClass *stack_trace_class; - Il2CppClass *marshal_class; - Il2CppClass *typed_reference_class; - Il2CppClass *marshalbyrefobject_class; - Il2CppClass *generic_ilist_class; - Il2CppClass *generic_icollection_class; - Il2CppClass *generic_ienumerable_class; - Il2CppClass *generic_nullable_class; - Il2CppClass *il2cpp_com_object_class; - Il2CppClass *customattribute_data_class; - Il2CppClass *version; - Il2CppClass *culture_info; - Il2CppClass *async_call_class; - Il2CppClass *assembly_class; - Il2CppClass *assembly_name_class; - Il2CppClass *enum_info_class; - Il2CppClass *mono_field_class; - Il2CppClass *mono_method_class; - Il2CppClass *mono_method_info_class; - Il2CppClass *mono_property_info_class; - Il2CppClass *parameter_info_class; - Il2CppClass *module_class; - Il2CppClass *pointer_class; - Il2CppClass *system_exception_class; - Il2CppClass *argument_exception_class; - Il2CppClass *wait_handle_class; - Il2CppClass *safe_handle_class; - Il2CppClass *sort_key_class; - Il2CppClass *dbnull_class; - Il2CppClass *error_wrapper_class; - Il2CppClass *missing_class; - Il2CppClass *value_type_class; - Il2CppClass* ireference_class; - Il2CppClass* ikey_value_pair_class; - Il2CppClass* key_value_pair_class; -} Il2CppDefaults; -extern Il2CppDefaults il2cpp_defaults; -typedef struct Il2CppClass Il2CppClass; -typedef struct MethodInfo MethodInfo; -typedef struct FieldInfo FieldInfo; -typedef struct Il2CppObject Il2CppObject; -typedef struct MemberInfo MemberInfo; -typedef struct CustomAttributesCache -{ - int count; - Il2CppObject** attributes; -} CustomAttributesCache; -typedef struct CustomAttributeTypeCache -{ - int count; - Il2CppClass** attributeTypes; -} CustomAttributeTypeCache; -typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); -const int THREAD_STATIC_FIELD_OFFSET = -1; -typedef struct FieldInfo -{ - const char* name; - const Il2CppType* type; - Il2CppClass *parent; - int32_t offset; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} FieldInfo; -typedef struct PropertyInfo -{ - Il2CppClass *parent; - const char *name; - const MethodInfo *get; - const MethodInfo *set; - uint32_t attrs; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} PropertyInfo; -typedef struct EventInfo -{ - const char* name; - const Il2CppType* eventType; - Il2CppClass* parent; - const MethodInfo* add; - const MethodInfo* remove; - const MethodInfo* raise; - CustomAttributeIndex customAttributeIndex; - uint32_t token; -} EventInfo; -typedef struct ParameterInfo -{ - const char* name; - int32_t position; - uint32_t token; - CustomAttributeIndex customAttributeIndex; - const Il2CppType* parameter_type; -} ParameterInfo; -typedef void* (*InvokerMethod)(const MethodInfo*, void*, void**); -typedef union Il2CppRGCTXData -{ - void* rgctxDataDummy; - const MethodInfo* method; - const Il2CppType* type; - Il2CppClass* klass; -} Il2CppRGCTXData; -typedef struct MethodInfo -{ - Il2CppMethodPointer methodPointer; - InvokerMethod invoker_method; - const char* name; - Il2CppClass *declaring_type; - const Il2CppType *return_type; - const ParameterInfo* parameters; - union - { - const Il2CppRGCTXData* rgctx_data; - const Il2CppMethodDefinition* methodDefinition; - }; - union - { - const Il2CppGenericMethod* genericMethod; - const Il2CppGenericContainer* genericContainer; - }; - CustomAttributeIndex customAttributeIndex; - uint32_t token; - uint16_t flags; - uint16_t iflags; - uint16_t slot; - uint8_t parameters_count; - uint8_t is_generic : 1; - uint8_t is_inflated : 1; -} MethodInfo; -typedef struct Il2CppRuntimeInterfaceOffsetPair -{ - Il2CppClass* interfaceType; - int32_t offset; -} Il2CppRuntimeInterfaceOffsetPair; -typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); -typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); -typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); -typedef struct Il2CppIManagedObjectHolder* (*CreateCCWFunc)(Il2CppObject* obj); -typedef struct Il2CppInteropData -{ - Il2CppMethodPointer delegatePInvokeWrapperFunction; - PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; - PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; - PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; - CreateCCWFunc createCCWFunction; - const Il2CppGuid* guid; - const Il2CppType* type; -} Il2CppInteropData; -typedef struct Il2CppClass -{ - const Il2CppImage* image; - void* gc_desc; - const char* name; - const char* namespaze; - const Il2CppType* byval_arg; - const Il2CppType* this_arg; - Il2CppClass* element_class; - Il2CppClass* castClass; - Il2CppClass* declaringType; - Il2CppClass* parent; - Il2CppGenericClass *generic_class; - const Il2CppTypeDefinition* typeDefinition; - const Il2CppInteropData* interopData; - FieldInfo* fields; - const EventInfo* events; - const PropertyInfo* properties; - const MethodInfo** methods; - Il2CppClass** nestedTypes; - Il2CppClass** implementedInterfaces; - Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; - void* static_fields; - const Il2CppRGCTXData* rgctx_data; - Il2CppClass** typeHierarchy; - uint32_t cctor_started; - uint32_t cctor_finished; - __attribute__((aligned(8))) uint64_t cctor_thread; - GenericContainerIndex genericContainerIndex; - CustomAttributeIndex customAttributeIndex; - uint32_t instance_size; - uint32_t actualSize; - uint32_t element_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; - int32_t thread_static_fields_offset; - uint32_t flags; - uint32_t token; - uint16_t method_count; - uint16_t property_count; - uint16_t field_count; - uint16_t event_count; - uint16_t nested_type_count; - uint16_t vtable_count; - uint16_t interfaces_count; - uint16_t interface_offsets_count; - uint8_t typeHierarchyDepth; - uint8_t genericRecursionDepth; - uint8_t rank; - uint8_t minimumAlignment; - uint8_t packingSize; - uint8_t valuetype : 1; - uint8_t initialized : 1; - uint8_t enumtype : 1; - uint8_t is_generic : 1; - uint8_t has_references : 1; - uint8_t init_pending : 1; - uint8_t size_inited : 1; - uint8_t has_finalize : 1; - uint8_t has_cctor : 1; - uint8_t is_blittable : 1; - uint8_t is_import_or_windows_runtime : 1; - uint8_t is_vtable_initialized : 1; - VirtualInvokeData vtable[32]; -} Il2CppClass; -typedef struct Il2CppTypeDefinitionSizes -{ - uint32_t instance_size; - int32_t native_size; - uint32_t static_fields_size; - uint32_t thread_static_fields_size; -} Il2CppTypeDefinitionSizes; -typedef struct Il2CppDomain -{ - Il2CppAppDomain* domain; - Il2CppAppDomainSetup* setup; - Il2CppAppContext* default_context; - const char* friendly_name; - uint32_t domain_id; -} Il2CppDomain; -typedef struct Il2CppImage -{ - const char* name; - AssemblyIndex assemblyIndex; - TypeDefinitionIndex typeStart; - uint32_t typeCount; - MethodIndex entryPointIndex; - Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; - uint32_t token; -} Il2CppImage; -typedef struct Il2CppCodeGenOptions -{ - bool enablePrimitiveValueTypeGenericSharing; -} Il2CppCodeGenOptions; -typedef struct Il2CppCodeRegistration -{ - uint32_t methodPointersCount; - const Il2CppMethodPointer* methodPointers; - uint32_t reversePInvokeWrapperCount; - const Il2CppMethodPointer* reversePInvokeWrappers; - uint32_t genericMethodPointersCount; - const Il2CppMethodPointer* genericMethodPointers; - uint32_t invokerPointersCount; - const InvokerMethod* invokerPointers; - CustomAttributeIndex customAttributeCount; - const CustomAttributesCacheGenerator* customAttributeGenerators; - uint32_t unresolvedVirtualCallCount; - const Il2CppMethodPointer* unresolvedVirtualCallPointers; - uint32_t interopDataCount; - Il2CppInteropData* interopData; -} Il2CppCodeRegistration; -typedef struct Il2CppMetadataRegistration -{ - int32_t genericClassesCount; - Il2CppGenericClass* const * genericClasses; - int32_t genericInstsCount; - const Il2CppGenericInst* const * genericInsts; - int32_t genericMethodTableCount; - const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; - int32_t typesCount; - const Il2CppType* const * types; - int32_t methodSpecsCount; - const Il2CppMethodSpec* methodSpecs; - FieldIndex fieldOffsetsCount; - const int32_t** fieldOffsets; - TypeDefinitionIndex typeDefinitionsSizesCount; - const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; - const size_t metadataUsagesCount; - void** const* metadataUsages; -} Il2CppMetadataRegistration; -typedef struct Il2CppRuntimeStats -{ - uint64_t new_object_count; - uint64_t initialized_class_count; - uint64_t method_count; - uint64_t class_static_data_size; - uint64_t generic_instance_count; - uint64_t generic_class_count; - uint64_t inflated_method_count; - uint64_t inflated_type_count; - bool enabled; -} Il2CppRuntimeStats; -extern Il2CppRuntimeStats il2cpp_runtime_stats; -typedef struct Il2CppPerfCounters -{ - uint32_t jit_methods; - uint32_t jit_bytes; - uint32_t jit_time; - uint32_t jit_failures; - uint32_t exceptions_thrown; - uint32_t exceptions_filters; - uint32_t exceptions_finallys; - uint32_t exceptions_depth; - uint32_t aspnet_requests_queued; - uint32_t aspnet_requests; - uint32_t gc_collections0; - uint32_t gc_collections1; - uint32_t gc_collections2; - uint32_t gc_promotions0; - uint32_t gc_promotions1; - uint32_t gc_promotion_finalizers; - uint32_t gc_gen0size; - uint32_t gc_gen1size; - uint32_t gc_gen2size; - uint32_t gc_lossize; - uint32_t gc_fin_survivors; - uint32_t gc_num_handles; - uint32_t gc_allocated; - uint32_t gc_induced; - uint32_t gc_time; - uint32_t gc_total_bytes; - uint32_t gc_committed_bytes; - uint32_t gc_reserved_bytes; - uint32_t gc_num_pinned; - uint32_t gc_sync_blocks; - uint32_t remoting_calls; - uint32_t remoting_channels; - uint32_t remoting_proxies; - uint32_t remoting_classes; - uint32_t remoting_objects; - uint32_t remoting_contexts; - uint32_t loader_classes; - uint32_t loader_total_classes; - uint32_t loader_appdomains; - uint32_t loader_total_appdomains; - uint32_t loader_assemblies; - uint32_t loader_total_assemblies; - uint32_t loader_failures; - uint32_t loader_bytes; - uint32_t loader_appdomains_uloaded; - uint32_t thread_contentions; - uint32_t thread_queue_len; - uint32_t thread_queue_max; - uint32_t thread_num_logical; - uint32_t thread_num_physical; - uint32_t thread_cur_recognized; - uint32_t thread_num_recognized; - uint32_t interop_num_ccw; - uint32_t interop_num_stubs; - uint32_t interop_num_marshals; - uint32_t security_num_checks; - uint32_t security_num_link_checks; - uint32_t security_time; - uint32_t security_depth; - uint32_t unused; - uint64_t threadpool_workitems; - uint64_t threadpool_ioworkitems; - unsigned int threadpool_threads; - unsigned int threadpool_iothreads; -} Il2CppPerfCounters; - -struct MonitorData; -struct Il2CppObject { - struct Il2CppClass *klass; - struct MonitorData *monitor; -}; -typedef int32_t il2cpp_array_lower_bound_t; -struct Il2CppArrayBounds { - il2cpp_array_size_t length; - il2cpp_array_lower_bound_t lower_bound; -}; -struct Il2CppArray { - struct Il2CppObject obj; - struct Il2CppArrayBounds *bounds; - il2cpp_array_size_t max_length; - /* vector must be 8-byte aligned. - On 64-bit platforms, this happens naturally. - On 32-bit platforms, sizeof(obj)=8, sizeof(bounds)=4 and sizeof(max_length)=4 so it's also already aligned. */ - void *vector[32]; -}; -struct Il2CppString { - struct Il2CppObject object; - int32_t length; - uint16_t chars[32]; -}; diff --git a/app/src/main/jni/Includes/log.h b/app/src/main/jni/Includes/log.h index a0764eb..a7eaf75 100644 --- a/app/src/main/jni/Includes/log.h +++ b/app/src/main/jni/Includes/log.h @@ -7,7 +7,7 @@ #include -#define LOG_TAG "DUMPER" +#define LOG_TAG "Il2CppDumper" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) #define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 661da2a..518d682 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -3,10 +3,17 @@ #include #include #include -#include "Includes/il2cpp_dump.h" -#include "Includes/game.h" +#include +#include "Il2Cpp/il2cpp_dump.h" +#include "Includes/config.h" #include "Includes/log.h" +static int GetAndroidApiLevel() { + char prop_value[PROP_VALUE_MAX]; + __system_property_get("ro.build.version.sdk", prop_value); + return atoi(prop_value); +} + bool isLibraryLoaded(const char *libraryName) { char line[512] = {0}; FILE *fp = fopen("/proc/self/maps", "rt"); @@ -20,6 +27,7 @@ bool isLibraryLoaded(const char *libraryName) { } return false; } + #define libTarget "libil2cpp.so" void *hack_thread(void *) { @@ -28,11 +36,15 @@ void *hack_thread(void *) { } while (!isLibraryLoaded(libTarget)); //Waiting libil2cpp.so fully loaded. - sleep(3); + sleep(Sleep); auto il2cpp_handle = dlopen(libTarget, 4); - char buffer [64]; - sprintf (buffer, "/storage/emulated/0/Android/data/%s/", GetPackageName()); + char buffer[64]; + int sdk = GetAndroidApiLevel(); + if (sdk >= 30) //Android 11 allows writing to Download folder without permission + sprintf(buffer, "/storage/emulated/0/Download/"); + else + sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); il2cpp_dump(il2cpp_handle, buffer); return nullptr; } @@ -40,22 +52,21 @@ void *hack_thread(void *) { //The idea from first Il2Cpp Dumper called PokemonGoDumper //https://github.com/Jumboperson/PokemonGoDumper/blob/master/main.c#L569 -int iBeenInjected = 0; -void* pLibRealUnity = 0; -typedef void (*UnitySendMessage_t)(const char* ob, const char* method, const char* msg); -typedef jint(JNICALL* CallJNI_OnLoad_t)(JavaVM* vm, void* reserved); -typedef void(JNICALL* CallJNI_OnUnload_t)(JavaVM* vm, void* reserved); +void *pLibRealUnity = 0; + +typedef jint(JNICALL *CallJNI_OnLoad_t)(JavaVM *vm, void *reserved); + +typedef void(JNICALL *CallJNI_OnUnload_t)(JavaVM *vm, void *reserved); -UnitySendMessage_t RealUSM = 0; CallJNI_OnLoad_t RealJNIOnLoad = 0; CallJNI_OnUnload_t RealJNIOnUnload = 0; -void* libdlopen = 0; #ifdef RootMode + JNIEXPORT jint JNICALL CallJNIOL( - JavaVM* vm, void* reserved) -{ - LOGI("Loading librealunity.so"); + JavaVM *vm, void *reserved) { + LOGI("Exec librealunity.so"); + if (!pLibRealUnity) pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); if (!RealJNIOnLoad) @@ -64,35 +75,30 @@ JNIEXPORT jint JNICALL CallJNIOL( } JNIEXPORT void JNICALL CallJNIUL( - JavaVM* vm, void* reserved) -{ + JavaVM *vm, void *reserved) { if (!pLibRealUnity) pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); if (!RealJNIOnUnload) RealJNIOnUnload = reinterpret_cast(dlsym(pLibRealUnity, - "JNI_OnUnload")); + "JNI_OnUnload")); RealJNIOnUnload(vm, reserved); } -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) -{ - if (!iBeenInjected) - { - LOGI("Loading dumper"); - pthread_t ptid; - pthread_create(&ptid, nullptr, hack_thread, nullptr); - } +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { + LOGI("Initialize JNI"); + + pthread_t ptid; + pthread_create(&ptid, nullptr, hack_thread, nullptr); + return CallJNIOL(vm, reserved); } -JNIEXPORT void JNICALL JNI_OnUnload(JavaVM* vm, void* reserved) -{ - if (!iBeenInjected) - { - pthread_t ptid; - pthread_create(&ptid, nullptr, hack_thread, nullptr); - } + +JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) { + LOGI("Unload JNI"); + CallJNIUL(vm, reserved); } + #else __attribute__((constructor)) @@ -101,5 +107,4 @@ void lib_main() { pthread_t ptid; pthread_create(&ptid, nullptr, hack_thread, nullptr); } - #endif diff --git a/build.gradle b/build.gradle index e0318ef..7778248 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:7.1.0' + classpath 'com.android.tools.build:gradle:7.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1666605..9727145 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip From 4e3ff03b3f3f751f533d6631ea6346215f5adeb7 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Tue, 7 Jun 2022 16:48:36 +0200 Subject: [PATCH 12/41] Update README.md --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index beb6bd0..42a5aed 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,8 @@ Uncomment `#define RootMode` to use it as root mode ### Non root method This method requires to modify APK. You may need to bypass APK integrity and signature check if you want to use this method -- Build APK with Android Studio -- Decompile app-debug.apk using apktool.jar, APK Tool GUI or any other tools of your choice - Decompile the game -- Copy result il2cppdumper.so into the decompiled folder apk. Make sure only copy same ABIs as the Target App, for example if Target App has only armeabi-v7a, then you should only copy armeabi-v7a +- Copy result libil2cppdumper.so into the decompiled folder apk. Make sure only copy same ABIs as the Target App, for example if Target App has only armeabi-v7a, then you should only copy armeabi-v7a - Search the main activity in AndroidManifest.xml. Example: com.gameloft.android.XamarinMainActivity ```xml @@ -64,9 +62,7 @@ This is useful to get around security. Does not need to modify game APK at all! Note: Some games does not extract the libs in /data/data. In this case, try to use older Android version or modify APK file (See above). -- Build APK with Android Studio -- Extract libil2cppdumper.so from app-debug.apk. Make sure you know the architecture of the game and your device before proceed -- Rename our lib to libunity.so +- Rename libil2cppdumper.so lib to libunity.so - On rooted device/VM, use any file manager app that can access root. Go to /data/data/(package name)/lib - IMPORTANT! Rename game's libunity.so to librealunity.so - Put our lib file libunity.so From 9389086f85e96dcb4df9fbd657de3bf6481c8249 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Tue, 7 Jun 2022 16:56:28 +0200 Subject: [PATCH 13/41] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 42a5aed..67a7236 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ This is useful to get around security. Does not need to modify game APK at all! Note: Some games does not extract the libs in /data/data. In this case, try to use older Android version or modify APK file (See above). +- Make sure you know the architecture of the game and your device before proceed - Rename libil2cppdumper.so lib to libunity.so - On rooted device/VM, use any file manager app that can access root. Go to /data/data/(package name)/lib - IMPORTANT! Rename game's libunity.so to librealunity.so From 42de9172ee201668b3c17a635d9add88207a3e93 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 1 Aug 2022 16:50:42 +0200 Subject: [PATCH 14/41] Added bypass by geokar2006 Added bypass for games like "Standoff 2" with removed "il2cpp_domain_get_assemblies" code from ByNameModding (https://github.com/geokar2006/ByNameModding). It is currently untested --- app/build.gradle | 2 +- app/src/main/jni/Il2Cpp/il2cpp_dump.cpp | 292 ++++++++++++------------ app/src/main/jni/Includes/BNMUtils.h | 131 +++++++++++ app/src/main/jni/Includes/config.h | 9 +- app/src/main/jni/native-lib.cpp | 20 +- 5 files changed, 299 insertions(+), 155 deletions(-) create mode 100644 app/src/main/jni/Includes/BNMUtils.h diff --git a/app/build.gradle b/app/build.gradle index c7b3de0..4aecb13 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { versionCode 1 versionName "2.0" ndk { - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' + abiFilters 'armeabi-v7a', 'arm64-v8a' } } diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index 33f2b6b..dd06720 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -16,25 +16,26 @@ #include "il2cpp-tabledefs.h" #include "il2cpp-class.h" + #define DO_API(r, n, p) r (*n) p #include "il2cpp-api-functions.h" +#include #undef DO_API static void *il2cpp_handle = nullptr; static uint64_t il2cpp_base = 0; -const char* GetPackageName() -{ +const char *GetPackageName() { //https://stackoverflow.com/questions/42918762/how-to-get-app-package-name-or-applicationid-using-jni-android - char* application_id[64]; - FILE* fp = fopen("proc/self/cmdline", "r"); + char *application_id[64]; + FILE *fp = fopen("proc/self/cmdline", "r"); if (fp) { fread(application_id, sizeof(application_id), 1, fp); fclose(fp); } - return (const char*)application_id; + return (const char *) application_id; } void init_il2cpp_api() { @@ -127,24 +128,24 @@ bool _il2cpp_type_is_byref(const Il2CppType *type) { return byref; } -std::string dump_method(Il2CppClass * klass) { +std::string dump_method(Il2CppClass *klass) { std::stringstream outPut; - outPut << "\n\t// Methods\n"; - void *iter = nullptr; - while (auto method = il2cpp_class_get_methods(klass, &iter)) { - //TODO attribute - if (method->methodPointer) { - outPut << "\t// RVA: 0x"; - outPut << std::hex << (uint64_t) method->methodPointer - il2cpp_base; - outPut << " VA: 0x"; - outPut << std::hex << (uint64_t) method->methodPointer; - } else { - outPut << "\t// RVA: 0x VA: 0x0"; - } - /*if (method->slot != 65535) { - outPut << " Slot: " << std::dec << method->slot; - }*/ - outPut << "\n\t"; + outPut << "\n\t// Methods\n"; + void *iter = nullptr; + while (auto method = il2cpp_class_get_methods(klass, &iter)) { + //TODO attribute + if (method->methodPointer) { + outPut << "\t// RVA: 0x"; + outPut << std::hex << (uint64_t) method->methodPointer - il2cpp_base; + outPut << " VA: 0x"; + outPut << std::hex << (uint64_t) method->methodPointer; + } else { + outPut << "\t// RVA: 0x VA: 0x0"; + } + /*if (method->slot != 65535) { + outPut << " Slot: " << std::dec << method->slot; + }*/ + outPut << "\n\t"; uint32_t iflags = 0; auto flags = il2cpp_method_get_flags(method, &iflags); outPut << get_method_modifier(flags); @@ -179,18 +180,18 @@ std::string dump_method(Il2CppClass * klass) { auto parameter_class = il2cpp_class_from_type(param); outPut << il2cpp_class_get_name(parameter_class) << " " << il2cpp_method_get_param_name(method, i); - outPut << ", "; - } - if (param_count > 0) { + outPut << ", "; + } + if (param_count > 0) { outPut.seekp(-2, outPut.cur); } - outPut << ") { }\n"; - //TODO GenericInstMethod + outPut << ") { }\n"; + //TODO GenericInstMethod } return outPut.str(); } -std::string dump_property(Il2CppClass * klass) { +std::string dump_property(Il2CppClass *klass) { std::stringstream outPut; outPut << "\n\t// Properties\n"; void *iter = nullptr; @@ -229,45 +230,45 @@ std::string dump_property(Il2CppClass * klass) { return outPut.str(); } -std::string dump_field(Il2CppClass * klass) { +std::string dump_field(Il2CppClass *klass) { std::stringstream outPut; - outPut << "\n\t// Fields\n"; - auto is_enum = il2cpp_class_is_enum(klass); - void *iter = nullptr; - while (auto field = il2cpp_class_get_fields(klass, &iter)) { - //TODO attribute - outPut << "\t"; - auto attrs = il2cpp_field_get_flags(field); - auto access = attrs & FIELD_ATTRIBUTE_FIELD_ACCESS_MASK; - switch (access) { - case FIELD_ATTRIBUTE_PRIVATE: - outPut << "private "; - break; - case FIELD_ATTRIBUTE_PUBLIC: - outPut << "public "; - break; - case FIELD_ATTRIBUTE_FAMILY: - outPut << "protected "; - break; - case FIELD_ATTRIBUTE_ASSEMBLY: - case FIELD_ATTRIBUTE_FAM_AND_ASSEM: - outPut << "internal "; - break; - case FIELD_ATTRIBUTE_FAM_OR_ASSEM: - outPut << "protected internal "; - break; + outPut << "\n\t// Fields\n"; + auto is_enum = il2cpp_class_is_enum(klass); + void *iter = nullptr; + while (auto field = il2cpp_class_get_fields(klass, &iter)) { + //TODO attribute + outPut << "\t"; + auto attrs = il2cpp_field_get_flags(field); + auto access = attrs & FIELD_ATTRIBUTE_FIELD_ACCESS_MASK; + switch (access) { + case FIELD_ATTRIBUTE_PRIVATE: + outPut << "private "; + break; + case FIELD_ATTRIBUTE_PUBLIC: + outPut << "public "; + break; + case FIELD_ATTRIBUTE_FAMILY: + outPut << "protected "; + break; + case FIELD_ATTRIBUTE_ASSEMBLY: + case FIELD_ATTRIBUTE_FAM_AND_ASSEM: + outPut << "internal "; + break; + case FIELD_ATTRIBUTE_FAM_OR_ASSEM: + outPut << "protected internal "; + break; + } + if (attrs & FIELD_ATTRIBUTE_LITERAL) { + outPut << "const "; + } else { + if (attrs & FIELD_ATTRIBUTE_STATIC) { + outPut << "static "; } - if (attrs & FIELD_ATTRIBUTE_LITERAL) { - outPut << "const "; - } else { - if (attrs & FIELD_ATTRIBUTE_STATIC) { - outPut << "static "; - } - if (attrs & FIELD_ATTRIBUTE_INIT_ONLY) { - outPut << "readonly "; - } + if (attrs & FIELD_ATTRIBUTE_INIT_ONLY) { + outPut << "readonly "; } - auto field_type = il2cpp_field_get_type(field); + } + auto field_type = il2cpp_field_get_type(field); auto field_class = il2cpp_class_from_type(field_type); outPut << il2cpp_class_get_name(field_class) << " " << il2cpp_field_get_name(field); //TODO 获取构造函数初始化后的字段值 @@ -277,7 +278,7 @@ std::string dump_field(Il2CppClass * klass) { outPut << " = " << std::dec << val; } outPut << "; // 0x" << std::hex << il2cpp_field_get_offset(field) << "\n"; - } + } return outPut.str(); } @@ -358,7 +359,7 @@ std::string dump_type(const Il2CppType *type) { } void il2cpp_dump(void *handle, char *outDir) { - LOGI("il2cpp_handle: %p", handle); + LOGI("il2cpp_handle: %p", handle); il2cpp_handle = handle; init_il2cpp_api(); if (il2cpp_domain_get_assemblies) { @@ -376,87 +377,98 @@ void il2cpp_dump(void *handle, char *outDir) { } auto domain = il2cpp_domain_get(); il2cpp_thread_attach(domain); + //start dump LOGI("dumping..."); - size_t size; - auto assemblies = il2cpp_domain_get_assemblies(domain, &size); + //size_t size; + //auto assemblies = il2cpp_domain_get_assemblies(domain, &size); + auto assemblies = Assembly$$GetAllAssemblies(); + std::stringstream imageOutput; - for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]); - imageOutput << "// Image " << i << ": " << il2cpp_image_get_name(image) << "\n"; - } - std::vector outPuts; - if (il2cpp_image_get_class) { - LOGI("Version greater than 2018.3"); - //使用il2cpp_image_get_class - for (int i = 0; i < size; ++i) { + + for (int i = 0; i < assemblies->size(); ++i) { + auto image = il2cpp_assembly_get_image((*assemblies)[i]); + /*for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); - std::stringstream imageStr; - imageStr << "\n// Dll : " << il2cpp_image_get_name(image); - auto classCount = il2cpp_image_get_class_count(image); - for (int j = 0; j < classCount; ++j) { - auto klass = il2cpp_image_get_class(image, j); - auto type = il2cpp_class_get_type(const_cast(klass)); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); + imageOutput << "// Image " << i << ": " << il2cpp_image_get_name(image) << "\n"; + }*/ + std::vector outPuts; + if (il2cpp_image_get_class) { + LOGI("Version greater than 2018.3"); + //使用il2cpp_image_get_class + /*for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]);*/ + for (auto &assemblie: *assemblies) { + auto image = il2cpp_assembly_get_image(assemblie); + std::stringstream imageStr; + imageStr << "\n// Dll : " << il2cpp_image_get_name(image); + auto classCount = il2cpp_image_get_class_count(image); + for (int j = 0; j < classCount; ++j) { + auto klass = il2cpp_image_get_class(image, j); + auto type = il2cpp_class_get_type(const_cast(klass)); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); + } } - } - } else { - LOGI("Version less than 2018.3"); - //使用反射 - auto corlib = il2cpp_get_corlib(); - auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); - auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); - auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); - if (assemblyLoad && assemblyLoad->methodPointer) { - LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); - } else { - LOGI("miss Assembly::Load"); - return; - } - if (assemblyGetTypes && assemblyGetTypes->methodPointer) { - LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); } else { - LOGI("miss Assembly::GetTypes"); - return; - } - typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); - typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); - for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]); - std::stringstream imageStr; - auto image_name = il2cpp_image_get_name(image); - imageStr << "\n// Dll : " << image_name; - //LOGD("image name : %s", image->name); - auto imageName = std::string(image_name); - auto pos = imageName.rfind('.'); - auto imageNameNoExt = imageName.substr(0, pos); - auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); - auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, - assemblyFileName, - nullptr); - auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( - reflectionAssembly, nullptr); - auto items = reflectionTypes->vector; - for (int j = 0; j < reflectionTypes->max_length; ++j) { - auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); - auto type = il2cpp_class_get_type(klass); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); + LOGI("Version less than 2018.3"); + //使用反射 + auto corlib = il2cpp_get_corlib(); + auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); + auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); + auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); + if (assemblyLoad && assemblyLoad->methodPointer) { + LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); + } else { + LOGI("miss Assembly::Load"); + return; + } + if (assemblyGetTypes && assemblyGetTypes->methodPointer) { + LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); + } else { + LOGI("miss Assembly::GetTypes"); + return; + } + typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); + typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); + /*for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]);*/ + for (int i = 0; i < assemblies->size(); ++i) { + auto image = il2cpp_assembly_get_image((*assemblies)[i]); + std::stringstream imageStr; + auto image_name = il2cpp_image_get_name(image); + imageStr << "\n// Dll : " << image_name; + //LOGD("image name : %s", image->name); + auto imageName = std::string(image_name); + auto pos = imageName.rfind('.'); + auto imageNameNoExt = imageName.substr(0, pos); + auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); + auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, + assemblyFileName, + nullptr); + auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( + reflectionAssembly, nullptr); + auto items = reflectionTypes->vector; + for (int j = 0; j < reflectionTypes->max_length; ++j) { + auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); + auto type = il2cpp_class_get_type(klass); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); + } } } - } - auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); - LOGI("Write dump file to %s", outPath.c_str()); + auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); + LOGI("Write dump file to %s", outPath.c_str()); - std::ofstream outStream(outPath); - outStream << imageOutput.str(); - auto count = outPuts.size(); - for (int i = 0; i < count; ++i) { - outStream << outPuts[i]; + std::ofstream outStream(outPath); + outStream << imageOutput.str(); + auto count = outPuts.size(); + for (int i = 0; i < count; ++i) { + outStream << outPuts[i]; + } + outStream.close(); + LOGI("dump done!"); } - outStream.close(); - LOGI("dump done!"); -} +} \ No newline at end of file diff --git a/app/src/main/jni/Includes/BNMUtils.h b/app/src/main/jni/Includes/BNMUtils.h new file mode 100644 index 0000000..07d7039 --- /dev/null +++ b/app/src/main/jni/Includes/BNMUtils.h @@ -0,0 +1,131 @@ +//https://github.com/geokar2006 + +void InitIl2cppMethods(); +typedef std::vector AssemblyVector; +typedef unsigned long DWORD; +AssemblyVector *(*Assembly$$GetAllAssemblies_t)(); + +AssemblyVector *Assembly$$GetAllAssemblies(){ + if (!Assembly$$GetAllAssemblies_t) + InitIl2cppMethods(); + return Assembly$$GetAllAssemblies_t(); +} +std::string revhexstr(std::string hex) { + std::string out; + for (unsigned int i = 0; i < hex.length(); i += 2) out = hex.substr(i, 2) + out; + return out; +} + +std::string fixhex(std::string str) { + std::string out = str; + std::string::size_type tmp; + if (out.find(std::string("0x")) != -1) { + tmp = out.find(std::string("0x")); + out.replace(tmp, 2, std::string("")); + } + for (int i = out.length() - 1; i >= 0; --i) { + if (out[i] == ' ') + out.erase(i, 1); + } + return out; +} + +DWORD HexStr2DWORD(std::string hex) { + return strtoull(hex.c_str(), NULL, 16); +} + +bool Is_B_BL_Hex_arm64(std::string hex) { + DWORD hexw = HexStr2DWORD(revhexstr(fixhex(hex))); + return (hexw & 0xFC000000) == 0x14000000 || (hexw & 0xFC000000) == 0x94000000; +} + +bool Is_B_BL_Hex(std::string hex) { + DWORD hexw = HexStr2DWORD(revhexstr(fixhex(hex))); + return ((hexw & 0xFC000000) == 0x14000000 || (hexw & 0xFC000000) == 0x94000000) || (hexw & 0x0A000000) == 0x0A000000; +} + +std::string readHexStrFromMem(const void *addr, size_t len) { + char temp[len]; + memset(temp, 0, len); + const size_t bufferLen = len * 2 + 1; + char buffer[bufferLen]; + memset(buffer, 0, bufferLen); + std::string ret; + if (memcpy(temp, addr, len) == NULL) + return ret; + for (int i = 0; i < len; i++) { + sprintf(&buffer[i * 2], "%02X", (unsigned char) temp[i]); + } + ret += buffer; + return ret; +} + +bool Is_x86_call_hex(std::string hex) { + return hex.substr(0, 2) == "E8"; +} +/* + * Branch decoding based on + * https://github.com/aquynh/capstone/ +*/ +bool Decode_Branch_or_Call_Hex(std::string hex, DWORD offset, DWORD *outOffset) { + bool arm = false; + if (!(arm = Is_B_BL_Hex(hex)) && !Is_x86_call_hex(hex)) return false; + if (arm) { + DWORD insn = HexStr2DWORD(revhexstr(fixhex(hex))); + DWORD imm = ((insn & (((uint32_t)1 << 24) - 1) << 0) >> 0) << 2; + DWORD SignExtendedImm = (int32_t)(imm << (32 - 26)) >> (32 - 26); + *outOffset = SignExtendedImm + offset + (Is_B_BL_Hex_arm64(hex) ? 0 : 8); + } else { + *outOffset = offset + HexStr2DWORD(revhexstr(fixhex(hex)).substr(0, 8)) + 5; + } + return true; +} +DWORD FindNext_B_BL_offset(DWORD start, int index = 1) { +#if defined(__arm__) || defined(__aarch64__) + int offset = 0; + std::string curHex = readHexStrFromMem((const void*)start, 4); + DWORD outOffset = 0; + bool out = true; + while (!(out = Decode_Branch_or_Call_Hex(curHex, start + offset, &outOffset)) || index != 1) { + offset += 4; + curHex = readHexStrFromMem((const void*)(start + offset), 4); + if (out) + index--; + } + return outOffset; +#elif defined(__i386__) + int offset = 0; + std::string curHex = readHexStrFromMem((const void*)start, 1); + DWORD outOffset = 0; + bool out = true; + while (!(out = Is_x86_call_hex(curHex)) || index != 1) { + offset += 1; + curHex = readHexStrFromMem((const void*)(start + offset), 1); + if (out) + index--; + } + Decode_Branch_or_Call_Hex(readHexStrFromMem((const void*)(start + offset), 5), start + offset, &outOffset); + return outOffset; +#endif +} +void InitIl2cppMethods(){ +#if defined(__arm__) || defined(__aarch64__) + int count = 1; +#elif defined(__i386__) || defined(__x86_64__) + int count = 2; +#endif + + //! il2cpp::vm::Assembly::GetAllAssemblies GET + if (!Assembly$$GetAllAssemblies_t){ + auto corlib = il2cpp_get_corlib(); + auto assemblyClass = il2cpp_class_from_name(corlib, "System", "AppDomain"); + const MethodInfo *getAssemb = il2cpp_class_get_method_from_name(assemblyClass, "GetAssemblies", 1); + if (getAssemb){ + DWORD GetTypesAdr = FindNext_B_BL_offset((DWORD) getAssemb->methodPointer, count); + Assembly$$GetAllAssemblies_t = (AssemblyVector *(*)(void))(FindNext_B_BL_offset(GetTypesAdr, count+1)); + } else { + DWORD adr = (DWORD)il2cpp_domain_get_assemblies; + Assembly$$GetAllAssemblies_t = (AssemblyVector *(*)(void))(FindNext_B_BL_offset(adr, count)); + } + } +} \ No newline at end of file diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index 3b01cae..307efdd 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -7,9 +7,12 @@ // Uncomment for root mode // Root mode is to load our fake libunity.so and load game's real librealunity.so -//#define RootMode +#define RootMode -// Increase sleep in seconds if getting issue with dumper, like if not fully dumped -#define Sleep 2 +// Increase sleep in seconds if getting issue with dumper, like if not fully dumped or crashes +#define Sleep 15 + +// Target renamed lib +#define RealLibToLoad "librealunity.so" #endif //RIRU_IL2CPPDUMPER_GAME_H diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 518d682..80d6d99 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -30,7 +30,8 @@ bool isLibraryLoaded(const char *libraryName) { #define libTarget "libil2cpp.so" -void *hack_thread(void *) { +void dump_thread() { + LOGI("Start dumping"); do { sleep(1); } while (!isLibraryLoaded(libTarget)); @@ -46,7 +47,6 @@ void *hack_thread(void *) { else sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); il2cpp_dump(il2cpp_handle, buffer); - return nullptr; } //The idea from first Il2Cpp Dumper called PokemonGoDumper @@ -65,10 +65,12 @@ CallJNI_OnUnload_t RealJNIOnUnload = 0; JNIEXPORT jint JNICALL CallJNIOL( JavaVM *vm, void *reserved) { - LOGI("Exec librealunity.so"); + LOGI("Exec %s", RealLibToLoad); + + std::thread(dump_thread).detach(); if (!pLibRealUnity) - pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); + pLibRealUnity = dlopen(RealLibToLoad, RTLD_NOW); if (!RealJNIOnLoad) RealJNIOnLoad = reinterpret_cast(dlsym(pLibRealUnity, "JNI_OnLoad")); return RealJNIOnLoad(vm, reserved); @@ -77,7 +79,7 @@ JNIEXPORT jint JNICALL CallJNIOL( JNIEXPORT void JNICALL CallJNIUL( JavaVM *vm, void *reserved) { if (!pLibRealUnity) - pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); + pLibRealUnity = dlopen(RealLibToLoad, RTLD_NOW); if (!RealJNIOnUnload) RealJNIOnUnload = reinterpret_cast(dlsym(pLibRealUnity, "JNI_OnUnload")); @@ -87,9 +89,6 @@ JNIEXPORT void JNICALL CallJNIUL( JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { LOGI("Initialize JNI"); - pthread_t ptid; - pthread_create(&ptid, nullptr, hack_thread, nullptr); - return CallJNIOL(vm, reserved); } @@ -104,7 +103,6 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) { __attribute__((constructor)) void lib_main() { // Create a new thread so it does not block the main thread, means the game would not freeze - pthread_t ptid; - pthread_create(&ptid, nullptr, hack_thread, nullptr); + std::thread(dump_thread).detach(); } #endif From a6d9748f91729724e886bbb0d4e6c7964fd7bea8 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 1 Aug 2022 21:12:17 +0200 Subject: [PATCH 15/41] Fix path and reduce sleep time Android 11+ path often fails so it has been removed. Path is now always /storage/emulated/0/Android/data/%s --- app/src/main/jni/native-lib.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 80d6d99..553bd29 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -41,11 +41,8 @@ void dump_thread() { auto il2cpp_handle = dlopen(libTarget, 4); char buffer[64]; - int sdk = GetAndroidApiLevel(); - if (sdk >= 30) //Android 11 allows writing to Download folder without permission - sprintf(buffer, "/storage/emulated/0/Download/"); - else - sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); + + sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); il2cpp_dump(il2cpp_handle, buffer); } From ff57c75d99020b559b52ec6aeb1016a1de062895 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 1 Aug 2022 21:35:35 +0200 Subject: [PATCH 16/41] Reduce sleep time --- app/src/main/jni/Includes/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index 307efdd..a1d7645 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -10,7 +10,7 @@ #define RootMode // Increase sleep in seconds if getting issue with dumper, like if not fully dumped or crashes -#define Sleep 15 +#define Sleep 2 // Target renamed lib #define RealLibToLoad "librealunity.so" From ca500b450d1788a73e1e0f98e76eba26ae2ecacf Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 12:48:04 +0200 Subject: [PATCH 17/41] Upgrade gradle --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 3 +-- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4aecb13..26b6da6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,4 +26,5 @@ android { path "src/main/jni/Android.mk" } } + namespace 'com.il2cpp.dumper' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8c511e7..9a804ad 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + Date: Mon, 26 Sep 2022 12:50:18 +0200 Subject: [PATCH 18/41] Bump version and change Sdk to 33 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 26b6da6..acbe6d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 32 + compileSdkVersion 33 buildToolsVersion "32.0.0" defaultConfig { applicationId "com.il2cpp.dumper" minSdkVersion 16 - targetSdkVersion 32 + targetSdkVersion 33 versionCode 1 - versionName "2.0" + versionName "3.0" ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } From 03b888cd234337b91f0738406464da563896597c Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:01:37 +0200 Subject: [PATCH 19/41] Some changes --- README.md | 18 ++++++++++-------- app/src/main/jni/Il2Cpp/il2cpp_dump.cpp | 5 ++++- app/src/main/jni/Includes/config.h | 12 ++++++------ app/src/main/jni/native-lib.cpp | 6 ++++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 67a7236..58899dc 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ You can download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cp ###`jni/Includes/config.h` -Uncomment `#define RootMode` to use it as root mode +Uncomment `#define UseFakeLib` to use it as root mode `#define Sleep X`: Default is 2 seconds. Increase if getting issue with dumper, like if not fully dumped # How to use -### Non root method -This method requires to modify APK. You may need to bypass APK integrity and signature check if you want to use this method +### Adding Il2CppDumper to APK file +Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper - Decompile the game - Copy result libil2cppdumper.so into the decompiled folder apk. Make sure only copy same ABIs as the Target App, for example if Target App has only armeabi-v7a, then you should only copy armeabi-v7a @@ -57,16 +57,18 @@ Like - Re-compile, zipalign and sign the APK - Install APK -### Root method -This is useful to get around security. Does not need to modify game APK at all! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so +### Fake libunity.so +This is useful to get around security. Does not need to modify game APK at all but it needs ROOTED device! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so Note: Some games does not extract the libs in /data/data. In this case, try to use older Android version or modify APK file (See above). - Make sure you know the architecture of the game and your device before proceed -- Rename libil2cppdumper.so lib to libunity.so -- On rooted device/VM, use any file manager app that can access root. Go to /data/data/(package name)/lib +- Make sure our lib is renamed to libunity.so +- Use any file manager app that can access root. Go to /data/data/(package name)/lib - IMPORTANT! Rename game's libunity.so to librealunity.so -- Put our lib file libunity.so +- Put our lib file libunity.so to the lib folder + +This will work in APK too for non-rooted devices. You can just open APK as ZIP straight forward, rename libunity.so to librealunity.so, and add fake libunity.so. After that, zipalign and sign the APK. There is no need to re-compile APK at all ### Dumping - Run the game diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index dd06720..5f71b99 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -375,17 +375,20 @@ void il2cpp_dump(void *handle, char *outDir) { LOGE("Failed to initialize il2cpp api."); return; } + auto domain = il2cpp_domain_get(); + LOGI("il2cpp_thread_attach"); il2cpp_thread_attach(domain); //start dump - LOGI("dumping..."); + LOGI("Get all assemblies"); //size_t size; //auto assemblies = il2cpp_domain_get_assemblies(domain, &size); auto assemblies = Assembly$$GetAllAssemblies(); std::stringstream imageOutput; + LOGI("Assemblies size %d", assemblies->size()); for (int i = 0; i < assemblies->size(); ++i) { auto image = il2cpp_assembly_get_image((*assemblies)[i]); /*for (int i = 0; i < size; ++i) { diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index a1d7645..6fd12c7 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -5,14 +5,14 @@ #ifndef RIRU_IL2CPPDUMPER_GAME_H #define RIRU_IL2CPPDUMPER_GAME_H -// Uncomment for root mode -// Root mode is to load our fake libunity.so and load game's real librealunity.so -#define RootMode +// Try increase sleep time if having issues with the game. Decrease sleep time if anti-cheat detection it earlier +#define Sleep 3 -// Increase sleep in seconds if getting issue with dumper, like if not fully dumped or crashes -#define Sleep 2 +// Uncomment for fake lib mode +// It is to load our fake libunity.so and load game's real librealunity.so +#define UseFakeLib // Target renamed lib -#define RealLibToLoad "librealunity.so" +#define RealLibToLoad "librealmain.so" #endif //RIRU_IL2CPPDUMPER_GAME_H diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 553bd29..f0ec7de 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -31,16 +31,18 @@ bool isLibraryLoaded(const char *libraryName) { #define libTarget "libil2cpp.so" void dump_thread() { - LOGI("Start dumping"); + LOGI("Lib loaded"); do { sleep(1); } while (!isLibraryLoaded(libTarget)); //Waiting libil2cpp.so fully loaded. + LOGI("Waiting in %d...", Sleep); sleep(Sleep); auto il2cpp_handle = dlopen(libTarget, 4); char buffer[64]; + LOGI("Start dumping"); sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); il2cpp_dump(il2cpp_handle, buffer); @@ -58,7 +60,7 @@ typedef void(JNICALL *CallJNI_OnUnload_t)(JavaVM *vm, void *reserved); CallJNI_OnLoad_t RealJNIOnLoad = 0; CallJNI_OnUnload_t RealJNIOnUnload = 0; -#ifdef RootMode +#ifdef UseFakeLib JNIEXPORT jint JNICALL CallJNIOL( JavaVM *vm, void *reserved) { From dc8c2fd08a3e2577517787df8382836de194fdd4 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:14:55 +0200 Subject: [PATCH 20/41] Geokar2006's bypass doesn't work in some games. Disabled for now --- app/src/main/jni/Il2Cpp/il2cpp_dump.cpp | 165 ++++++++++++------------ 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index 5f71b99..35eae8d 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -382,96 +382,97 @@ void il2cpp_dump(void *handle, char *outDir) { //start dump LOGI("Get all assemblies"); - //size_t size; - //auto assemblies = il2cpp_domain_get_assemblies(domain, &size); - auto assemblies = Assembly$$GetAllAssemblies(); + + size_t size; + auto assemblies = il2cpp_domain_get_assemblies(domain, &size); + //geokar2006's bypass + //auto assemblies = Assembly$$GetAllAssemblies(); + //LOGI("Assemblies size %d", assemblies->size()); std::stringstream imageOutput; - LOGI("Assemblies size %d", assemblies->size()); - for (int i = 0; i < assemblies->size(); ++i) { - auto image = il2cpp_assembly_get_image((*assemblies)[i]); - /*for (int i = 0; i < size; ++i) { + /*for (int i = 0; i < assemblies->size(); ++i) { + auto image = il2cpp_assembly_get_image((*assemblies)[i]);*/ + for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]); + imageOutput << "// Image " << i << ": " << il2cpp_image_get_name(image) << "\n"; + } + std::vector outPuts; + if (il2cpp_image_get_class) { + LOGI("Version greater than 2018.3"); + //使用il2cpp_image_get_class + for (int i = 0; i < size; ++i) { auto image = il2cpp_assembly_get_image(assemblies[i]); - imageOutput << "// Image " << i << ": " << il2cpp_image_get_name(image) << "\n"; - }*/ - std::vector outPuts; - if (il2cpp_image_get_class) { - LOGI("Version greater than 2018.3"); - //使用il2cpp_image_get_class - /*for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]);*/ - for (auto &assemblie: *assemblies) { - auto image = il2cpp_assembly_get_image(assemblie); - std::stringstream imageStr; - imageStr << "\n// Dll : " << il2cpp_image_get_name(image); - auto classCount = il2cpp_image_get_class_count(image); - for (int j = 0; j < classCount; ++j) { - auto klass = il2cpp_image_get_class(image, j); - auto type = il2cpp_class_get_type(const_cast(klass)); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); - } + /*for (auto &assemblie: *assemblies) { + auto image = il2cpp_assembly_get_image(assemblie);*/ + std::stringstream imageStr; + imageStr << "\n// Dll : " << il2cpp_image_get_name(image); + auto classCount = il2cpp_image_get_class_count(image); + for (int j = 0; j < classCount; ++j) { + auto klass = il2cpp_image_get_class(image, j); + auto type = il2cpp_class_get_type(const_cast(klass)); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); } + } + } else { + LOGI("Version less than 2018.3"); + //使用反射 + auto corlib = il2cpp_get_corlib(); + auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); + auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); + auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); + if (assemblyLoad && assemblyLoad->methodPointer) { + LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); } else { - LOGI("Version less than 2018.3"); - //使用反射 - auto corlib = il2cpp_get_corlib(); - auto assemblyClass = il2cpp_class_from_name(corlib, "System.Reflection", "Assembly"); - auto assemblyLoad = il2cpp_class_get_method_from_name(assemblyClass, "Load", 1); - auto assemblyGetTypes = il2cpp_class_get_method_from_name(assemblyClass, "GetTypes", 0); - if (assemblyLoad && assemblyLoad->methodPointer) { - LOGI("Assembly::Load: %p", assemblyLoad->methodPointer); - } else { - LOGI("miss Assembly::Load"); - return; - } - if (assemblyGetTypes && assemblyGetTypes->methodPointer) { - LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); - } else { - LOGI("miss Assembly::GetTypes"); - return; - } - typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); - typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); - /*for (int i = 0; i < size; ++i) { - auto image = il2cpp_assembly_get_image(assemblies[i]);*/ - for (int i = 0; i < assemblies->size(); ++i) { - auto image = il2cpp_assembly_get_image((*assemblies)[i]); - std::stringstream imageStr; - auto image_name = il2cpp_image_get_name(image); - imageStr << "\n// Dll : " << image_name; - //LOGD("image name : %s", image->name); - auto imageName = std::string(image_name); - auto pos = imageName.rfind('.'); - auto imageNameNoExt = imageName.substr(0, pos); - auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); - auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, - assemblyFileName, - nullptr); - auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( - reflectionAssembly, nullptr); - auto items = reflectionTypes->vector; - for (int j = 0; j < reflectionTypes->max_length; ++j) { - auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); - auto type = il2cpp_class_get_type(klass); - //LOGD("type name : %s", il2cpp_type_get_name(type)); - auto outPut = imageStr.str() + dump_type(type); - outPuts.push_back(outPut); - } + LOGI("miss Assembly::Load"); + return; + } + if (assemblyGetTypes && assemblyGetTypes->methodPointer) { + LOGI("Assembly::GetTypes: %p", assemblyGetTypes->methodPointer); + } else { + LOGI("miss Assembly::GetTypes"); + return; + } + typedef void *(*Assembly_Load_ftn)(void *, Il2CppString *, void *); + typedef Il2CppArray *(*Assembly_GetTypes_ftn)(void *, void *); + for (int i = 0; i < size; ++i) { + auto image = il2cpp_assembly_get_image(assemblies[i]); + /*for (int i = 0; i < assemblies->size(); ++i) { + auto image = il2cpp_assembly_get_image((*assemblies)[i]);*/ + std::stringstream imageStr; + auto image_name = il2cpp_image_get_name(image); + imageStr << "\n// Dll : " << image_name; + //LOGD("image name : %s", image->name); + auto imageName = std::string(image_name); + auto pos = imageName.rfind('.'); + auto imageNameNoExt = imageName.substr(0, pos); + auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); + auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, + assemblyFileName, + nullptr); + auto reflectionTypes = ((Assembly_GetTypes_ftn) assemblyGetTypes->methodPointer)( + reflectionAssembly, nullptr); + auto items = reflectionTypes->vector; + for (int j = 0; j < reflectionTypes->max_length; ++j) { + auto klass = il2cpp_class_from_system_type((Il2CppReflectionType *) items[j]); + auto type = il2cpp_class_get_type(klass); + //LOGD("type name : %s", il2cpp_type_get_name(type)); + auto outPut = imageStr.str() + dump_type(type); + outPuts.push_back(outPut); } } - auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); - LOGI("Write dump file to %s", outPath.c_str()); + } + auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); + LOGI("Write dump file to %s", outPath.c_str()); - std::ofstream outStream(outPath); - outStream << imageOutput.str(); - auto count = outPuts.size(); - for (int i = 0; i < count; ++i) { - outStream << outPuts[i]; - } - outStream.close(); - LOGI("dump done!"); + std::ofstream outStream(outPath); + outStream << imageOutput.str(); + auto count = outPuts.size(); + for (int i = 0; i < count; ++i) { + outStream << outPuts[i]; } + outStream.close(); + LOGI("dump done!"); } \ No newline at end of file From 67cbb44f42ad22fdea4403c26103bf3b14b0c678 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:15:17 +0200 Subject: [PATCH 21/41] Revert config --- app/src/main/jni/Includes/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index 6fd12c7..d76b036 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -6,13 +6,13 @@ #define RIRU_IL2CPPDUMPER_GAME_H // Try increase sleep time if having issues with the game. Decrease sleep time if anti-cheat detection it earlier -#define Sleep 3 +#define Sleep 2 // Uncomment for fake lib mode // It is to load our fake libunity.so and load game's real librealunity.so #define UseFakeLib // Target renamed lib -#define RealLibToLoad "librealmain.so" +#define RealLibToLoad "librealunity.so" #endif //RIRU_IL2CPPDUMPER_GAME_H From 42024174d869f9e94f20322c1812efa71012936c Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:21:00 +0200 Subject: [PATCH 22/41] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 58899dc..810879a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This is full auto, no need to put unity version anymore since it's based on Zygi You can download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below -###`jni/Includes/config.h` +In config file `jni/Includes/config.h`: Uncomment `#define UseFakeLib` to use it as root mode @@ -75,6 +75,9 @@ This will work in APK too for non-rooted devices. You can just open APK as ZIP s - Wait a few seconds. Let the game load into main screen - Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ (Android 10 and below) or /storage/emulated/0/Download (Android 11 and above) without storage permission +### Obfuscated names +Names can't be obfuscated. Once they are renamed, it can't be reverted back to original. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P + # Credits - Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) - BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) \ No newline at end of file From a5e533e657cbcb91379addec2078016825686eed Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 26 Sep 2022 16:22:40 +0200 Subject: [PATCH 23/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 810879a..0e55017 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ This will work in APK too for non-rooted devices. You can just open APK as ZIP s - Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ (Android 10 and below) or /storage/emulated/0/Download (Android 11 and above) without storage permission ### Obfuscated names -Names can't be obfuscated. Once they are renamed, it can't be reverted back to original. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P +Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P # Credits - Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) From 43a155f6ffef65184a4cf32815b46a733173a24e Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 10 Oct 2022 12:49:53 +0200 Subject: [PATCH 24/41] Update README.md --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0e55017..2f824a1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Uncomment `#define UseFakeLib` to use it as root mode # How to use -### Adding Il2CppDumper to APK file +### Method 1: Adding Il2CppDumper to APK file Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper - Decompile the game @@ -57,16 +57,15 @@ Like - Re-compile, zipalign and sign the APK - Install APK -### Fake libunity.so -This is useful to get around security. Does not need to modify game APK at all but it needs ROOTED device! This is a trick to load our fake libunity.so and load game's renamed lib librealunity.so +### Method 2: Fake libs +This is useful to get around security. Does not need to modify game APK at all but it needs ROOTED device! This is a trick to load our fake libunity.so or libmain.so and load game's renamed lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so -Note: Some games does not extract the libs in /data/data. In this case, try to use older Android version or modify APK file (See above). +Note: Some games does not extract the libs to /data/data. If this is the case, try to use older Android version (9 and below) or modify APK file (See above). - Make sure you know the architecture of the game and your device before proceed -- Make sure our lib is renamed to libunity.so - Use any file manager app that can access root. Go to /data/data/(package name)/lib -- IMPORTANT! Rename game's libunity.so to librealunity.so -- Put our lib file libunity.so to the lib folder +- Rename game's libunity.so to librealunity.so or libmain.so to librealmain.so +- Put our lib file libunity.so or libmain.so to the lib folder This will work in APK too for non-rooted devices. You can just open APK as ZIP straight forward, rename libunity.so to librealunity.so, and add fake libunity.so. After that, zipalign and sign the APK. There is no need to re-compile APK at all @@ -78,6 +77,9 @@ This will work in APK too for non-rooted devices. You can just open APK as ZIP s ### Obfuscated names Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P +### Bypass more games? +I'm too noob in Il2Cpp API related, so I can't improve it or bypassing security, and it is not really my thing to bypass. But if you know, feel free to pull request. Issues are still disabled since I forked the project. + # Credits - Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) - BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) \ No newline at end of file From 202a2b6ca59a4fff381006bb7143031e27b31493 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Sun, 16 Oct 2022 11:49:27 +0200 Subject: [PATCH 25/41] Fix path, clean up, upgrade gradle --- .../main/java/com/il2cpp/dumper/MainActivity.java | 2 +- app/src/main/jni/Il2Cpp/il2cpp_dump.cpp | 13 ++++++++----- app/src/main/jni/Il2Cpp/il2cpp_dump.h | 2 +- app/src/main/jni/native-lib.cpp | 10 +--------- build.gradle | 2 +- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/il2cpp/dumper/MainActivity.java b/app/src/main/java/com/il2cpp/dumper/MainActivity.java index 8bd833a..0387a37 100644 --- a/app/src/main/java/com/il2cpp/dumper/MainActivity.java +++ b/app/src/main/java/com/il2cpp/dumper/MainActivity.java @@ -6,7 +6,7 @@ public class MainActivity extends Activity { static { - System.loadLibrary("native-lib"); + System.loadLibrary("il2cppdumper"); } @Override diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index 35eae8d..f857d99 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -29,7 +29,7 @@ static uint64_t il2cpp_base = 0; const char *GetPackageName() { //https://stackoverflow.com/questions/42918762/how-to-get-app-package-name-or-applicationid-using-jni-android - char *application_id[64]; + char *application_id[256]; FILE *fp = fopen("proc/self/cmdline", "r"); if (fp) { fread(application_id, sizeof(application_id), 1, fp); @@ -358,7 +358,7 @@ std::string dump_type(const Il2CppType *type) { return outPut.str(); } -void il2cpp_dump(void *handle, char *outDir) { +void il2cpp_dump(void *handle) { LOGI("il2cpp_handle: %p", handle); il2cpp_handle = handle; init_il2cpp_api(); @@ -464,15 +464,18 @@ void il2cpp_dump(void *handle, char *outDir) { } } } - auto outPath = std::string(outDir).append("/").append(GetPackageName()).append("-dump.cs"); - LOGI("Write dump file to %s", outPath.c_str()); - std::ofstream outStream(outPath); + auto androidDataPath = std::string("/storage/emulated/0/Android/data/").append(GetPackageName()).append("/").append(GetPackageName()).append("-dump.cs"); + + LOGI("Save dump file to %s", androidDataPath.c_str()); + + std::ofstream outStream(androidDataPath); outStream << imageOutput.str(); auto count = outPuts.size(); for (int i = 0; i < count; ++i) { outStream << outPuts[i]; } outStream.close(); + LOGI("dump done!"); } \ No newline at end of file diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.h b/app/src/main/jni/Il2Cpp/il2cpp_dump.h index 2971ca6..4ed1dce 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.h +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.h @@ -5,7 +5,7 @@ #ifndef RIRU_IL2CPPDUMPER_IL2CPP_H #define RIRU_IL2CPPDUMPER_IL2CPP_H -void il2cpp_dump(void *handle, char *outDir); +void il2cpp_dump(void *handle); const char* GetPackageName(); diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index f0ec7de..2f5419b 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -8,12 +8,6 @@ #include "Includes/config.h" #include "Includes/log.h" -static int GetAndroidApiLevel() { - char prop_value[PROP_VALUE_MAX]; - __system_property_get("ro.build.version.sdk", prop_value); - return atoi(prop_value); -} - bool isLibraryLoaded(const char *libraryName) { char line[512] = {0}; FILE *fp = fopen("/proc/self/maps", "rt"); @@ -41,11 +35,9 @@ void dump_thread() { sleep(Sleep); auto il2cpp_handle = dlopen(libTarget, 4); - char buffer[64]; LOGI("Start dumping"); - sprintf(buffer, "/storage/emulated/0/Android/data/%s", GetPackageName()); - il2cpp_dump(il2cpp_handle, buffer); + il2cpp_dump(il2cpp_handle); } //The idea from first Il2Cpp Dumper called PokemonGoDumper diff --git a/build.gradle b/build.gradle index 83d9521..93c4997 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:7.3.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From af7f6b5c69a344d3fea359fd075aec4e410ef545 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Sun, 16 Oct 2022 11:49:58 +0200 Subject: [PATCH 26/41] Update build.gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index acbe6d7..48ca53c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 16 targetSdkVersion 33 versionCode 1 - versionName "3.0" + versionName "3.1" ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } From 210632137de8bd644ef3dc02f8832c2148c6d046 Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 24 Oct 2022 17:18:07 +0200 Subject: [PATCH 27/41] Update readme --- Images/1.png | Bin 0 -> 90886 bytes Images/2.png | Bin 0 -> 87036 bytes Images/3.png | Bin 0 -> 36950 bytes README.md | 53 +++++++++++++++++------------ app/src/main/jni/Includes/config.h | 2 +- 5 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 Images/1.png create mode 100644 Images/2.png create mode 100644 Images/3.png diff --git a/Images/1.png b/Images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..13cd1ddca69e17fc5c321c637f721593cdd384b1 GIT binary patch literal 90886 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%0AkwOF zebk1mW^ZZS@Ro9)t(aOY*+T02;_Db!Rz&$ASerbiWXb`Dj1^;)RJGf4_xJbw5HUexkA`S9W#H!x~JLntR+fCNK@hL!ak=$M(B zn)W>S)6i}_qAxpd_k>(5&;GIU?E5EDO3?NgX?ot`Lg%*Xix&96M%AzY*0;8=ZgYq~ysSva(IO#%zdg(1w3sf_s+G?Gx)tS_n6XQb28|mubF_AgfY}02 z3ZQd`*X1Pn-(DZ|3kiW&@huK@rF-k9jO&@Tzeg4GE2WZZU2`NB;q%ENVd`pzzsA^vS01cEB^unN|v%nm~9Z zyn`ZOI{}$jVIYjVVvM5JsL31p;Bft;NNfGf(9t>Xz|l>nB9ia!7xR4l74J(I3_Q&@ zwf%hM4F6Kpcs??+Y{R}VpglDyt=Jk71?3cIPy!$xmy^X!%NZPO=C7!>Lw5Z9S>5qI zLq8)U<)j_D_L(bNb@p@JXv!u2Kwv%t3hDNmqN2ku*3Zkj1C690uOl5tmj>}p8ky#= ziG=PJv0voDV~w)o1`f3K1srv1PBv?;hiAt)b2Of#R|;$BTy!%moMx5OLP|rszb4@< zKfhgxf>BA5`Q2)U!AM0QJv}|Z>DtW{jsc0 z=P!Rx+G-gK=lSg=$oYI@XK0?m`fuxKqh@7Q?6LFdGETLK5pNsNnT|rh`Tc7pK;fv> zDv5~r?x+GCqd@53Ua6$xZ(@@IGTP52{PgrgL2-Gyjm=RQI55wt!Eoz}Lir+N!@r=P zH=bZ8Y6zbRD-q0bj@8)yIMW*o!=k5^cUpZAoWpeVq8wje7lL?1v$3?#0>$C=D1)~` z*Q*>XTySI3olpp>d@8?NLu+YN+shT;+1!2sLHFxSp&S+_W_qc7I4+Z72A~i+fKZ}^ zIWlq${#kBn;>DIPH&C%>x{M?8!`f`70e0xP6ER`T<19)!wtDCIL#VBX)sK#ij|rQx zpJn8t7Pw!_UO2U6hHs_<*#X}(>oX8xu>?_b53T@l+tm*}!NJnJq#)Q3;lQd4N_wun^Z!gLK8Ll!yuCkK)>#Ud9nFQV@toI5) z2oZ@HzcSp&xo%_)`c%|-zVLmd^+AejwIOBdwX_rJxZW=Qq0h7R3ko}el*=T zxt^N7zCp^rHb)e=XP{~4Q%8}RT-jaIL_!-*F+ zXpp#=k^&BGZxb#Smec#!bU5p&&c(8HNpOoxxVyvk0WOnveo?^?9H)%l!Z>5F?#B<7 z{goXlGh@_EvC(gBj7lrB3dTHpHH8-Dr*`aHa*G*qw4Rof1z-y~~U%^0y ziuTYv>vHkyMxNz;0{76AYQ;8Gre3O#n`)8T_VSBI-RrUaYOYYU#XB4)k}f{NJmST| z6q`=2lsu4bYm_^i6nJ`iT6TV4gegf+GW&3yyXw{G$-hA+Xfgh(xNRxUg=Tm3aT_6; zucyo-p=0?s?O>x$?e7hmIeC3v0h{GI(!Fst;F~Wt5(oDSxM}HtlUt%gi?-ADodaTW zD)m^e-Fkd)7T&=6%6BNKuKs_R`s%oB@-q`Q>5bV{cnBHay= z0+Q0Dw4i`W2nt+55Rj617c=v`pWpm7<-O;gv(MUVeQS?b)8EY(H)-<<44T0cYt_7{ zsT1ockrzqHc%D(W{%8wnm7$s_h4!M_VX;(@0IjkSFX0YH!2b59{q^&!`LV~u?RM{d z@f*tbTNAH)J~8@Re^Grg=jPnoE1i=zs*}TKl1F>H61E#ny&?CKff;tK`+koWG6>4X z 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�x}7c;C2VYz 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 MzI49ioI~h807%W}N&o-= literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 2f824a1..ea75b44 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass prot This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it # Usage -This is full auto, no need to put unity version anymore since it's based on Zygisk-Il2cppDumper. +This is full auto dumper, no need to put unity version anymore since it's based on Zygisk-Il2cppDumper. You can download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below @@ -16,11 +16,31 @@ Uncomment `#define UseFakeLib` to use it as root mode # How to use -### Method 1: Adding Il2CppDumper to APK file +## Method 1: Fake lib +This is a trick to load our own libunity.so or libmain.so and load game's renamed original lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so or vice versa + +### Root +- Make sure you know the architecture of the game and your device before proceed +- Use any file manager app that can access root. Go to /data/data/(package name)/lib or /data/app/(obfuscated name)/(package name-obfuscated name)/lib +- Rename original libunity.so to librealunity.so or original libmain.so to librealmain.so +- Put our lib file libunity.so or libmain.so to the lib folder + ![](Images/1.png) +- +### Non-root Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper -- Decompile the game -- Copy result libil2cppdumper.so into the decompiled folder apk. Make sure only copy same ABIs as the Target App, for example if Target App has only armeabi-v7a, then you should only copy armeabi-v7a +- Open APK file as ZIP using Winrar. 7zip or other zip utilities +- Rename game's libunity.so to librealunity.so or libmain.so to librealmain.so +- Put our fake lib file libunity.so or libmain.so to the lib folder + ![](Images/3.png) +- Zipalign and sign the APK file +- Install the APK + +### Method 2: Lib call +If renaming lib doesn't work, try this method. Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper + +- Decompile the game using Apktool +- Copy libil2cppdumper.so into the lib folder. Make sure only copy same ABIs as the target app, for example if target app has only armeabi-v7a, then you should only copy armeabi-v7a - Search the main activity in AndroidManifest.xml. Example: com.gameloft.android.XamarinMainActivity ```xml @@ -32,8 +52,9 @@ Some games may have APK integrity and signature check. You may need to bypass it ``` -- Locate the smali file of main activity -- Copy and paste this smali code into onCreate function +- Locate the said main activity in the smali folder, can be \smali_classes(number)\com\gameloft\android\XamarinMainActivity.smali if multidex). You must look through all smali classes until you found it + +- Insert this lib call into onCreate function below `.locals` XX ```smali const-string v0, "il2cppdumper" @@ -54,25 +75,15 @@ Like whatever code below ``` -- Re-compile, zipalign and sign the APK -- Install APK - -### Method 2: Fake libs -This is useful to get around security. Does not need to modify game APK at all but it needs ROOTED device! This is a trick to load our fake libunity.so or libmain.so and load game's renamed lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so - -Note: Some games does not extract the libs to /data/data. If this is the case, try to use older Android version (9 and below) or modify APK file (See above). - -- Make sure you know the architecture of the game and your device before proceed -- Use any file manager app that can access root. Go to /data/data/(package name)/lib -- Rename game's libunity.so to librealunity.so or libmain.so to librealmain.so -- Put our lib file libunity.so or libmain.so to the lib folder - -This will work in APK too for non-rooted devices. You can just open APK as ZIP straight forward, rename libunity.so to librealunity.so, and add fake libunity.so. After that, zipalign and sign the APK. There is no need to re-compile APK at all +- Re-compile, zipalign, sign the APK +- Install the APK ### Dumping - Run the game - Wait a few seconds. Let the game load into main screen -- Once the dump complete it will auto generate dump.cs in /storage/emulated/0/Android/data/(Package name)/ (Android 10 and below) or /storage/emulated/0/Download (Android 11 and above) without storage permission +- Once the dump is complete, it will save the dump.cs in /storage/emulated/0/Android/data/(Package name)/ + ![](Images/2.png) +- If there is no dump.cs, check logcat using Matlog or Android Studio. Game should crash or freeze if dump fails ### Obfuscated names Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index d76b036..61454a7 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -13,6 +13,6 @@ #define UseFakeLib // Target renamed lib -#define RealLibToLoad "librealunity.so" +#define RealLibToLoad "librealmain.so" #endif //RIRU_IL2CPPDUMPER_GAME_H From 8616396f193d4db4620661c835e9afd5f2e4412f Mon Sep 17 00:00:00 2001 From: q3b5q3 <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 24 Oct 2022 17:18:45 +0200 Subject: [PATCH 28/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea75b44..f7a140d 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ This is a trick to load our own libunity.so or libmain.so and load game's rename - Rename original libunity.so to librealunity.so or original libmain.so to librealmain.so - Put our lib file libunity.so or libmain.so to the lib folder ![](Images/1.png) -- + ### Non-root Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper From a24ac97accf61170825ec768d0ca4727ae0053cd Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Mon, 17 Apr 2023 16:57:49 +0200 Subject: [PATCH 29/41] Update README.md --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f7a140d..0baca59 100644 --- a/README.md +++ b/README.md @@ -3,18 +3,10 @@ Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass prot This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it -# Usage +# How to use This is full auto dumper, no need to put unity version anymore since it's based on Zygisk-Il2cppDumper. -You can download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below - -In config file `jni/Includes/config.h`: - -Uncomment `#define UseFakeLib` to use it as root mode - -`#define Sleep X`: Default is 2 seconds. Increase if getting issue with dumper, like if not fully dumped - -# How to use +Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below ## Method 1: Fake lib This is a trick to load our own libunity.so or libmain.so and load game's renamed original lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so or vice versa @@ -89,7 +81,17 @@ Like Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P ### Bypass more games? -I'm too noob in Il2Cpp API related, so I can't improve it or bypassing security, and it is not really my thing to bypass. But if you know, feel free to pull request. Issues are still disabled since I forked the project. +No idea since bypassing is not my thing, but if you know, feel free to make a pull request. For now, Issues is closed + +# Usage (If you want to complie by yourself) + +In config header `jni/Includes/config.h`: + +`UseFakeLib` is to use it as root mode + +`RealLibToLoad` is the target lib to be faked + +`Sleep` is to delay dumping. Increase if getting issue with dumper, like if not fully dumped # Credits - Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) From 741ac21cd341a4e69387384b73081d9b5a2cb47c Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 17 May 2023 12:39:33 +0200 Subject: [PATCH 30/41] Merge some latest sources from Zygisk-Il2CppDumper xdl will be unused due to lack of emulator compatibility BNMUtils.h has been removed Gradle updated to 8.0.1 --- README.md | 10 +- app/src/main/jni/Android.mk | 9 +- app/src/main/jni/Il2Cpp/il2cpp_dump.cpp | 82 +- app/src/main/jni/Il2Cpp/il2cpp_dump.h | 10 +- app/src/main/jni/Il2Cpp/xdl/include/xdl.h | 92 +++ app/src/main/jni/Il2Cpp/xdl/xdl.c | 910 ++++++++++++++++++++++ app/src/main/jni/Il2Cpp/xdl/xdl.map.txt | 14 + app/src/main/jni/Il2Cpp/xdl/xdl_iterate.c | 297 +++++++ app/src/main/jni/Il2Cpp/xdl/xdl_iterate.h | 43 + app/src/main/jni/Il2Cpp/xdl/xdl_linker.c | 208 +++++ app/src/main/jni/Il2Cpp/xdl/xdl_linker.h | 40 + app/src/main/jni/Il2Cpp/xdl/xdl_lzma.c | 187 +++++ app/src/main/jni/Il2Cpp/xdl/xdl_lzma.h | 40 + app/src/main/jni/Il2Cpp/xdl/xdl_util.c | 95 +++ app/src/main/jni/Il2Cpp/xdl/xdl_util.h | 71 ++ app/src/main/jni/Includes/BNMUtils.h | 131 ---- app/src/main/jni/Includes/config.h | 11 +- app/src/main/jni/native-lib.cpp | 24 +- build.gradle | 2 +- gradle.properties | 5 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 21 files changed, 2071 insertions(+), 212 deletions(-) create mode 100644 app/src/main/jni/Il2Cpp/xdl/include/xdl.h create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl.c create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl.map.txt create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_iterate.c create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_iterate.h create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_linker.c create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_linker.h create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_lzma.c create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_lzma.h create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_util.c create mode 100644 app/src/main/jni/Il2Cpp/xdl/xdl_util.h delete mode 100644 app/src/main/jni/Includes/BNMUtils.h diff --git a/README.md b/README.md index 0baca59..3338c89 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass prot This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it # How to use -This is full auto dumper, no need to put unity version anymore since it's based on Zygisk-Il2cppDumper. - Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below +Note: Non-root methods involves modifying APK file, you may need to bypass APK integrity or signature check if it's present. I won't get into the details of bypassing anything because it is simply out of the scope + ## Method 1: Fake lib This is a trick to load our own libunity.so or libmain.so and load game's renamed original lib librealunity.so or librealmain.so. Can't decide which lib? Try libmain.so first as it sometimes work better than libunity.so or vice versa @@ -29,7 +29,7 @@ Some games may have APK integrity and signature check. You may need to bypass it - Install the APK ### Method 2: Lib call -If renaming lib doesn't work, try this method. Some games may have APK integrity and signature check. You may need to bypass it before adding Il2CppDumper +If renaming lib doesn't work, try this method. - Decompile the game using Apktool - Copy libil2cppdumper.so into the lib folder. Make sure only copy same ABIs as the target app, for example if target app has only armeabi-v7a, then you should only copy armeabi-v7a @@ -75,7 +75,7 @@ Like - Wait a few seconds. Let the game load into main screen - Once the dump is complete, it will save the dump.cs in /storage/emulated/0/Android/data/(Package name)/ ![](Images/2.png) -- If there is no dump.cs, check logcat using Matlog or Android Studio. Game should crash or freeze if dump fails +- If there is no dump.cs, check logcat using Matlog or Android Studio. Game usually crash or freeze if dump fails ### Obfuscated names Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P @@ -89,8 +89,6 @@ In config header `jni/Includes/config.h`: `UseFakeLib` is to use it as root mode -`RealLibToLoad` is the target lib to be faked - `Sleep` is to delay dumping. Increase if getting issue with dumper, like if not fully dumped # Credits diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk index f50f6ed..b574822 100644 --- a/app/src/main/jni/Android.mk +++ b/app/src/main/jni/Android.mk @@ -12,9 +12,14 @@ LOCAL_LDFLAGS += -Wl,--gc-sections,--strip-all, -llog LOCAL_ARM_MODE := arm LOCAL_C_INCLUDES += $(MAIN_LOCAL_PATH) +LOCAL_C_INCLUDES += $(LOCAL_PATH) +LOCAL_C_INCLUDES += $(LOCAL_PATH)/Il2Cpp/xdl/include -LOCAL_SRC_FILES := native-lib.cpp \ +FILE_LIST := $(wildcard $(LOCAL_PATH)/Il2Cpp/xdl/*.c) + +LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) +LOCAL_SRC_FILES += native-lib.cpp \ Il2Cpp/il2cpp_dump.cpp -LOCAL_LDLIBS := -llog -landroid -lGLESv2 +LOCAL_LDLIBS := -llog -landroid -lGLESv2 -ldl include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp index f857d99..2b4ff76 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.cpp @@ -11,20 +11,20 @@ #include #include #include -#include +#include +#include "xdl.h" #include "Includes/log.h" #include "il2cpp-tabledefs.h" #include "il2cpp-class.h" +#include #define DO_API(r, n, p) r (*n) p #include "il2cpp-api-functions.h" -#include #undef DO_API -static void *il2cpp_handle = nullptr; static uint64_t il2cpp_base = 0; const char *GetPackageName() { @@ -38,40 +38,21 @@ const char *GetPackageName() { return (const char *) application_id; } -void init_il2cpp_api() { -#define DO_API(r, n, p) n = (r (*) p)dlsym(il2cpp_handle, #n) +void init_il2cpp_api(void *handle) { +#define DO_API(r, n, p) n = (r (*) p)dlsym(handle, #n) -#include "il2cpp-api-functions.h" +// Do not use XDL yet because it doesn't support emulators -#undef DO_API -} +/*#define DO_API(r, n, p) { \ + n = (r (*) p)xdl_sym(handle, #n, nullptr); \ + if(!n) { \ + LOGW("api not found %s", #n); \ + } \ +}*/ -uint64_t get_module_base(const char *module_name) { - uint64_t addr = 0; - char line[1024]; - uint64_t start = 0; - uint64_t end = 0; - char flags[5]; - char path[PATH_MAX]; +#include "il2cpp-api-functions.h" - FILE *fp = fopen("/proc/self/maps", "r"); - if (fp != nullptr) { - while (fgets(line, sizeof(line), fp)) { - strcpy(path, ""); - sscanf(line, "%" PRIx64"-%" PRIx64" %s %*" PRIx64" %*x:%*x %*u %s\n", &start, &end, - flags, path); -#if defined(__aarch64__) - if (strstr(flags, "x") == 0) //TODO - continue; -#endif - if (strstr(path, module_name)) { - addr = start; - break; - } - } - fclose(fp); - } - return addr; +#undef DO_API } std::string get_method_modifier(uint32_t flags) { @@ -358,32 +339,31 @@ std::string dump_type(const Il2CppType *type) { return outPut.str(); } -void il2cpp_dump(void *handle) { +void il2cpp_api_init(void *handle) { LOGI("il2cpp_handle: %p", handle); - il2cpp_handle = handle; - init_il2cpp_api(); + init_il2cpp_api(handle); if (il2cpp_domain_get_assemblies) { Dl_info dlInfo; if (dladdr((void *) il2cpp_domain_get_assemblies, &dlInfo)) { il2cpp_base = reinterpret_cast(dlInfo.dli_fbase); - } else { - LOGW("dladdr error, using get_module_base."); - il2cpp_base = get_module_base("libil2cpp.so"); } LOGI("il2cpp_base: %" PRIx64"", il2cpp_base); } else { LOGE("Failed to initialize il2cpp api."); return; } - + while (!il2cpp_is_vm_thread(nullptr)) { + LOGI("Waiting for il2cpp_init..."); + sleep(1); + } auto domain = il2cpp_domain_get(); - LOGI("il2cpp_thread_attach"); il2cpp_thread_attach(domain); +} - //start dump - LOGI("Get all assemblies"); - +void il2cpp_dump(const char *outDir) { + LOGI("dumping..."); size_t size; + auto domain = il2cpp_domain_get(); auto assemblies = il2cpp_domain_get_assemblies(domain, &size); //geokar2006's bypass //auto assemblies = Assembly$$GetAllAssemblies(); @@ -448,7 +428,7 @@ void il2cpp_dump(void *handle) { auto imageName = std::string(image_name); auto pos = imageName.rfind('.'); auto imageNameNoExt = imageName.substr(0, pos); - auto assemblyFileName = il2cpp_string_new(imageNameNoExt.c_str()); + auto assemblyFileName = il2cpp_string_new(imageNameNoExt.data()); auto reflectionAssembly = ((Assembly_Load_ftn) assemblyLoad->methodPointer)(nullptr, assemblyFileName, nullptr); @@ -464,12 +444,12 @@ void il2cpp_dump(void *handle) { } } } - - auto androidDataPath = std::string("/storage/emulated/0/Android/data/").append(GetPackageName()).append("/").append(GetPackageName()).append("-dump.cs"); - - LOGI("Save dump file to %s", androidDataPath.c_str()); - - std::ofstream outStream(androidDataPath); + + auto outPath = std::string(outDir); + + LOGI("Save dump file to %s", outPath.c_str()); + + std::ofstream outStream(outPath); outStream << imageOutput.str(); auto count = outPuts.size(); for (int i = 0; i < count; ++i) { diff --git a/app/src/main/jni/Il2Cpp/il2cpp_dump.h b/app/src/main/jni/Il2Cpp/il2cpp_dump.h index 4ed1dce..73e5921 100644 --- a/app/src/main/jni/Il2Cpp/il2cpp_dump.h +++ b/app/src/main/jni/Il2Cpp/il2cpp_dump.h @@ -2,11 +2,13 @@ // Created by Perfare on 2020/7/4. // -#ifndef RIRU_IL2CPPDUMPER_IL2CPP_H -#define RIRU_IL2CPPDUMPER_IL2CPP_H +#ifndef AUTO_IL2CPPDUMPER_IL2CPP_DUMP_H +#define AUTO_IL2CPPDUMPER_IL2CPP_DUMP_H -void il2cpp_dump(void *handle); +void il2cpp_api_init(void *handle); + +void il2cpp_dump(const char *outDir); const char* GetPackageName(); -#endif //RIRU_IL2CPPDUMPER_IL2CPP_H +#endif //AUTO_IL2CPPDUMPER_IL2CPP_DUMP_H diff --git a/app/src/main/jni/Il2Cpp/xdl/include/xdl.h b/app/src/main/jni/Il2Cpp/xdl/include/xdl.h new file mode 100644 index 0000000..78842bc --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/include/xdl.h @@ -0,0 +1,92 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +// +// xDL version: 2.0.0 +// +// xDL is an enhanced implementation of the Android DL series functions. +// For more information, documentation, and the latest version please check: +// https://github.com/hexhacking/xDL +// + +#ifndef IO_GITHUB_HEXHACKING_XDL +#define IO_GITHUB_HEXHACKING_XDL + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + // same as Dl_info: + const char *dli_fname; // Pathname of shared object that contains address. + void *dli_fbase; // Address at which shared object is loaded. + const char *dli_sname; // Name of nearest symbol with address lower than addr. + void *dli_saddr; // Exact address of symbol named in dli_sname. + // added by xDL: + size_t dli_ssize; // Symbol size of nearest symbol with address lower than addr. + const ElfW(Phdr) *dlpi_phdr; // Pointer to array of ELF program headers for this object. + size_t dlpi_phnum; // Number of items in dlpi_phdr. +} xdl_info_t; + +// +// Default value for flags in both xdl_open() and xdl_iterate_phdr(). +// +#define XDL_DEFAULT 0x00 + +// +// Enhanced dlopen() / dlclose() / dlsym(). +// +#define XDL_TRY_FORCE_LOAD 0x01 +#define XDL_ALWAYS_FORCE_LOAD 0x02 +void *xdl_open(const char *filename, int flags); +void *xdl_close(void *handle); +void *xdl_sym(void *handle, const char *symbol, size_t *symbol_size); +void *xdl_dsym(void *handle, const char *symbol, size_t *symbol_size); + +// +// Enhanced dladdr(). +// +int xdl_addr(void *addr, xdl_info_t *info, void **cache); +void xdl_addr_clean(void **cache); + +// +// Enhanced dl_iterate_phdr(). +// +#define XDL_FULL_PATHNAME 0x01 +int xdl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), void *data, int flags); + +// +// Custom dlinfo(). +// +#define XDL_DI_DLINFO 1 // type of info: xdl_info_t +int xdl_info(void *handle, int request, void *info); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl.c b/app/src/main/jni/Il2Cpp/xdl/xdl.c new file mode 100644 index 0000000..a707961 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl.c @@ -0,0 +1,910 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +#include "xdl.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xdl_iterate.h" +#include "xdl_linker.h" +#include "xdl_lzma.h" +#include "xdl_util.h" + +#ifndef __LP64__ +#define XDL_LIB_PATH "/system/lib" +#else +#define XDL_LIB_PATH "/system/lib64" +#endif + +#define XDL_DYNSYM_IS_EXPORT_SYM(shndx) (SHN_UNDEF != (shndx)) +#define XDL_SYMTAB_IS_EXPORT_SYM(shndx) \ + (SHN_UNDEF != (shndx) && !((shndx) >= SHN_LORESERVE && (shndx) <= SHN_HIRESERVE)) + +extern __attribute((weak)) unsigned long int getauxval(unsigned long int); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" + +typedef struct xdl { + char *pathname; + uintptr_t load_bias; + const ElfW(Phdr) *dlpi_phdr; + ElfW(Half) dlpi_phnum; + + struct xdl *next; // to next xdl obj for cache in xdl_addr() + void *linker_handle; // hold handle returned by xdl_linker_force_dlopen() + + // + // (1) for searching symbols from .dynsym + // + + bool dynsym_try_load; + ElfW(Sym) *dynsym; // .dynsym + const char *dynstr; // .dynstr + + // .hash (SYSV hash for .dynstr) + struct { + const uint32_t *buckets; + uint32_t buckets_cnt; + const uint32_t *chains; + uint32_t chains_cnt; + } sysv_hash; + + // .gnu.hash (GNU hash for .dynstr) + struct { + const uint32_t *buckets; + uint32_t buckets_cnt; + const uint32_t *chains; + uint32_t symoffset; + const ElfW(Addr) *bloom; + uint32_t bloom_cnt; + uint32_t bloom_shift; + } gnu_hash; + + // + // (2) for searching symbols from .symtab + // + + bool symtab_try_load; + uintptr_t base; + + ElfW(Sym) *symtab; // .symtab + size_t symtab_cnt; + char *strtab; // .strtab + size_t strtab_sz; +} xdl_t; + +#pragma clang diagnostic pop + +// load from memory +static int xdl_dynsym_load(xdl_t *self) { + // find the dynamic segment + ElfW(Dyn) *dynamic = NULL; + for (size_t i = 0; i < self->dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(self->dlpi_phdr[i]); + if (PT_DYNAMIC == phdr->p_type) { + dynamic = (ElfW(Dyn) *)(self->load_bias + phdr->p_vaddr); + break; + } + } + if (NULL == dynamic) return -1; + + // iterate the dynamic segment + for (ElfW(Dyn) *entry = dynamic; entry && entry->d_tag != DT_NULL; entry++) { + switch (entry->d_tag) { + case DT_SYMTAB: //.dynsym + self->dynsym = (ElfW(Sym) *)(self->load_bias + entry->d_un.d_ptr); + break; + case DT_STRTAB: //.dynstr + self->dynstr = (const char *)(self->load_bias + entry->d_un.d_ptr); + break; + case DT_HASH: //.hash + self->sysv_hash.buckets_cnt = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[0]; + self->sysv_hash.chains_cnt = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[1]; + self->sysv_hash.buckets = &(((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[2]); + self->sysv_hash.chains = &(self->sysv_hash.buckets[self->sysv_hash.buckets_cnt]); + break; + case DT_GNU_HASH: //.gnu.hash + self->gnu_hash.buckets_cnt = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[0]; + self->gnu_hash.symoffset = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[1]; + self->gnu_hash.bloom_cnt = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[2]; + self->gnu_hash.bloom_shift = ((const uint32_t *)(self->load_bias + entry->d_un.d_ptr))[3]; + self->gnu_hash.bloom = (const ElfW(Addr) *)(self->load_bias + entry->d_un.d_ptr + 16); + self->gnu_hash.buckets = (const uint32_t *)(&(self->gnu_hash.bloom[self->gnu_hash.bloom_cnt])); + self->gnu_hash.chains = (const uint32_t *)(&(self->gnu_hash.buckets[self->gnu_hash.buckets_cnt])); + break; + default: + break; + } + } + + if (NULL == self->dynsym || NULL == self->dynstr || + (0 == self->sysv_hash.buckets_cnt && 0 == self->gnu_hash.buckets_cnt)) { + self->dynsym = NULL; + self->dynstr = NULL; + self->sysv_hash.buckets_cnt = 0; + self->gnu_hash.buckets_cnt = 0; + return -1; + } + + return 0; +} + +static void *xdl_read_file_to_heap(int file_fd, size_t file_sz, size_t data_offset, size_t data_len) { + if (0 == data_len) return NULL; + if (data_offset >= file_sz) return NULL; + if (data_offset + data_len > file_sz) return NULL; + + if (data_offset != (size_t)lseek(file_fd, (off_t)data_offset, SEEK_SET)) return NULL; + + void *data = malloc(data_len); + if (NULL == data) return NULL; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgnu-statement-expression" + if ((ssize_t)data_len != XDL_UTIL_TEMP_FAILURE_RETRY(read(file_fd, data, data_len))) +#pragma clang diagnostic pop + { + free(data); + return NULL; + } + + return data; +} + +static void *xdl_read_file_to_heap_by_section(int file_fd, size_t file_sz, ElfW(Shdr) *shdr) { + return xdl_read_file_to_heap(file_fd, file_sz, (size_t)shdr->sh_offset, shdr->sh_size); +} + +static void *xdl_read_memory_to_heap(void *mem, size_t mem_sz, size_t data_offset, size_t data_len) { + if (0 == data_len) return NULL; + if (data_offset >= mem_sz) return NULL; + if (data_offset + data_len > mem_sz) return NULL; + + void *data = malloc(data_len); + if (NULL == data) return NULL; + + memcpy(data, (void *)((uintptr_t)mem + data_offset), data_len); + return data; +} + +static void *xdl_read_memory_to_heap_by_section(void *mem, size_t mem_sz, ElfW(Shdr) *shdr) { + return xdl_read_memory_to_heap(mem, mem_sz, (size_t)shdr->sh_offset, shdr->sh_size); +} + +static void *xdl_get_memory(void *mem, size_t mem_sz, size_t data_offset, size_t data_len) { + if (0 == data_len) return NULL; + if (data_offset >= mem_sz) return NULL; + if (data_offset + data_len > mem_sz) return NULL; + + return (void *)((uintptr_t)mem + data_offset); +} + +static void *xdl_get_memory_by_section(void *mem, size_t mem_sz, ElfW(Shdr) *shdr) { + return xdl_get_memory(mem, mem_sz, (size_t)shdr->sh_offset, shdr->sh_size); +} + +// load from disk and memory +static int xdl_symtab_load_from_debugdata(xdl_t *self, int file_fd, size_t file_sz, + ElfW(Shdr) *shdr_debugdata) { + void *debugdata = NULL; + ElfW(Shdr) *shdrs = NULL; + int r = -1; + + // get zipped .gnu_debugdata + uint8_t *debugdata_zip = (uint8_t *)xdl_read_file_to_heap_by_section(file_fd, file_sz, shdr_debugdata); + if (NULL == debugdata_zip) return -1; + + // get unzipped .gnu_debugdata + size_t debugdata_sz; + if (0 != xdl_lzma_decompress(debugdata_zip, shdr_debugdata->sh_size, (uint8_t **)&debugdata, &debugdata_sz)) + goto end; + + // get ELF header + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)debugdata; + if (0 == ehdr->e_shnum || ehdr->e_shentsize != sizeof(ElfW(Shdr))) goto end; + + // get section headers + shdrs = (ElfW(Shdr) *)xdl_read_memory_to_heap(debugdata, debugdata_sz, (size_t)ehdr->e_shoff, + ehdr->e_shentsize * ehdr->e_shnum); + if (NULL == shdrs) goto end; + + // get .shstrtab + if (SHN_UNDEF == ehdr->e_shstrndx || ehdr->e_shstrndx >= ehdr->e_shnum) goto end; + char *shstrtab = (char *)xdl_get_memory_by_section(debugdata, debugdata_sz, shdrs + ehdr->e_shstrndx); + if (NULL == shstrtab) goto end; + + // find .symtab & .strtab + for (ElfW(Shdr) *shdr = shdrs; shdr < shdrs + ehdr->e_shnum; shdr++) { + char *shdr_name = shstrtab + shdr->sh_name; + + if (SHT_SYMTAB == shdr->sh_type && 0 == strcmp(".symtab", shdr_name)) { + // get & check associated .strtab section + if (shdr->sh_link >= ehdr->e_shnum) continue; + ElfW(Shdr) *shdr_strtab = shdrs + shdr->sh_link; + if (SHT_STRTAB != shdr_strtab->sh_type) continue; + + // get .symtab & .strtab + ElfW(Sym) *symtab = (ElfW(Sym) *)xdl_read_memory_to_heap_by_section(debugdata, debugdata_sz, shdr); + if (NULL == symtab) continue; + char *strtab = (char *)xdl_read_memory_to_heap_by_section(debugdata, debugdata_sz, shdr_strtab); + if (NULL == strtab) { + free(symtab); + continue; + } + + // OK + self->symtab = symtab; + self->symtab_cnt = shdr->sh_size / shdr->sh_entsize; + self->strtab = strtab; + self->strtab_sz = shdr_strtab->sh_size; + r = 0; + break; + } + } + +end: + free(debugdata_zip); + if (NULL != debugdata) free(debugdata); + if (NULL != shdrs) free(shdrs); + return r; +} + +// load from disk and memory +static int xdl_symtab_load(xdl_t *self) { + if ('[' == self->pathname[0]) return -1; + + int r = -1; + ElfW(Shdr) *shdrs = NULL; + char *shstrtab = NULL; + + // get base address + uintptr_t vaddr_min = UINTPTR_MAX; + for (size_t i = 0; i < self->dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(self->dlpi_phdr[i]); + if (PT_LOAD == phdr->p_type) { + if (vaddr_min > phdr->p_vaddr) vaddr_min = phdr->p_vaddr; + } + } + if (UINTPTR_MAX == vaddr_min) return -1; + self->base = self->load_bias + vaddr_min; + + // open file + int flags = O_RDONLY | O_CLOEXEC; + int file_fd; + if ('/' == self->pathname[0]) { + file_fd = open(self->pathname, flags); + } else { + char full_pathname[1024]; + // try the fast method + snprintf(full_pathname, sizeof(full_pathname), "%s/%s", XDL_LIB_PATH, self->pathname); + file_fd = open(full_pathname, flags); + if (file_fd < 0) { + // try the slow method + if (0 != xdl_iterate_get_full_pathname(self->base, full_pathname, sizeof(full_pathname))) return -1; + file_fd = open(full_pathname, flags); + } + } + if (file_fd < 0) return -1; + struct stat st; + if (0 != fstat(file_fd, &st)) goto end; + size_t file_sz = (size_t)st.st_size; + + // get ELF header + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)self->base; + if (0 == ehdr->e_shnum || ehdr->e_shentsize != sizeof(ElfW(Shdr))) goto end; + + // get section headers + shdrs = (ElfW(Shdr) *)xdl_read_file_to_heap(file_fd, file_sz, (size_t)ehdr->e_shoff, + ehdr->e_shentsize * ehdr->e_shnum); + if (NULL == shdrs) goto end; + + // get .shstrtab + if (SHN_UNDEF == ehdr->e_shstrndx || ehdr->e_shstrndx >= ehdr->e_shnum) goto end; + shstrtab = (char *)xdl_read_file_to_heap_by_section(file_fd, file_sz, shdrs + ehdr->e_shstrndx); + if (NULL == shstrtab) goto end; + + // find .symtab & .strtab + for (ElfW(Shdr) *shdr = shdrs; shdr < shdrs + ehdr->e_shnum; shdr++) { + char *shdr_name = shstrtab + shdr->sh_name; + + if (SHT_SYMTAB == shdr->sh_type && 0 == strcmp(".symtab", shdr_name)) { + // get & check associated .strtab section + if (shdr->sh_link >= ehdr->e_shnum) continue; + ElfW(Shdr) *shdr_strtab = shdrs + shdr->sh_link; + if (SHT_STRTAB != shdr_strtab->sh_type) continue; + + // get .symtab & .strtab + ElfW(Sym) *symtab = (ElfW(Sym) *)xdl_read_file_to_heap_by_section(file_fd, file_sz, shdr); + if (NULL == symtab) continue; + char *strtab = (char *)xdl_read_file_to_heap_by_section(file_fd, file_sz, shdr_strtab); + if (NULL == strtab) { + free(symtab); + continue; + } + + // OK + self->symtab = symtab; + self->symtab_cnt = shdr->sh_size / shdr->sh_entsize; + self->strtab = strtab; + self->strtab_sz = shdr_strtab->sh_size; + r = 0; + break; + } else if (SHT_PROGBITS == shdr->sh_type && 0 == strcmp(".gnu_debugdata", shdr_name)) { + if (0 == xdl_symtab_load_from_debugdata(self, file_fd, file_sz, shdr)) { + // OK + r = 0; + break; + } + } + } + +end: + close(file_fd); + if (NULL != shdrs) free(shdrs); + if (NULL != shstrtab) free(shstrtab); + return r; +} + +static xdl_t *xdl_find_from_auxv(unsigned long type, const char *pathname) { + if (NULL == getauxval) return NULL; // API level < 18 + + uintptr_t val = (uintptr_t)getauxval(type); + if (0 == val) return NULL; + + // get base + uintptr_t base = (AT_PHDR == type ? (val & (~0xffful)) : val); + if (0 != memcmp((void *)base, ELFMAG, SELFMAG)) return NULL; + + // ELF info + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)base; + const ElfW(Phdr) *dlpi_phdr = (const ElfW(Phdr) *)(base + ehdr->e_phoff); + ElfW(Half) dlpi_phnum = ehdr->e_phnum; + + // get bias + uintptr_t min_vaddr = UINTPTR_MAX; + for (size_t i = 0; i < dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(dlpi_phdr[i]); + if (PT_LOAD == phdr->p_type) { + if (min_vaddr > phdr->p_vaddr) min_vaddr = phdr->p_vaddr; + } + } + if (UINTPTR_MAX == min_vaddr || base < min_vaddr) return NULL; + uintptr_t load_bias = base - min_vaddr; + + // create xDL object + xdl_t *self; + if (NULL == (self = calloc(1, sizeof(xdl_t)))) return NULL; + if (NULL == (self->pathname = strdup(pathname))) { + free(self); + return NULL; + } + self->load_bias = load_bias; + self->dlpi_phdr = dlpi_phdr; + self->dlpi_phnum = dlpi_phnum; + self->dynsym_try_load = false; + self->symtab_try_load = false; + return self; +} + +static int xdl_find_iterate_cb(struct dl_phdr_info *info, size_t size, void *arg) { + (void)size; + + uintptr_t *pkg = (uintptr_t *)arg; + xdl_t **self = (xdl_t **)*pkg++; + const char *filename = (const char *)*pkg; + + // check load_bias + if (0 == info->dlpi_addr || NULL == info->dlpi_name) return 0; + + // check pathname + if ('[' == filename[0]) { + if (0 != strcmp(info->dlpi_name, filename)) return 0; + } else if ('/' == filename[0]) { + if ('/' == info->dlpi_name[0]) { + if (0 != strcmp(info->dlpi_name, filename)) return 0; + } else { + if (!xdl_util_ends_with(filename, info->dlpi_name)) return 0; + } + } else { + if ('/' == info->dlpi_name[0]) { + if (!xdl_util_ends_with(info->dlpi_name, filename)) return 0; + } else { + if (0 != strcmp(info->dlpi_name, filename)) return 0; + } + } + + // found the target ELF + if (NULL == ((*self) = calloc(1, sizeof(xdl_t)))) return 1; // return failed + if (NULL == ((*self)->pathname = strdup(info->dlpi_name))) { + free(*self); + *self = NULL; + return 1; // return failed + } + (*self)->load_bias = info->dlpi_addr; + (*self)->dlpi_phdr = info->dlpi_phdr; + (*self)->dlpi_phnum = info->dlpi_phnum; + (*self)->dynsym_try_load = false; + (*self)->symtab_try_load = false; + return 1; // return OK +} + +static xdl_t *xdl_find(const char *filename) { + // from auxv (linker, vDSO) + xdl_t *self = NULL; + if (xdl_util_ends_with(filename, XDL_UTIL_LINKER_BASENAME)) + self = xdl_find_from_auxv(AT_BASE, XDL_UTIL_LINKER_PATHNAME); + else if (xdl_util_ends_with(filename, XDL_UTIL_VDSO_BASENAME)) + self = xdl_find_from_auxv(AT_SYSINFO_EHDR, XDL_UTIL_VDSO_BASENAME); + + // from auxv (app_process) + const char *basename, *pathname; +#if (defined(__arm__) || defined(__i386__)) && __ANDROID_API__ < __ANDROID_API_L__ + if (xdl_util_get_api_level() < __ANDROID_API_L__) { + basename = XDL_UTIL_APP_PROCESS_BASENAME_K; + pathname = XDL_UTIL_APP_PROCESS_PATHNAME_K; + } else +#endif + { + basename = XDL_UTIL_APP_PROCESS_BASENAME; + pathname = XDL_UTIL_APP_PROCESS_PATHNAME; + } + if (xdl_util_ends_with(filename, basename)) self = xdl_find_from_auxv(AT_PHDR, pathname); + + if (NULL != self) return self; + + // from dl_iterate_phdr + uintptr_t pkg[2] = {(uintptr_t)&self, (uintptr_t)filename}; + xdl_iterate_phdr(xdl_find_iterate_cb, pkg, XDL_DEFAULT); + return self; +} + +static void *xdl_open_always_force(const char *filename) { + // always force dlopen() + void *linker_handle = xdl_linker_force_dlopen(filename); + if (NULL == linker_handle) return NULL; + + // find + xdl_t *self = xdl_find(filename); + if (NULL == self) + dlclose(linker_handle); + else + self->linker_handle = linker_handle; + + return (void *)self; +} + +static void *xdl_open_try_force(const char *filename) { + // find + xdl_t *self = xdl_find(filename); + if (NULL != self) return (void *)self; + + // try force dlopen() + void *linker_handle = xdl_linker_force_dlopen(filename); + if (NULL == linker_handle) return NULL; + + // find again + self = xdl_find(filename); + if (NULL == self) + dlclose(linker_handle); + else + self->linker_handle = linker_handle; + + return (void *)self; +} + +void *xdl_open(const char *filename, int flags) { + if (NULL == filename) return NULL; + + if (flags & XDL_ALWAYS_FORCE_LOAD) + return xdl_open_always_force(filename); + else if (flags & XDL_TRY_FORCE_LOAD) + return xdl_open_try_force(filename); + else + return xdl_find(filename); +} + +void *xdl_close(void *handle) { + if (NULL == handle) return NULL; + + xdl_t *self = (xdl_t *)handle; + if (NULL != self->pathname) free(self->pathname); + if (NULL != self->symtab) free(self->symtab); + if (NULL != self->strtab) free(self->strtab); + + void *linker_handle = self->linker_handle; + free(self); + return linker_handle; +} + +static uint32_t xdl_sysv_hash(const uint8_t *name) { + uint32_t h = 0, g; + + while (*name) { + h = (h << 4) + *name++; + g = h & 0xf0000000; + h ^= g; + h ^= g >> 24; + } + return h; +} + +static uint32_t xdl_gnu_hash(const uint8_t *name) { + uint32_t h = 5381; + + while (*name) { + h += (h << 5) + *name++; + } + return h; +} + +static ElfW(Sym) *xdl_dynsym_find_symbol_use_sysv_hash(xdl_t *self, const char *sym_name) { + uint32_t hash = xdl_sysv_hash((const uint8_t *)sym_name); + + for (uint32_t i = self->sysv_hash.buckets[hash % self->sysv_hash.buckets_cnt]; 0 != i; + i = self->sysv_hash.chains[i]) { + ElfW(Sym) *sym = self->dynsym + i; + if (0 != strcmp(self->dynstr + sym->st_name, sym_name)) continue; + return sym; + } + + return NULL; +} + +static ElfW(Sym) *xdl_dynsym_find_symbol_use_gnu_hash(xdl_t *self, const char *sym_name) { + uint32_t hash = xdl_gnu_hash((const uint8_t *)sym_name); + + static uint32_t elfclass_bits = sizeof(ElfW(Addr)) * 8; + size_t word = self->gnu_hash.bloom[(hash / elfclass_bits) % self->gnu_hash.bloom_cnt]; + size_t mask = 0 | (size_t)1 << (hash % elfclass_bits) | + (size_t)1 << ((hash >> self->gnu_hash.bloom_shift) % elfclass_bits); + + // if at least one bit is not set, this symbol is surely missing + if ((word & mask) != mask) return NULL; + + // ignore STN_UNDEF + uint32_t i = self->gnu_hash.buckets[hash % self->gnu_hash.buckets_cnt]; + if (i < self->gnu_hash.symoffset) return NULL; + + // loop through the chain + while (1) { + ElfW(Sym) *sym = self->dynsym + i; + uint32_t sym_hash = self->gnu_hash.chains[i - self->gnu_hash.symoffset]; + + if ((hash | (uint32_t)1) == (sym_hash | (uint32_t)1)) { + if (0 == strcmp(self->dynstr + sym->st_name, sym_name)) { + return sym; + } + } + + // chain ends with an element with the lowest bit set to 1 + if (sym_hash & (uint32_t)1) break; + + i++; + } + + return NULL; +} + +void *xdl_sym(void *handle, const char *symbol, size_t *symbol_size) { + if (NULL == handle || NULL == symbol) return NULL; + if (NULL != symbol_size) *symbol_size = 0; + + xdl_t *self = (xdl_t *)handle; + + // load .dynsym only once + if (!self->dynsym_try_load) { + self->dynsym_try_load = true; + if (0 != xdl_dynsym_load(self)) return NULL; + } + + // find symbol + if (NULL == self->dynsym) return NULL; + ElfW(Sym) *sym = NULL; + if (self->gnu_hash.buckets_cnt > 0) { + // use GNU hash (.gnu.hash -> .dynsym -> .dynstr), O(x) + O(1) + O(1) + sym = xdl_dynsym_find_symbol_use_gnu_hash(self, symbol); + } + if (NULL == sym && self->sysv_hash.buckets_cnt > 0) { + // use SYSV hash (.hash -> .dynsym -> .dynstr), O(x) + O(1) + O(1) + sym = xdl_dynsym_find_symbol_use_sysv_hash(self, symbol); + } + if (NULL == sym || !XDL_DYNSYM_IS_EXPORT_SYM(sym->st_shndx)) return NULL; + + if (NULL != symbol_size) *symbol_size = sym->st_size; + return (void *)(self->load_bias + sym->st_value); +} + +// clang-format off +/* + * For internal symbols in .symtab, LLVM may add some suffixes (for example for thinLTO). + * The format of the suffix is: ".xxxx.[hash]". LLVM may add multiple suffixes at once. + * The symbol name after removing these all suffixes is called canonical name. + * + * Because the hash part in the suffix may change when recompiled, so here we only match + * the canonical name. + * + * IN ADDITION: According to C/C++ syntax, it is illegal for a function name to contain + * dot character('.'), either in the middle or at the end. + * + * samples: + * + * symbol name in .symtab lookup is match + * ---------------------- ---------------- -------- + * abcd abc N + * abcd abcd Y + * abcd.llvm.10190306339727611508 abc N + * abcd.llvm.10190306339727611508 abcd Y + * abcd.llvm.10190306339727611508 abcd. N + * abcd.llvm.10190306339727611508 abcd.llvm Y + * abcd.llvm.10190306339727611508 abcd.llvm. N + * abcd.__uniq.513291356003753 abcd.__uniq.51329 N + * abcd.__uniq.513291356003753 abcd.__uniq.513291356003753 Y + */ +// clang-format on +static inline bool xdl_dsym_is_match(const char *str, const char *sym, size_t str_len) { + if (__predict_false(0 == str_len)) return false; + + do { + if (*str != *sym) return __predict_false('.' == *str && '\0' == *sym); + str++; + sym++; + if ('\0' == *str) break; + } while (0 != --str_len); + + return true; +} + +void *xdl_dsym(void *handle, const char *symbol, size_t *symbol_size) { + if (NULL == handle || NULL == symbol) return NULL; + if (NULL != symbol_size) *symbol_size = 0; + + xdl_t *self = (xdl_t *)handle; + + // load .symtab only once + if (!self->symtab_try_load) { + self->symtab_try_load = true; + if (0 != xdl_symtab_load(self)) return NULL; + } + + // find symbol + if (NULL == self->symtab) return NULL; + for (size_t i = 0; i < self->symtab_cnt; i++) { + ElfW(Sym) *sym = self->symtab + i; + + if (!XDL_SYMTAB_IS_EXPORT_SYM(sym->st_shndx)) continue; + // if (0 != strncmp(self->strtab + sym->st_name, symbol, self->strtab_sz - sym->st_name)) continue; + if (!xdl_dsym_is_match(self->strtab + sym->st_name, symbol, self->strtab_sz - sym->st_name)) continue; + + if (NULL != symbol_size) *symbol_size = sym->st_size; + return (void *)(self->load_bias + sym->st_value); + } + + return NULL; +} + +static bool xdl_elf_is_match(uintptr_t load_bias, const ElfW(Phdr) *dlpi_phdr, ElfW(Half) dlpi_phnum, + uintptr_t addr) { + if (addr < load_bias) return false; + + uintptr_t vaddr = addr - load_bias; + for (size_t i = 0; i < dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(dlpi_phdr[i]); + if (PT_LOAD != phdr->p_type) continue; + + if (phdr->p_vaddr <= vaddr && vaddr < phdr->p_vaddr + phdr->p_memsz) return true; + } + + return false; +} + +static int xdl_open_by_addr_iterate_cb(struct dl_phdr_info *info, size_t size, void *arg) { + (void)size; + + uintptr_t *pkg = (uintptr_t *)arg; + xdl_t **self = (xdl_t **)*pkg++; + uintptr_t addr = *pkg; + + if (xdl_elf_is_match(info->dlpi_addr, info->dlpi_phdr, info->dlpi_phnum, addr)) { + // found the target ELF + if (NULL == ((*self) = calloc(1, sizeof(xdl_t)))) return 1; // failed + if (NULL == ((*self)->pathname = strdup(info->dlpi_name))) { + free(*self); + *self = NULL; + return 1; // failed + } + (*self)->load_bias = info->dlpi_addr; + (*self)->dlpi_phdr = info->dlpi_phdr; + (*self)->dlpi_phnum = info->dlpi_phnum; + (*self)->dynsym_try_load = false; + (*self)->symtab_try_load = false; + return 1; // OK + } + + return 0; // mismatch +} + +static void *xdl_open_by_addr(void *addr) { + if (NULL == addr) return NULL; + + xdl_t *self = NULL; + uintptr_t pkg[2] = {(uintptr_t)&self, (uintptr_t)addr}; + xdl_iterate_phdr(xdl_open_by_addr_iterate_cb, pkg, XDL_DEFAULT); + + return (void *)self; +} + +static bool xdl_sym_is_match(ElfW(Sym) *sym, uintptr_t offset, bool is_symtab) { + if (is_symtab) { + if (!XDL_SYMTAB_IS_EXPORT_SYM(sym->st_shndx)) false; + } else { + if (!XDL_DYNSYM_IS_EXPORT_SYM(sym->st_shndx)) false; + } + + return ELF_ST_TYPE(sym->st_info) != STT_TLS && offset >= sym->st_value && + offset < sym->st_value + sym->st_size; +} + +static ElfW(Sym) *xdl_sym_by_addr(void *handle, void *addr) { + xdl_t *self = (xdl_t *)handle; + + // load .dynsym only once + if (!self->dynsym_try_load) { + self->dynsym_try_load = true; + if (0 != xdl_dynsym_load(self)) return NULL; + } + + // find symbol + if (NULL == self->dynsym) return NULL; + uintptr_t offset = (uintptr_t)addr - self->load_bias; + if (self->gnu_hash.buckets_cnt > 0) { + const uint32_t *chains_all = self->gnu_hash.chains - self->gnu_hash.symoffset; + for (size_t i = 0; i < self->gnu_hash.buckets_cnt; i++) { + uint32_t n = self->gnu_hash.buckets[i]; + if (n < self->gnu_hash.symoffset) continue; + do { + ElfW(Sym) *sym = self->dynsym + n; + if (xdl_sym_is_match(sym, offset, false)) return sym; + } while ((chains_all[n++] & 1) == 0); + } + } else if (self->sysv_hash.chains_cnt > 0) { + for (size_t i = 0; i < self->sysv_hash.chains_cnt; i++) { + ElfW(Sym) *sym = self->dynsym + i; + if (xdl_sym_is_match(sym, offset, false)) return sym; + } + } + + return NULL; +} + +static ElfW(Sym) *xdl_dsym_by_addr(void *handle, void *addr) { + xdl_t *self = (xdl_t *)handle; + + // load .symtab only once + if (!self->symtab_try_load) { + self->symtab_try_load = true; + if (0 != xdl_symtab_load(self)) return NULL; + } + + // find symbol + if (NULL == self->symtab) return NULL; + uintptr_t offset = (uintptr_t)addr - self->load_bias; + for (size_t i = 0; i < self->symtab_cnt; i++) { + ElfW(Sym) *sym = self->symtab + i; + if (xdl_sym_is_match(sym, offset, true)) return sym; + } + + return NULL; +} + +int xdl_addr(void *addr, xdl_info_t *info, void **cache) { + if (NULL == addr || NULL == info || NULL == cache) return 0; + + memset(info, 0, sizeof(Dl_info)); + + // find handle from cache + xdl_t *handle = NULL; + for (handle = *((xdl_t **)cache); NULL != handle; handle = handle->next) + if (xdl_elf_is_match(handle->load_bias, handle->dlpi_phdr, handle->dlpi_phnum, (uintptr_t)addr)) break; + + // create new handle, save handle to cache + if (NULL == handle) { + handle = (xdl_t *)xdl_open_by_addr(addr); + if (NULL == handle) return 0; + handle->next = *(xdl_t **)cache; + *(xdl_t **)cache = handle; + } + + // we have at least: load_bias, pathname, dlpi_phdr, dlpi_phnum + info->dli_fbase = (void *)handle->load_bias; + info->dli_fname = handle->pathname; + info->dli_sname = NULL; + info->dli_saddr = 0; + info->dli_ssize = 0; + info->dlpi_phdr = handle->dlpi_phdr; + info->dlpi_phnum = (size_t)handle->dlpi_phnum; + + // keep looking for: symbol name, symbol offset, symbol size + ElfW(Sym) *sym; + if (NULL != (sym = xdl_sym_by_addr((void *)handle, addr))) { + info->dli_sname = handle->dynstr + sym->st_name; + info->dli_saddr = (void *)(handle->load_bias + sym->st_value); + info->dli_ssize = sym->st_size; + } else if (NULL != (sym = xdl_dsym_by_addr((void *)handle, addr))) { + info->dli_sname = handle->strtab + sym->st_name; + info->dli_saddr = (void *)(handle->load_bias + sym->st_value); + info->dli_ssize = sym->st_size; + } + + return 1; +} + +void xdl_addr_clean(void **cache) { + if (NULL == cache) return; + + xdl_t *handle = *((xdl_t **)cache); + while (NULL != handle) { + xdl_t *tmp = handle; + handle = handle->next; + xdl_close(tmp); + } + *cache = NULL; +} + +int xdl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), void *data, int flags) { + if (NULL == callback) return 0; + + return xdl_iterate_phdr_impl(callback, data, flags); +} + +int xdl_info(void *handle, int request, void *info) { + if (NULL == handle || XDL_DI_DLINFO != request || NULL == info) return -1; + + xdl_t *self = (xdl_t *)handle; + xdl_info_t *dlinfo = (xdl_info_t *)info; + + dlinfo->dli_fbase = (void *)self->load_bias; + dlinfo->dli_fname = self->pathname; + dlinfo->dli_sname = NULL; + dlinfo->dli_saddr = 0; + dlinfo->dli_ssize = 0; + dlinfo->dlpi_phdr = self->dlpi_phdr; + dlinfo->dlpi_phnum = (size_t)self->dlpi_phnum; + return 0; +} diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl.map.txt b/app/src/main/jni/Il2Cpp/xdl/xdl.map.txt new file mode 100644 index 0000000..53bb28b --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl.map.txt @@ -0,0 +1,14 @@ +{ + global: + xdl_open; + xdl_close; + xdl_sym; + xdl_dsym; + xdl_addr; + xdl_addr_clean; + xdl_iterate_phdr; + xdl_info; + + local: + *; +}; diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.c b/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.c new file mode 100644 index 0000000..b89b642 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.c @@ -0,0 +1,297 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +#include "xdl_iterate.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xdl.h" +#include "xdl_linker.h" +#include "xdl_util.h" + +/* + * ========================================================================================================= + * API-LEVEL ANDROID-VERSION SOLUTION + * ========================================================================================================= + * 16 4.1 /proc/self/maps + * 17 4.2 /proc/self/maps + * 18 4.3 /proc/self/maps + * 19 4.4 /proc/self/maps + * 20 4.4W /proc/self/maps + * --------------------------------------------------------------------------------------------------------- + * 21 5.0 dl_iterate_phdr() + __dl__ZL10g_dl_mutex + linker/linker64 from getauxval(3) + * 22 5.1 dl_iterate_phdr() + __dl__ZL10g_dl_mutex + linker/linker64 from getauxval(3) + * --------------------------------------------------------------------------------------------------------- + * 23 >= 6.0 dl_iterate_phdr() + linker/linker64 from getauxval(3) + * ========================================================================================================= + */ + +extern __attribute((weak)) int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *); +extern __attribute((weak)) unsigned long int getauxval(unsigned long int); + +static uintptr_t xdl_iterate_get_min_vaddr(struct dl_phdr_info *info) { + uintptr_t min_vaddr = UINTPTR_MAX; + for (size_t i = 0; i < info->dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(info->dlpi_phdr[i]); + if (PT_LOAD == phdr->p_type) { + if (min_vaddr > phdr->p_vaddr) min_vaddr = phdr->p_vaddr; + } + } + return min_vaddr; +} + +static int xdl_iterate_open_or_rewind_maps(FILE **maps) { + if (NULL == *maps) { + *maps = fopen("/proc/self/maps", "r"); + if (NULL == *maps) return -1; + } else + rewind(*maps); + + return 0; +} + +static int xdl_iterate_get_pathname_from_maps(uintptr_t base, char *buf, size_t buf_len, FILE **maps) { + // open or rewind maps-file + if (0 != xdl_iterate_open_or_rewind_maps(maps)) return -1; // failed + + char line[1024]; + while (fgets(line, sizeof(line), *maps)) { + // check base address + uintptr_t start, end; + if (2 != sscanf(line, "%" SCNxPTR "-%" SCNxPTR " r", &start, &end)) continue; + if (base < start) break; // failed + if (base >= end) continue; + + // get pathname + char *pathname = strchr(line, '/'); + if (NULL == pathname) break; // failed + xdl_util_trim_ending(pathname); + + // found it + strlcpy(buf, pathname, buf_len); + return 0; // OK + } + + return -1; // failed +} + +static int xdl_iterate_by_linker_cb(struct dl_phdr_info *info, size_t size, void *arg) { + uintptr_t *pkg = (uintptr_t *)arg; + xdl_iterate_phdr_cb_t cb = (xdl_iterate_phdr_cb_t)*pkg++; + void *cb_arg = (void *)*pkg++; + FILE **maps = (FILE **)*pkg++; + uintptr_t linker_load_bias = *pkg++; + int flags = (int)*pkg; + + // ignore invalid ELF + if (0 == info->dlpi_addr || NULL == info->dlpi_name || '\0' == info->dlpi_name[0]) return 0; + + // ignore linker if we have returned it already + if (linker_load_bias == info->dlpi_addr) return 0; + + struct dl_phdr_info info_fixed; + info_fixed.dlpi_addr = info->dlpi_addr; + info_fixed.dlpi_name = info->dlpi_name; + info_fixed.dlpi_phdr = info->dlpi_phdr; + info_fixed.dlpi_phnum = info->dlpi_phnum; + info = &info_fixed; + + // fix dlpi_phdr & dlpi_phnum (from memory) + if (NULL == info->dlpi_phdr || 0 == info->dlpi_phnum) { + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)info->dlpi_addr; + info->dlpi_phdr = (ElfW(Phdr) *)(info->dlpi_addr + ehdr->e_phoff); + info->dlpi_phnum = ehdr->e_phnum; + } + + // fix dlpi_name (from /proc/self/maps) + if ('/' != info->dlpi_name[0] && '[' != info->dlpi_name[0] && (0 != (flags & XDL_FULL_PATHNAME))) { + // get base address + uintptr_t min_vaddr = xdl_iterate_get_min_vaddr(info); + if (UINTPTR_MAX == min_vaddr) return 0; // ignore this ELF + uintptr_t base = (uintptr_t)(info->dlpi_addr + min_vaddr); + + char buf[1024]; + if (0 != xdl_iterate_get_pathname_from_maps(base, buf, sizeof(buf), maps)) return 0; // ignore this ELF + + info->dlpi_name = (const char *)buf; + } + + // callback + return cb(info, size, cb_arg); +} + +static uintptr_t xdl_iterate_get_linker_base(void) { + if (NULL == getauxval) return 0; + + uintptr_t base = (uintptr_t)getauxval(AT_BASE); + if (0 == base) return 0; + if (0 != memcmp((void *)base, ELFMAG, SELFMAG)) return 0; + + return base; +} + +static int xdl_iterate_do_callback(xdl_iterate_phdr_cb_t cb, void *cb_arg, uintptr_t base, + const char *pathname, uintptr_t *load_bias) { + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)base; + + struct dl_phdr_info info; + info.dlpi_name = pathname; + info.dlpi_phdr = (const ElfW(Phdr) *)(base + ehdr->e_phoff); + info.dlpi_phnum = ehdr->e_phnum; + + // get load bias + uintptr_t min_vaddr = xdl_iterate_get_min_vaddr(&info); + if (UINTPTR_MAX == min_vaddr) return 0; // ignore invalid ELF + info.dlpi_addr = (ElfW(Addr))(base - min_vaddr); + if (NULL != load_bias) *load_bias = info.dlpi_addr; + + return cb(&info, sizeof(struct dl_phdr_info), cb_arg); +} + +static int xdl_iterate_by_linker(xdl_iterate_phdr_cb_t cb, void *cb_arg, int flags) { + if (NULL == dl_iterate_phdr) return 0; + + int api_level = xdl_util_get_api_level(); + FILE *maps = NULL; + int r; + + // dl_iterate_phdr(3) does NOT contain linker/linker64 when Android version < 8.1 (API level 27). + // Here we always try to get linker base address from auxv. + uintptr_t linker_load_bias = 0; + uintptr_t linker_base = xdl_iterate_get_linker_base(); + if (0 != linker_base) { + if (0 != + (r = xdl_iterate_do_callback(cb, cb_arg, linker_base, XDL_UTIL_LINKER_PATHNAME, &linker_load_bias))) + return r; + } + + // for other ELF + uintptr_t pkg[5] = {(uintptr_t)cb, (uintptr_t)cb_arg, (uintptr_t)&maps, linker_load_bias, (uintptr_t)flags}; + if (__ANDROID_API_L__ == api_level || __ANDROID_API_L_MR1__ == api_level) xdl_linker_lock(); + r = dl_iterate_phdr(xdl_iterate_by_linker_cb, pkg); + if (__ANDROID_API_L__ == api_level || __ANDROID_API_L_MR1__ == api_level) xdl_linker_unlock(); + + if (NULL != maps) fclose(maps); + return r; +} + +#if (defined(__arm__) || defined(__i386__)) && __ANDROID_API__ < __ANDROID_API_L__ +static int xdl_iterate_by_maps(xdl_iterate_phdr_cb_t cb, void *cb_arg) { + FILE *maps = fopen("/proc/self/maps", "r"); + if (NULL == maps) return 0; + + int r = 0; + char buf1[1024], buf2[1024]; + char *line = buf1; + uintptr_t prev_base = 0; + bool try_next_line = false; + + while (fgets(line, sizeof(buf1), maps)) { + // Try to find an ELF which loaded by linker. + uintptr_t base, offset; + char exec; + if (3 != sscanf(line, "%" SCNxPTR "-%*" SCNxPTR " r%*c%cp %" SCNxPTR " ", &base, &exec, &offset)) + goto clean; + + if ('-' == exec && 0 == offset) { + // r--p + prev_base = base; + line = (line == buf1 ? buf2 : buf1); + try_next_line = true; + continue; + } else if (exec == 'x') { + // r-xp + char *pathname = NULL; + if (try_next_line && 0 != offset) { + char *prev = (line == buf1 ? buf2 : buf1); + char *prev_pathname = strchr(prev, '/'); + if (NULL == prev_pathname) goto clean; + + pathname = strchr(line, '/'); + if (NULL == pathname) goto clean; + + xdl_util_trim_ending(prev_pathname); + xdl_util_trim_ending(pathname); + if (0 != strcmp(prev_pathname, pathname)) goto clean; + + // we found the line with r-xp in the next line + base = prev_base; + offset = 0; + } + + if (0 != offset) goto clean; + + // get pathname + if (NULL == pathname) { + pathname = strchr(line, '/'); + if (NULL == pathname) goto clean; + xdl_util_trim_ending(pathname); + } + + if (0 != memcmp((void *)base, ELFMAG, SELFMAG)) goto clean; + ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)base; + struct dl_phdr_info info; + info.dlpi_name = pathname; + info.dlpi_phdr = (const ElfW(Phdr) *)(base + ehdr->e_phoff); + info.dlpi_phnum = ehdr->e_phnum; + + // callback + if (0 != (r = xdl_iterate_do_callback(cb, cb_arg, base, pathname, NULL))) break; + } + + clean: + try_next_line = false; + } + + fclose(maps); + return r; +} +#endif + +int xdl_iterate_phdr_impl(xdl_iterate_phdr_cb_t cb, void *cb_arg, int flags) { + // iterate by /proc/self/maps in Android 4.x (Android 4.x only supports arm32 and x86) +#if (defined(__arm__) || defined(__i386__)) && __ANDROID_API__ < __ANDROID_API_L__ + if (xdl_util_get_api_level() < __ANDROID_API_L__) return xdl_iterate_by_maps(cb, cb_arg); +#endif + + // iterate by dl_iterate_phdr() + return xdl_iterate_by_linker(cb, cb_arg, flags); +} + +int xdl_iterate_get_full_pathname(uintptr_t base, char *buf, size_t buf_len) { + FILE *maps = NULL; + int r = xdl_iterate_get_pathname_from_maps(base, buf, buf_len, &maps); + if (NULL != maps) fclose(maps); + return r; +} diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.h b/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.h new file mode 100644 index 0000000..ab22866 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_iterate.h @@ -0,0 +1,43 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +#ifndef IO_GITHUB_HEXHACKING_XDL_ITERATE +#define IO_GITHUB_HEXHACKING_XDL_ITERATE + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int (*xdl_iterate_phdr_cb_t)(struct dl_phdr_info *info, size_t size, void *arg); +int xdl_iterate_phdr_impl(xdl_iterate_phdr_cb_t cb, void *cb_arg, int flags); + +int xdl_iterate_get_full_pathname(uintptr_t base, char *buf, size_t buf_len); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_linker.c b/app/src/main/jni/Il2Cpp/xdl/xdl_linker.c new file mode 100644 index 0000000..8e6cf15 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_linker.c @@ -0,0 +1,208 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2021-02-21. + +#include "xdl_linker.h" + +#include +#include +#include +#include + +#include "xdl.h" +#include "xdl_iterate.h" +#include "xdl_util.h" + +#define XDL_LINKER_SYM_MUTEX "__dl__ZL10g_dl_mutex" +#define XDL_LINKER_SYM_DLOPEN_EXT_N "__dl__ZL10dlopen_extPKciPK17android_dlextinfoPv" +#define XDL_LINKER_SYM_DO_DLOPEN_N "__dl__Z9do_dlopenPKciPK17android_dlextinfoPv" +#define XDL_LINKER_SYM_DLOPEN_O "__dl__Z8__dlopenPKciPKv" +#define XDL_LINKER_SYM_LOADER_DLOPEN_P "__loader_dlopen" + +typedef void *(*xdl_linker_dlopen_n_t)(const char *, int, const void *, void *); +typedef void *(*xdl_linker_dlopen_o_t)(const char *, int, const void *); + +static pthread_mutex_t *xdl_linker_mutex = NULL; +static void *xdl_linker_dlopen = NULL; + +static void *xdl_linker_caller_addr[] = { + NULL, // default + NULL, // art + NULL // vendor +}; + +#ifndef __LP64__ +#define XDL_LINKER_LIB "lib" +#else +#define XDL_LINKER_LIB "lib64" +#endif +static const char *xdl_linker_vendor_path[] = { + // order is important + "/vendor/" XDL_LINKER_LIB "/egl/", "/vendor/" XDL_LINKER_LIB "/hw/", + "/vendor/" XDL_LINKER_LIB "/", "/odm/" XDL_LINKER_LIB "/", + "/vendor/" XDL_LINKER_LIB "/vndk-sp/", "/odm/" XDL_LINKER_LIB "/vndk-sp/"}; + +static void xdl_linker_init_symbols_impl(void) { + // find linker from: /proc/self/maps (API level < 18) or getauxval (API level >= 18) + void *handle = xdl_open(XDL_UTIL_LINKER_BASENAME, XDL_DEFAULT); + if (NULL == handle) return; + + int api_level = xdl_util_get_api_level(); + if (__ANDROID_API_L__ == api_level || __ANDROID_API_L_MR1__ == api_level) { + // == Android 5.x + xdl_linker_mutex = (pthread_mutex_t *)xdl_dsym(handle, XDL_LINKER_SYM_MUTEX, NULL); + } else if (__ANDROID_API_N__ == api_level || __ANDROID_API_N_MR1__ == api_level) { + // == Android 7.x + xdl_linker_dlopen = xdl_dsym(handle, XDL_LINKER_SYM_DLOPEN_EXT_N, NULL); + if (NULL == xdl_linker_dlopen) { + xdl_linker_dlopen = xdl_dsym(handle, XDL_LINKER_SYM_DO_DLOPEN_N, NULL); + xdl_linker_mutex = (pthread_mutex_t *)xdl_dsym(handle, XDL_LINKER_SYM_MUTEX, NULL); + } + } else if (__ANDROID_API_O__ == api_level || __ANDROID_API_O_MR1__ == api_level) { + // == Android 8.x + xdl_linker_dlopen = xdl_dsym(handle, XDL_LINKER_SYM_DLOPEN_O, NULL); + } else if (api_level >= __ANDROID_API_P__) { + // >= Android 9.0 + xdl_linker_dlopen = xdl_sym(handle, XDL_LINKER_SYM_LOADER_DLOPEN_P, NULL); + } + + xdl_close(handle); +} + +static void xdl_linker_init_symbols(void) { + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + static bool inited = false; + if (!inited) { + pthread_mutex_lock(&lock); + if (!inited) { + xdl_linker_init_symbols_impl(); + inited = true; + } + pthread_mutex_unlock(&lock); + } +} + +void xdl_linker_lock(void) { + xdl_linker_init_symbols(); + + if (NULL != xdl_linker_mutex) pthread_mutex_lock(xdl_linker_mutex); +} + +void xdl_linker_unlock(void) { + if (NULL != xdl_linker_mutex) pthread_mutex_unlock(xdl_linker_mutex); +} + +static void *xdl_linker_get_caller_addr(struct dl_phdr_info *info) { + for (size_t i = 0; i < info->dlpi_phnum; i++) { + const ElfW(Phdr) *phdr = &(info->dlpi_phdr[i]); + if (PT_LOAD == phdr->p_type) { + return (void *)(info->dlpi_addr + phdr->p_vaddr); + } + } + return NULL; +} + +static int xdl_linker_get_caller_addr_cb(struct dl_phdr_info *info, size_t size, void *arg) { + (void)size; + + size_t *vendor_match = (size_t *)arg; + + if (0 == info->dlpi_addr || NULL == info->dlpi_name) return 0; // continue + + if (NULL == xdl_linker_caller_addr[0] && xdl_util_ends_with(info->dlpi_name, "/libc.so")) + xdl_linker_caller_addr[0] = xdl_linker_get_caller_addr(info); + + if (NULL == xdl_linker_caller_addr[1] && xdl_util_ends_with(info->dlpi_name, "/libart.so")) + xdl_linker_caller_addr[1] = xdl_linker_get_caller_addr(info); + + if (0 != *vendor_match) { + for (size_t i = 0; i < *vendor_match; i++) { + if (xdl_util_starts_with(info->dlpi_name, xdl_linker_vendor_path[i])) { + void *caller_addr = xdl_linker_get_caller_addr(info); + if (NULL != caller_addr) { + xdl_linker_caller_addr[2] = caller_addr; + *vendor_match = i; + } + } + } + } + + if (NULL != xdl_linker_caller_addr[0] && NULL != xdl_linker_caller_addr[1] && 0 == *vendor_match) { + return 1; // finish + } else { + return 0; // continue + } +} + +static void xdl_linker_init_caller_addr_impl(void) { + size_t vendor_match = sizeof(xdl_linker_vendor_path) / sizeof(xdl_linker_vendor_path[0]); + xdl_iterate_phdr_impl(xdl_linker_get_caller_addr_cb, &vendor_match, XDL_DEFAULT); +} + +static void xdl_linker_init_caller_addr(void) { + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + static bool inited = false; + if (!inited) { + pthread_mutex_lock(&lock); + if (!inited) { + xdl_linker_init_caller_addr_impl(); + inited = true; + } + pthread_mutex_unlock(&lock); + } +} + +void *xdl_linker_force_dlopen(const char *filename) { + int api_level = xdl_util_get_api_level(); + + if (api_level <= __ANDROID_API_M__) { + // <= Android 6.0 + return dlopen(filename, RTLD_NOW); + } else { + xdl_linker_init_symbols(); + if (NULL == xdl_linker_dlopen) return NULL; + xdl_linker_init_caller_addr(); + + void *handle = NULL; + if (__ANDROID_API_N__ == api_level || __ANDROID_API_N_MR1__ == api_level) { + // == Android 7.x + xdl_linker_lock(); + for (size_t i = 0; i < sizeof(xdl_linker_caller_addr) / sizeof(xdl_linker_caller_addr[0]); i++) { + if (NULL != xdl_linker_caller_addr[i]) { + handle = + ((xdl_linker_dlopen_n_t)xdl_linker_dlopen)(filename, RTLD_NOW, NULL, xdl_linker_caller_addr[i]); + if (NULL != handle) break; + } + } + xdl_linker_unlock(); + } else { + // >= Android 8.0 + for (size_t i = 0; i < sizeof(xdl_linker_caller_addr) / sizeof(xdl_linker_caller_addr[0]); i++) { + if (NULL != xdl_linker_caller_addr[i]) { + handle = ((xdl_linker_dlopen_o_t)xdl_linker_dlopen)(filename, RTLD_NOW, xdl_linker_caller_addr[i]); + if (NULL != handle) break; + } + } + } + return handle; + } +} diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_linker.h b/app/src/main/jni/Il2Cpp/xdl/xdl_linker.h new file mode 100644 index 0000000..00cbf44 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_linker.h @@ -0,0 +1,40 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2021-02-21. + +#ifndef IO_GITHUB_HEXHACKING_XDL_LINKER +#define IO_GITHUB_HEXHACKING_XDL_LINKER + +#ifdef __cplusplus +extern "C" { +#endif + +void xdl_linker_lock(void); +void xdl_linker_unlock(void); + +void *xdl_linker_force_dlopen(const char *filename); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.c b/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.c new file mode 100644 index 0000000..541300d --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.c @@ -0,0 +1,187 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-11-08. + +#include "xdl_lzma.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xdl.h" +#include "xdl_util.h" + +// LZMA library pathname & symbol names +#ifndef __LP64__ +#define XDL_LZMA_PATHNAME "/system/lib/liblzma.so" +#else +#define XDL_LZMA_PATHNAME "/system/lib64/liblzma.so" +#endif +#define XDL_LZMA_SYM_CRCGEN "CrcGenerateTable" +#define XDL_LZMA_SYM_CRC64GEN "Crc64GenerateTable" +#define XDL_LZMA_SYM_CONSTRUCT "XzUnpacker_Construct" +#define XDL_LZMA_SYM_ISFINISHED "XzUnpacker_IsStreamWasFinished" +#define XDL_LZMA_SYM_FREE "XzUnpacker_Free" +#define XDL_LZMA_SYM_CODE "XzUnpacker_Code" + +// LZMA data type definition +#define SZ_OK 0 +typedef struct ISzAlloc ISzAlloc; +typedef const ISzAlloc *ISzAllocPtr; +struct ISzAlloc { + void *(*Alloc)(ISzAllocPtr p, size_t size); + void (*Free)(ISzAllocPtr p, void *address); /* address can be 0 */ +}; +typedef enum { + CODER_STATUS_NOT_SPECIFIED, /* use main error code instead */ + CODER_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */ + CODER_STATUS_NOT_FINISHED, /* stream was not finished */ + CODER_STATUS_NEEDS_MORE_INPUT /* you must provide more input bytes */ +} ECoderStatus; +typedef enum { + CODER_FINISH_ANY, /* finish at any point */ + CODER_FINISH_END /* block must be finished at the end */ +} ECoderFinishMode; + +// LZMA function type definition +typedef void (*xdl_lzma_crcgen_t)(void); +typedef void (*xdl_lzma_crc64gen_t)(void); +typedef void (*xdl_lzma_construct_t)(void *, ISzAllocPtr); +typedef int (*xdl_lzma_isfinished_t)(const void *); +typedef void (*xdl_lzma_free_t)(void *); +typedef int (*xdl_lzma_code_t)(void *, uint8_t *, size_t *, const uint8_t *, size_t *, ECoderFinishMode, + ECoderStatus *); +typedef int (*xdl_lzma_code_q_t)(void *, uint8_t *, size_t *, const uint8_t *, size_t *, int, + ECoderFinishMode, ECoderStatus *); + +// LZMA function pointor +static xdl_lzma_construct_t xdl_lzma_construct = NULL; +static xdl_lzma_isfinished_t xdl_lzma_isfinished = NULL; +static xdl_lzma_free_t xdl_lzma_free = NULL; +static void *xdl_lzma_code = NULL; + +// LZMA init +static void xdl_lzma_init() { + void *lzma = xdl_open(XDL_LZMA_PATHNAME, XDL_TRY_FORCE_LOAD); + if (NULL == lzma) return; + + xdl_lzma_crcgen_t crcgen = NULL; + xdl_lzma_crc64gen_t crc64gen = NULL; + if (NULL == (crcgen = (xdl_lzma_crcgen_t)xdl_sym(lzma, XDL_LZMA_SYM_CRCGEN, NULL))) goto end; + if (NULL == (crc64gen = (xdl_lzma_crc64gen_t)xdl_sym(lzma, XDL_LZMA_SYM_CRC64GEN, NULL))) goto end; + if (NULL == (xdl_lzma_construct = (xdl_lzma_construct_t)xdl_sym(lzma, XDL_LZMA_SYM_CONSTRUCT, NULL))) + goto end; + if (NULL == (xdl_lzma_isfinished = (xdl_lzma_isfinished_t)xdl_sym(lzma, XDL_LZMA_SYM_ISFINISHED, NULL))) + goto end; + if (NULL == (xdl_lzma_free = (xdl_lzma_free_t)xdl_sym(lzma, XDL_LZMA_SYM_FREE, NULL))) goto end; + if (NULL == (xdl_lzma_code = xdl_sym(lzma, XDL_LZMA_SYM_CODE, NULL))) goto end; + crcgen(); + crc64gen(); + +end: + xdl_close(lzma); +} + +// LZMA internal alloc / free +static void *xdl_lzma_internal_alloc(ISzAllocPtr p, size_t size) { + (void)p; + return malloc(size); +} +static void xdl_lzma_internal_free(ISzAllocPtr p, void *address) { + (void)p; + free(address); +} + +int xdl_lzma_decompress(uint8_t *src, size_t src_size, uint8_t **dst, size_t *dst_size) { + size_t src_offset = 0; + size_t dst_offset = 0; + size_t src_remaining; + size_t dst_remaining; + ISzAlloc alloc = {.Alloc = xdl_lzma_internal_alloc, .Free = xdl_lzma_internal_free}; + long long state[4096 / sizeof(long long)]; // must be enough, 8-bit aligned + ECoderStatus status; + int api_level = xdl_util_get_api_level(); + + // init and check + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + static bool inited = false; + if (!inited) { + pthread_mutex_lock(&lock); + if (!inited) { + xdl_lzma_init(); + inited = true; + } + pthread_mutex_unlock(&lock); + } + if (NULL == xdl_lzma_code) return -1; + + xdl_lzma_construct(&state, &alloc); + + *dst_size = 2 * src_size; + *dst = NULL; + do { + *dst_size *= 2; + if (NULL == (*dst = realloc(*dst, *dst_size))) { + xdl_lzma_free(&state); + return -1; + } + + src_remaining = src_size - src_offset; + dst_remaining = *dst_size - dst_offset; + + int result; + if (api_level >= __ANDROID_API_Q__) { + xdl_lzma_code_q_t lzma_code_q = (xdl_lzma_code_q_t)xdl_lzma_code; + result = lzma_code_q(&state, *dst + dst_offset, &dst_remaining, src + src_offset, &src_remaining, 1, + CODER_FINISH_ANY, &status); + } else { + xdl_lzma_code_t lzma_code = (xdl_lzma_code_t)xdl_lzma_code; + result = lzma_code(&state, *dst + dst_offset, &dst_remaining, src + src_offset, &src_remaining, + CODER_FINISH_ANY, &status); + } + if (SZ_OK != result) { + free(*dst); + xdl_lzma_free(&state); + return -1; + } + + src_offset += src_remaining; + dst_offset += dst_remaining; + } while (status == CODER_STATUS_NOT_FINISHED); + + xdl_lzma_free(&state); + + if (!xdl_lzma_isfinished(&state)) { + free(*dst); + return -1; + } + + *dst_size = dst_offset; + *dst = realloc(*dst, *dst_size); + return 0; +} diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.h b/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.h new file mode 100644 index 0000000..63c848a --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_lzma.h @@ -0,0 +1,40 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-11-08. + +#ifndef IO_GITHUB_HEXHACKING_XDL_LZMA +#define IO_GITHUB_HEXHACKING_XDL_LZMA + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int xdl_lzma_decompress(uint8_t *src, size_t src_size, uint8_t **dst, size_t *dst_size); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_util.c b/app/src/main/jni/Il2Cpp/xdl/xdl_util.c new file mode 100644 index 0000000..7d9e640 --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_util.c @@ -0,0 +1,95 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +#include "xdl_util.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +bool xdl_util_starts_with(const char *str, const char *start) { + while (*str && *str == *start) { + str++; + start++; + } + + return '\0' == *start; +} + +bool xdl_util_ends_with(const char *str, const char *ending) { + size_t str_len = strlen(str); + size_t ending_len = strlen(ending); + + if (ending_len > str_len) return false; + + return 0 == strcmp(str + (str_len - ending_len), ending); +} + +size_t xdl_util_trim_ending(char *start) { + char *end = start + strlen(start); + while (start < end && isspace((int)(*(end - 1)))) { + end--; + *end = '\0'; + } + return (size_t)(end - start); +} + +static int xdl_util_get_api_level_from_build_prop(void) { + char buf[128]; + int api_level = -1; + + FILE *fp = fopen("/system/build.prop", "r"); + if (NULL == fp) goto end; + + while (fgets(buf, sizeof(buf), fp)) { + if (xdl_util_starts_with(buf, "ro.build.version.sdk=")) { + api_level = atoi(buf + 21); + break; + } + } + fclose(fp); + +end: + return (api_level > 0) ? api_level : -1; +} + +int xdl_util_get_api_level(void) { + static int xdl_util_api_level = -1; + + if (xdl_util_api_level < 0) { + int api_level = android_get_device_api_level(); + if (api_level < 0) + api_level = xdl_util_get_api_level_from_build_prop(); // compatible with unusual models + if (api_level < __ANDROID_API_J__) api_level = __ANDROID_API_J__; + + __atomic_store_n(&xdl_util_api_level, api_level, __ATOMIC_SEQ_CST); + } + + return xdl_util_api_level; +} diff --git a/app/src/main/jni/Il2Cpp/xdl/xdl_util.h b/app/src/main/jni/Il2Cpp/xdl/xdl_util.h new file mode 100644 index 0000000..582e99f --- /dev/null +++ b/app/src/main/jni/Il2Cpp/xdl/xdl_util.h @@ -0,0 +1,71 @@ +// Copyright (c) 2020-2023 HexHacking Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Created by caikelun on 2020-10-04. + +#ifndef IO_GITHUB_HEXHACKING_XDL_UTIL +#define IO_GITHUB_HEXHACKING_XDL_UTIL + +#include +#include +#include + +#ifndef __LP64__ +#define XDL_UTIL_LINKER_BASENAME "linker" +#define XDL_UTIL_LINKER_PATHNAME "/system/bin/linker" +#define XDL_UTIL_APP_PROCESS_BASENAME "app_process32" +#define XDL_UTIL_APP_PROCESS_PATHNAME "/system/bin/app_process32" +#define XDL_UTIL_APP_PROCESS_BASENAME_K "app_process" +#define XDL_UTIL_APP_PROCESS_PATHNAME_K "/system/bin/app_process" +#else +#define XDL_UTIL_LINKER_BASENAME "linker64" +#define XDL_UTIL_LINKER_PATHNAME "/system/bin/linker64" +#define XDL_UTIL_APP_PROCESS_BASENAME "app_process64" +#define XDL_UTIL_APP_PROCESS_PATHNAME "/system/bin/app_process64" +#endif +#define XDL_UTIL_VDSO_BASENAME "[vdso]" + +#define XDL_UTIL_TEMP_FAILURE_RETRY(exp) \ + ({ \ + __typeof__(exp) _rc; \ + do { \ + errno = 0; \ + _rc = (exp); \ + } while (_rc == -1 && errno == EINTR); \ + _rc; \ + }) + +#ifdef __cplusplus +extern "C" { +#endif + +bool xdl_util_starts_with(const char *str, const char *start); +bool xdl_util_ends_with(const char *str, const char *ending); + +size_t xdl_util_trim_ending(char *start); + +int xdl_util_get_api_level(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/app/src/main/jni/Includes/BNMUtils.h b/app/src/main/jni/Includes/BNMUtils.h deleted file mode 100644 index 07d7039..0000000 --- a/app/src/main/jni/Includes/BNMUtils.h +++ /dev/null @@ -1,131 +0,0 @@ -//https://github.com/geokar2006 - -void InitIl2cppMethods(); -typedef std::vector AssemblyVector; -typedef unsigned long DWORD; -AssemblyVector *(*Assembly$$GetAllAssemblies_t)(); - -AssemblyVector *Assembly$$GetAllAssemblies(){ - if (!Assembly$$GetAllAssemblies_t) - InitIl2cppMethods(); - return Assembly$$GetAllAssemblies_t(); -} -std::string revhexstr(std::string hex) { - std::string out; - for (unsigned int i = 0; i < hex.length(); i += 2) out = hex.substr(i, 2) + out; - return out; -} - -std::string fixhex(std::string str) { - std::string out = str; - std::string::size_type tmp; - if (out.find(std::string("0x")) != -1) { - tmp = out.find(std::string("0x")); - out.replace(tmp, 2, std::string("")); - } - for (int i = out.length() - 1; i >= 0; --i) { - if (out[i] == ' ') - out.erase(i, 1); - } - return out; -} - -DWORD HexStr2DWORD(std::string hex) { - return strtoull(hex.c_str(), NULL, 16); -} - -bool Is_B_BL_Hex_arm64(std::string hex) { - DWORD hexw = HexStr2DWORD(revhexstr(fixhex(hex))); - return (hexw & 0xFC000000) == 0x14000000 || (hexw & 0xFC000000) == 0x94000000; -} - -bool Is_B_BL_Hex(std::string hex) { - DWORD hexw = HexStr2DWORD(revhexstr(fixhex(hex))); - return ((hexw & 0xFC000000) == 0x14000000 || (hexw & 0xFC000000) == 0x94000000) || (hexw & 0x0A000000) == 0x0A000000; -} - -std::string readHexStrFromMem(const void *addr, size_t len) { - char temp[len]; - memset(temp, 0, len); - const size_t bufferLen = len * 2 + 1; - char buffer[bufferLen]; - memset(buffer, 0, bufferLen); - std::string ret; - if (memcpy(temp, addr, len) == NULL) - return ret; - for (int i = 0; i < len; i++) { - sprintf(&buffer[i * 2], "%02X", (unsigned char) temp[i]); - } - ret += buffer; - return ret; -} - -bool Is_x86_call_hex(std::string hex) { - return hex.substr(0, 2) == "E8"; -} -/* - * Branch decoding based on - * https://github.com/aquynh/capstone/ -*/ -bool Decode_Branch_or_Call_Hex(std::string hex, DWORD offset, DWORD *outOffset) { - bool arm = false; - if (!(arm = Is_B_BL_Hex(hex)) && !Is_x86_call_hex(hex)) return false; - if (arm) { - DWORD insn = HexStr2DWORD(revhexstr(fixhex(hex))); - DWORD imm = ((insn & (((uint32_t)1 << 24) - 1) << 0) >> 0) << 2; - DWORD SignExtendedImm = (int32_t)(imm << (32 - 26)) >> (32 - 26); - *outOffset = SignExtendedImm + offset + (Is_B_BL_Hex_arm64(hex) ? 0 : 8); - } else { - *outOffset = offset + HexStr2DWORD(revhexstr(fixhex(hex)).substr(0, 8)) + 5; - } - return true; -} -DWORD FindNext_B_BL_offset(DWORD start, int index = 1) { -#if defined(__arm__) || defined(__aarch64__) - int offset = 0; - std::string curHex = readHexStrFromMem((const void*)start, 4); - DWORD outOffset = 0; - bool out = true; - while (!(out = Decode_Branch_or_Call_Hex(curHex, start + offset, &outOffset)) || index != 1) { - offset += 4; - curHex = readHexStrFromMem((const void*)(start + offset), 4); - if (out) - index--; - } - return outOffset; -#elif defined(__i386__) - int offset = 0; - std::string curHex = readHexStrFromMem((const void*)start, 1); - DWORD outOffset = 0; - bool out = true; - while (!(out = Is_x86_call_hex(curHex)) || index != 1) { - offset += 1; - curHex = readHexStrFromMem((const void*)(start + offset), 1); - if (out) - index--; - } - Decode_Branch_or_Call_Hex(readHexStrFromMem((const void*)(start + offset), 5), start + offset, &outOffset); - return outOffset; -#endif -} -void InitIl2cppMethods(){ -#if defined(__arm__) || defined(__aarch64__) - int count = 1; -#elif defined(__i386__) || defined(__x86_64__) - int count = 2; -#endif - - //! il2cpp::vm::Assembly::GetAllAssemblies GET - if (!Assembly$$GetAllAssemblies_t){ - auto corlib = il2cpp_get_corlib(); - auto assemblyClass = il2cpp_class_from_name(corlib, "System", "AppDomain"); - const MethodInfo *getAssemb = il2cpp_class_get_method_from_name(assemblyClass, "GetAssemblies", 1); - if (getAssemb){ - DWORD GetTypesAdr = FindNext_B_BL_offset((DWORD) getAssemb->methodPointer, count); - Assembly$$GetAllAssemblies_t = (AssemblyVector *(*)(void))(FindNext_B_BL_offset(GetTypesAdr, count+1)); - } else { - DWORD adr = (DWORD)il2cpp_domain_get_assemblies; - Assembly$$GetAllAssemblies_t = (AssemblyVector *(*)(void))(FindNext_B_BL_offset(adr, count)); - } - } -} \ No newline at end of file diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index 61454a7..4f36163 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -2,17 +2,14 @@ // Created by Perfare on 2020/7/4. // -#ifndef RIRU_IL2CPPDUMPER_GAME_H -#define RIRU_IL2CPPDUMPER_GAME_H +#ifndef AUTO_IL2CPPDUMPER_CONFIG_H +#define AUTO_IL2CPPDUMPER_CONFIG_H // Try increase sleep time if having issues with the game. Decrease sleep time if anti-cheat detection it earlier #define Sleep 2 // Uncomment for fake lib mode -// It is to load our fake libunity.so and load game's real librealunity.so +// It is to load our fake libmain.so or libunity.so and load game's real librealmain.so or librealunity.so #define UseFakeLib -// Target renamed lib -#define RealLibToLoad "librealmain.so" - -#endif //RIRU_IL2CPPDUMPER_GAME_H +#endif //AUTO_IL2CPPDUMPER_CONFIG_H diff --git a/app/src/main/jni/native-lib.cpp b/app/src/main/jni/native-lib.cpp index 2f5419b..3d2d40b 100644 --- a/app/src/main/jni/native-lib.cpp +++ b/app/src/main/jni/native-lib.cpp @@ -37,7 +37,11 @@ void dump_thread() { auto il2cpp_handle = dlopen(libTarget, 4); LOGI("Start dumping"); - il2cpp_dump(il2cpp_handle); + auto androidDataPath = std::string("/storage/emulated/0/Android/data/").append( + GetPackageName()).append("/").append(GetPackageName()).append("-dump.cs"); + + il2cpp_api_init(il2cpp_handle); + il2cpp_dump(androidDataPath.c_str()); } //The idea from first Il2Cpp Dumper called PokemonGoDumper @@ -54,23 +58,27 @@ CallJNI_OnUnload_t RealJNIOnUnload = 0; #ifdef UseFakeLib -JNIEXPORT jint JNICALL CallJNIOL( - JavaVM *vm, void *reserved) { - LOGI("Exec %s", RealLibToLoad); +JNIEXPORT jint JNICALL CallJNIOL(JavaVM *vm, void *reserved) { + LOGI("OnLoad called"); std::thread(dump_thread).detach(); if (!pLibRealUnity) - pLibRealUnity = dlopen(RealLibToLoad, RTLD_NOW); + pLibRealUnity = dlopen("librealmain.so", RTLD_NOW); + if (!pLibRealUnity) + pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); if (!RealJNIOnLoad) RealJNIOnLoad = reinterpret_cast(dlsym(pLibRealUnity, "JNI_OnLoad")); return RealJNIOnLoad(vm, reserved); } -JNIEXPORT void JNICALL CallJNIUL( - JavaVM *vm, void *reserved) { +JNIEXPORT void JNICALL CallJNIUL(JavaVM *vm, void *reserved) { + LOGI("OnUnload called"); + + if (!pLibRealUnity) + pLibRealUnity = dlopen("librealmain.so", RTLD_NOW); if (!pLibRealUnity) - pLibRealUnity = dlopen(RealLibToLoad, RTLD_NOW); + pLibRealUnity = dlopen("librealunity.so", RTLD_NOW); if (!RealJNIOnUnload) RealJNIOnUnload = reinterpret_cast(dlsym(pLibRealUnity, "JNI_OnUnload")); diff --git a/build.gradle b/build.gradle index 93c4997..e9c3128 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.android.tools.build:gradle:8.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle.properties b/gradle.properties index 98bed16..8145fa7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,7 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official \ No newline at end of file +kotlin.code.style=official +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2abca14..39a0b58 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip From 86ff3aa7280d915d97c5280bdfa4fd1d58d5dac0 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Sat, 27 May 2023 13:54:24 +0200 Subject: [PATCH 31/41] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3338c89..a74cc65 100644 --- a/README.md +++ b/README.md @@ -78,10 +78,10 @@ Like - If there is no dump.cs, check logcat using Matlog or Android Studio. Game usually crash or freeze if dump fails ### Obfuscated names -Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the APK doesn't even have a brain to memorize all original names. Instead, try find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one :P +Names can't be deobfuscated. Once they are obfuscated/renamed, it can't be reverted back to original, the game doesn't even kept any original names which makes obfuscation very useful. Instead, try to find older version without obfuscation, or debug the game using GG, frida, gdb, lldb or others. If you can't do any of these, maybe guess the functions and try one by one? :P -### Bypass more games? -No idea since bypassing is not my thing, but if you know, feel free to make a pull request. For now, Issues is closed +### Bypassing protection? +Bypassing is not my thing, but if you know, feel free to make a pull request. # Usage (If you want to complie by yourself) @@ -93,4 +93,4 @@ In config header `jni/Includes/config.h`: # Credits - Perfare [Zygisk-Il2CppDumper](https://github.com/Perfare/Zygisk-Il2CppDumper) -- BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) \ No newline at end of file +- BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) From 429a759bf5f8ce50c0ee7f3769246237168a1e28 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:29:47 +0200 Subject: [PATCH 32/41] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a74cc65..c80f1fc 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,10 @@ Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass prot This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it +# NO support + +Because game using different protection and encryptions, there will be no help & support of this project, therefore the issue section is closed. Do not under any circumstances try to reach me privately or create unrelated issues on my other projects. + # How to use Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below From 72e990c7ef628baa992f90ece1297d9cc3841e4e Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Fri, 9 Aug 2024 18:30:42 +0200 Subject: [PATCH 33/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c80f1fc..e834acb 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGI # NO support -Because game using different protection and encryptions, there will be no help & support of this project, therefore the issue section is closed. Do not under any circumstances try to reach me privately or create unrelated issues on my other projects. +Since many games are using many different protections and encryptions, there will be no help & support of this project, therefore the issue section is closed. Do not under any circumstances try to reach me privately or create unrelated issues on my other projects. # How to use Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below From cfa181b15e7abf1766af1923d72c39c44ed33fe2 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 17:59:15 +0100 Subject: [PATCH 34/41] Update gradle to latest version --- build.gradle | 6 +- gradle/wrapper/gradle-wrapper.jar | Bin 54329 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 5 +- gradlew | 301 ++++++++++++++--------- gradlew.bat | 56 +++-- 5 files changed, 227 insertions(+), 141 deletions(-) diff --git a/build.gradle b/build.gradle index e9c3128..76f636f 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,10 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.0.1' + classpath 'com.android.tools.build:gradle:8.13.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,7 +15,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f6b961fd5a86aa5fbfe90f707c3138408be7c718..d64cd4917707c1f8861d8cb53dd15194d4248596 100644 GIT binary patch literal 43462 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 literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 39a0b58..37f853b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ -#Thu Apr 29 20:48:33 ICT 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip diff --git a/gradlew b/gradlew index cccdd3d..1aa94a4 100644 --- a/gradlew +++ b/gradlew @@ -1,78 +1,127 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +130,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f955316..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,19 +25,23 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal From 0cd2b3b5c900446345888fb41c4e1c26f8c9a13e Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:02:02 +0100 Subject: [PATCH 35/41] Change min SDK to 21 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 48ca53c..4a4f63f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ android { defaultConfig { applicationId "com.il2cpp.dumper" - minSdkVersion 16 + minSdkVersion 21 targetSdkVersion 33 versionCode 1 versionName "3.1" From e7c51397cef8a1a0347b379319f30c4f2fd884ca Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:03:01 +0100 Subject: [PATCH 36/41] Refactor --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 76f636f..69a96f3 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,6 @@ allprojects { } } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir } \ No newline at end of file From f1be7a16bb3a0f1faae99b52339aa8de0869d665 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:07:48 +0100 Subject: [PATCH 37/41] Upgrade SDK to 36 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4a4f63f..8e4ae9d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 33 - buildToolsVersion "32.0.0" + compileSdkVersion 36 + buildToolsVersion "36.1.0" defaultConfig { applicationId "com.il2cpp.dumper" minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 36 versionCode 1 versionName "3.1" ndk { From 593a6ba36883b23ae6ff87b72ccff1629af28dc5 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:10:45 +0100 Subject: [PATCH 38/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e834acb..0c6c1e3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGI # NO support -Since many games are using many different protections and encryptions, there will be no help & support of this project, therefore the issue section is closed. Do not under any circumstances try to reach me privately or create unrelated issues on my other projects. +Due to the variety and complexity of protection and encryption methods utilized by many games, we cannot offer direct support or assistance for this project. Consequently, the Issues section is closed. Currently, only Pull Requests are being accepted. Please refrain from contacting me privately or creating unrelated issues on my other projects. # How to use Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below From 86a1a499a2cdfbeb4aaaa502b78e433307e42ea7 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 19 Nov 2025 18:12:13 +0100 Subject: [PATCH 39/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c6c1e3..6bebd9b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGI # NO support -Due to the variety and complexity of protection and encryption methods utilized by many games, we cannot offer direct support or assistance for this project. Consequently, the Issues section is closed. Currently, only Pull Requests are being accepted. Please refrain from contacting me privately or creating unrelated issues on my other projects. +Due to the variety and complexity of protection and encryption methods utilized by many games, I cannot offer support or assistance for this project. Consequently, the Issues section is closed. Currently, only Pull Requests are being accepted. Please refrain from contacting me privately or creating unrelated issues on my other projects. # How to use Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below From ca9112e9fdca78a89fc3123fa74dff553e359811 Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:41:11 +0100 Subject: [PATCH 40/41] Update config.h --- app/src/main/jni/Includes/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/jni/Includes/config.h b/app/src/main/jni/Includes/config.h index 4f36163..0c410f6 100644 --- a/app/src/main/jni/Includes/config.h +++ b/app/src/main/jni/Includes/config.h @@ -5,7 +5,7 @@ #ifndef AUTO_IL2CPPDUMPER_CONFIG_H #define AUTO_IL2CPPDUMPER_CONFIG_H -// Try increase sleep time if having issues with the game. Decrease sleep time if anti-cheat detection it earlier +// Try increase sleep time if having issues with the game. Decrease sleep time if anti-cheat triggering earlier #define Sleep 2 // Uncomment for fake lib mode From 10ba671f7887e6707cf4a642b3595f986a9afbbf Mon Sep 17 00:00:00 2001 From: AndnixSH <40742924+AndnixSH@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:44:53 +0100 Subject: [PATCH 41/41] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6bebd9b..ec38db3 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Auto-Il2cppDumper Il2CppDumper without Magisk/Zygisk, dump il2cpp data at runtime, can bypass protection, encryption and obfuscation. -This project is based on BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) which I continue to maintain it +This project is forked from BrianGIG [Auto-Il2cppDumper](https://github.com/BryanGIG/Auto-Il2cppDumper) -# NO support +# Discontined -Due to the variety and complexity of protection and encryption methods utilized by many games, I cannot offer support or assistance for this project. Consequently, the Issues section is closed. Currently, only Pull Requests are being accepted. Please refrain from contacting me privately or creating unrelated issues on my other projects. +This project is no longer maintained. Due to the increasing variety and complexity of game protection and encryption methods, I have chosen to discontinue development. There are no plans for future commits, releases, or support. # How to use Download pre-compiled libs [HERE](https://github.com/AndnixSH/Auto-Il2cppDumper/releases) and follow steps below