diff --git a/Il2CppInspector.Common/Properties/Resources.Designer.cs b/Il2CppInspector.Common/Properties/Resources.Designer.cs index 2763fb5..3feb28f 100644 --- a/Il2CppInspector.Common/Properties/Resources.Designer.cs +++ b/Il2CppInspector.Common/Properties/Resources.Designer.cs @@ -91,22 +91,24 @@ namespace Il2CppInspector.Properties { /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty ///// Helper functions /// + ///#include "pch-il2cpp.h" + /// ///#define WIN32_LEAN_AND_MEAN ///#include <windows.h> ///#include <string> + ///#include <codecvt> ///#include "helpers.h" /// ///// Log file location ///extern const LPCWSTR LOG_FILE; /// ///// Helper function to get the module base address - ///uintptr_t GetBaseAddress() { + ///uintptr_t il2cppi_get_base_address() { /// return (uintptr_t) GetModuleHandleW(L"GameAssembly.dll"); ///} /// ///// Helper function to append text to a file - ///void LogWrite(std::string text) { - /// HANDLE hfile = CreateFileW(LOG [rest of string was truncated]";. + ///void il2cppi_l [rest of string was truncated]";. /// internal static string Cpp_HelpersCpp { get { @@ -125,16 +127,15 @@ namespace Il2CppInspector.Properties { ///#include <iomanip> /// ///// Helper function to get the module base address - ///uintptr_t GetBaseAddress(); + ///uintptr_t il2cppi_get_base_address(); /// ///// Helper function to append text to a file - ///void LogWrite(std::string text); + ///void il2cppi_log_write(std::string text); /// ///// Helper function to open a new console window and redirect stdout there - ///void NewConsole(); + ///void il2cppi_new_console(); /// - ///// Helper function to convert a pointer to hex - ///template<t [rest of string was truncated]";. + ///// Helper function to convert Il2CppString to st [rest of string was truncated]";. /// internal static string Cpp_HelpersH { get { @@ -164,7 +165,7 @@ namespace Il2CppInspector.Properties { ///// Application-specific functions ///#define DO_APP_FUNC(a, r, n, p) extern r (*n) p ///namespace app { - /// #incl [rest of string was truncated]";. + /// #include "il2cpp-functions [rest of string was truncated]";. /// internal static string Cpp_Il2CppAppDataH { get { @@ -195,7 +196,7 @@ namespace Il2CppInspector.Properties { ///#undef DO_APP_FUNC /// ///// TypeInfo pointers - ///# [rest of string was truncated]";. + ///#define DO_TYPEDEF(a, n [rest of string was truncated]";. /// internal static string Cpp_Il2CppInitCpp { get { @@ -284,7 +285,7 @@ namespace Il2CppInspector.Properties { ///#ifndef PCH_IL2CPP_H ///#define PCH_IL2CPP_H /// - ///// add headers [rest of string was truncated]";. + ///// add headers that you [rest of string was truncated]";. /// internal static string Cpp_PCHIl2CppH { get { @@ -306,7 +307,8 @@ namespace Il2CppInspector.Properties { /// <Filter>framework</Filter> /// </ClCompile> /// <ClCompile Include="framework\il2cpp-init.cpp"> - /// <Filter>framework< [rest of string was truncated]";. + /// <Filter>framework</Filter> + /// [rest of string was truncated]";. /// internal static string CppProjFilters { get { @@ -326,7 +328,7 @@ namespace Il2CppInspector.Properties { /// <Configuration>Release</Configuration> /// <Platform>Win32</Platform> /// </ProjectConfiguration> - /// <ProjectCon [rest of string was truncated]";. + /// <ProjectConfiguration [rest of string was truncated]";. /// internal static string CppProjTemplate { get { diff --git a/Il2CppInspector.Common/Properties/Resources.resx b/Il2CppInspector.Common/Properties/Resources.resx index 7c42a5a..11bf449 100644 --- a/Il2CppInspector.Common/Properties/Resources.resx +++ b/Il2CppInspector.Common/Properties/Resources.resx @@ -150,21 +150,24 @@ BOOL APIENTRY DllMain( HMODULE hModule, // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty // Helper functions +#include "pch-il2cpp.h" + #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string> +#include <codecvt> #include "helpers.h" // Log file location extern const LPCWSTR LOG_FILE; // Helper function to get the module base address -uintptr_t GetBaseAddress() { +uintptr_t il2cppi_get_base_address() { return (uintptr_t) GetModuleHandleW(L"GameAssembly.dll"); } // Helper function to append text to a file -void LogWrite(std::string text) { +void il2cppi_log_write(std::string text) { HANDLE hfile = CreateFileW(LOG_FILE, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hfile == INVALID_HANDLE_VALUE) @@ -177,9 +180,21 @@ void LogWrite(std::string text) { } // Helper function to open a new console window and redirect stdout there -void NewConsole() { +void il2cppi_new_console() { AllocConsole(); freopen_s((FILE**) stdout, "CONOUT$", "w", stdout); +} + +// Helper function to convert Il2CppString to std::string +std::string il2cppi_to_string(Il2CppString* str) { + std::u16string u16(reinterpret_cast<const char16_t*>(str->chars)); + return std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.to_bytes(u16); +} + +// Helper function to convert System.String to std::string +std::string il2cppi_to_string(app::String* str) { + std::u16string u16(reinterpret_cast<const char16_t*>(&str->fields.m_firstChar)); + return std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.to_bytes(u16); } @@ -193,13 +208,19 @@ void NewConsole() { #include <iomanip> // Helper function to get the module base address -uintptr_t GetBaseAddress(); +uintptr_t il2cppi_get_base_address(); // Helper function to append text to a file -void LogWrite(std::string text); +void il2cppi_log_write(std::string text); // Helper function to open a new console window and redirect stdout there -void NewConsole(); +void il2cppi_new_console(); + +// Helper function to convert Il2CppString to std::string +std::string il2cppi_to_string(Il2CppString* str); + +// Helper function to convert System.String to std::string +std::string il2cppi_to_string(app::String* str); // Helper function to convert a pointer to hex template<typename T> std::string to_hex_string(T i) { @@ -237,11 +258,11 @@ extern const LPCWSTR LOG_FILE = L"il2cpp-log.txt"; // Custom injected code entry point void Run() { - // If you would like to write to a log file, specify the name above and use LogWrite() - // LogWrite("Startup"); + // If you would like to write to a log file, specify the name above and use il2cppi_log_write() + // il2cppi_log_write("Startup"); - // If you would like to output to a new console window, use NewConsole() to open one and redirect stdout - // NewConsole(); + // If you would like to output to a new console window, use il2cppi_new_console() to open one and redirect stdout + // il2cppi_new_console(); // Place your custom code here } @@ -1198,7 +1219,7 @@ namespace app { void init_il2cpp() { // Get base address of IL2CPP module - uintptr_t baseAddress = GetBaseAddress(); + uintptr_t baseAddress = il2cppi_get_base_address(); using namespace app;