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;