C++: Output DLL injection boilerplate project
This commit is contained in:
@@ -168,7 +168,7 @@ namespace Il2CppInspector.Outputs
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Merge everything into .sln file
|
// Merge everything into .sln file
|
||||||
var sln = Resources.SlnTemplate
|
var sln = Resources.CsSlnTemplate
|
||||||
.Replace("%PROJECTDEFINITIONS%", slnProjectDefs.ToString())
|
.Replace("%PROJECTDEFINITIONS%", slnProjectDefs.ToString())
|
||||||
.Replace("%PROJECTCONFIGURATIONS%", slnProjectConfigs.ToString());
|
.Replace("%PROJECTCONFIGURATIONS%", slnProjectConfigs.ToString());
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// Copyright (c) 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
|
// Copyright (c) 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty
|
||||||
// All rights reserved
|
// All rights reserved
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -9,6 +10,7 @@ using System.Text.RegularExpressions;
|
|||||||
using Il2CppInspector.Reflection;
|
using Il2CppInspector.Reflection;
|
||||||
using Il2CppInspector.Cpp;
|
using Il2CppInspector.Cpp;
|
||||||
using Il2CppInspector.Model;
|
using Il2CppInspector.Model;
|
||||||
|
using Il2CppInspector.Properties;
|
||||||
|
|
||||||
namespace Il2CppInspector.Outputs
|
namespace Il2CppInspector.Outputs
|
||||||
{
|
{
|
||||||
@@ -100,6 +102,33 @@ namespace Il2CppInspector.Outputs
|
|||||||
}
|
}
|
||||||
|
|
||||||
writer.Close();
|
writer.Close();
|
||||||
|
|
||||||
|
// Write boilerplate code
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "il2cpp-init.h"), Resources.Cpp_IL2CPPInitH);
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "helpers.h"), Resources.Cpp_HelpersH);
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "dllmain.h"), Resources.Cpp_DLLMainH);
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "main.cpp"), Resources.Cpp_MainCpp);
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "helpers.cpp"), Resources.Cpp_HelpersCpp);
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, "dllmain.cpp"), Resources.Cpp_DLLMainCpp);
|
||||||
|
|
||||||
|
// Write Visual Studio project and solution files
|
||||||
|
var projectGuid = Guid.NewGuid();
|
||||||
|
var projectName = "IL2CppDLL";
|
||||||
|
var projectFile = projectName + ".vcxproj";
|
||||||
|
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, projectFile),
|
||||||
|
Resources.CppProjTemplate.Replace("%PROJECTGUID%", projectGuid.ToString()));
|
||||||
|
|
||||||
|
var solutionGuid = Guid.NewGuid();
|
||||||
|
var solutionFile = projectName + ".sln";
|
||||||
|
|
||||||
|
var sln = Resources.CppSlnTemplate
|
||||||
|
.Replace("%PROJECTGUID%", projectGuid.ToString())
|
||||||
|
.Replace("%PROJECTNAME%", projectName)
|
||||||
|
.Replace("%PROJECTFILE%", projectFile)
|
||||||
|
.Replace("%SOLUTIONGUID%", solutionGuid.ToString());
|
||||||
|
|
||||||
|
File.WriteAllText(Path.Combine(outputPath, solutionFile), sln);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeHeader() {
|
private void writeHeader() {
|
||||||
|
|||||||
234
Il2CppInspector.Common/Properties/Resources.Designer.cs
generated
234
Il2CppInspector.Common/Properties/Resources.Designer.cs
generated
@@ -60,6 +60,192 @@ namespace Il2CppInspector.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///
|
||||||
|
///#define WIN32_LEAN_AND_MEAN
|
||||||
|
///#include "windows.h"
|
||||||
|
///#include "dllmain.h"
|
||||||
|
///
|
||||||
|
///// DLL entry point
|
||||||
|
///BOOL APIENTRY DllMain( HMODULE hModule,
|
||||||
|
/// DWORD ul_reason_for_call,
|
||||||
|
/// LPVOID lpReserved
|
||||||
|
/// )
|
||||||
|
///{
|
||||||
|
/// switch (ul_reason_for_call)
|
||||||
|
/// {
|
||||||
|
/// case DLL_PROCESS_ATTACH:
|
||||||
|
/// init_il2cpp();
|
||||||
|
/// CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_DLLMainCpp {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-DLLMainCpp", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///
|
||||||
|
///// Entry point declaration for custom injected code
|
||||||
|
///void Run();
|
||||||
|
///
|
||||||
|
///// IL2CPP initializer
|
||||||
|
///void init_il2cpp();.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_DLLMainH {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-DLLMainH", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///// Logging functions
|
||||||
|
///
|
||||||
|
///#define WIN32_LEAN_AND_MEAN
|
||||||
|
///#define WIN32_EXTRA_LEAN
|
||||||
|
///#include <windows.h>
|
||||||
|
///#include "helpers.h"
|
||||||
|
///
|
||||||
|
///// Write some text to the log file
|
||||||
|
///void LogWrite(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)
|
||||||
|
/// MessageBox(0, L"Could not open log file", 0, [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_HelpersCpp {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-HelpersCpp", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///// Logging functions
|
||||||
|
///
|
||||||
|
///#pragma once
|
||||||
|
///#include <string>
|
||||||
|
///#include <sstream>
|
||||||
|
///#include <iomanip>
|
||||||
|
///
|
||||||
|
///extern const LPCWSTR LOG_FILE;
|
||||||
|
///
|
||||||
|
///// Helper function to append text to a file
|
||||||
|
///void LogWrite(std::string text);
|
||||||
|
///
|
||||||
|
///// Helper function to convert a pointer to hex
|
||||||
|
///template<typename T> std::string to_hex_string(T i) {
|
||||||
|
/// std::stringstream stream;
|
||||||
|
/// stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_HelpersH {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-HelpersH", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///// IL2CPP application initializer
|
||||||
|
///
|
||||||
|
///#pragma once
|
||||||
|
///
|
||||||
|
///#include <cstdint>
|
||||||
|
///
|
||||||
|
///// Application-specific types
|
||||||
|
///#include "il2cpp-types.h"
|
||||||
|
///
|
||||||
|
///// IL2CPP API function pointers
|
||||||
|
///#include "il2cpp-function-ptr.h"
|
||||||
|
///
|
||||||
|
///// IL2CPP APIs
|
||||||
|
///#define DO_API(r, n, p) r (*n) p
|
||||||
|
///#include "il2cpp-api-functions.h"
|
||||||
|
///#undef DO_API
|
||||||
|
///
|
||||||
|
///// Application-specific functions
|
||||||
|
///#define DO_APP_FUNC(a, r, n, p) r (*n) p
|
||||||
|
///#include "il2cpp-functions.h"
|
||||||
|
///#und [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_IL2CPPInitH {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-IL2CPPInitH", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
///// Custom injected code entry point
|
||||||
|
///
|
||||||
|
///#include "il2cpp-init.h"
|
||||||
|
///#include "helpers.h"
|
||||||
|
///
|
||||||
|
///using namespace app;
|
||||||
|
///
|
||||||
|
///// Set the name of your log file here
|
||||||
|
///extern const LPCWSTR LOG_FILE = L"il2cpp-log.txt";
|
||||||
|
///
|
||||||
|
///// Injected code entry point
|
||||||
|
///void Run()
|
||||||
|
///{
|
||||||
|
/// LogWrite("Startup");
|
||||||
|
///
|
||||||
|
/// // Place your custom code here
|
||||||
|
///}.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Cpp_MainCpp {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Cpp-MainCpp", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?>
|
||||||
|
///<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
/// <ItemGroup Label="ProjectConfigurations">
|
||||||
|
/// <ProjectConfiguration Include="Debug|Win32">
|
||||||
|
/// <Configuration>Debug</Configuration>
|
||||||
|
/// <Platform>Win32</Platform>
|
||||||
|
/// </ProjectConfiguration>
|
||||||
|
/// <ProjectConfiguration Include="Release|Win32">
|
||||||
|
/// <Configuration>Release</Configuration>
|
||||||
|
/// <Platform>Win32</Platform>
|
||||||
|
/// </ProjectConfiguration>
|
||||||
|
/// <ProjectCon [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string CppProjTemplate {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("CppProjTemplate", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
///# Visual Studio Version 16
|
||||||
|
///VisualStudioVersion = 16.0.30204.135
|
||||||
|
///MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
///Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%PROJECTNAME%", "%PROJECTFILE%", "{%PROJECTGUID%}"
|
||||||
|
///EndProject
|
||||||
|
///Global
|
||||||
|
/// GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
/// Debug|x64 = Debug|x64
|
||||||
|
/// Debug|x86 = Debug|x86
|
||||||
|
/// Release|x64 = Release|x64
|
||||||
|
/// Release|x86 = Release|x86
|
||||||
|
/// EndGlobalSection
|
||||||
|
/// GlobalSection(ProjectConfig [rest of string was truncated]";.
|
||||||
|
/// </summary>
|
||||||
|
internal static string CppSlnTemplate {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("CppSlnTemplate", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?>
|
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?>
|
||||||
///<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
///<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
@@ -80,6 +266,30 @@ namespace Il2CppInspector.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
///# Visual Studio Version 16
|
||||||
|
///%PROJECTDEFINITIONS%
|
||||||
|
///Global
|
||||||
|
/// GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
/// Debug|Any CPU = Debug|Any CPU
|
||||||
|
/// Release|Any CPU = Release|Any CPU
|
||||||
|
/// EndGlobalSection
|
||||||
|
/// GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
///%PROJECTCONFIGURATIONS%
|
||||||
|
/// EndGlobalSection
|
||||||
|
/// GlobalSection(SolutionProperties) = preSolution
|
||||||
|
/// HideSolutionNode = FALSE
|
||||||
|
/// EndGlobalSection
|
||||||
|
///EndGlobal
|
||||||
|
///.
|
||||||
|
/// </summary>
|
||||||
|
internal static string CsSlnTemplate {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("CsSlnTemplate", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to {%PROJECTGUID%}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
/// Looks up a localized string similar to {%PROJECTGUID%}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
/// {%PROJECTGUID%}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
/// {%PROJECTGUID%}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
@@ -103,29 +313,5 @@ namespace Il2CppInspector.Properties {
|
|||||||
return ResourceManager.GetString("SlnProjectDefinition", resourceCulture);
|
return ResourceManager.GetString("SlnProjectDefinition", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
///# Visual Studio Version 16
|
|
||||||
///%PROJECTDEFINITIONS%
|
|
||||||
///Global
|
|
||||||
/// GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
/// Debug|Any CPU = Debug|Any CPU
|
|
||||||
/// Release|Any CPU = Release|Any CPU
|
|
||||||
/// EndGlobalSection
|
|
||||||
/// GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
///%PROJECTCONFIGURATIONS%
|
|
||||||
/// EndGlobalSection
|
|
||||||
/// GlobalSection(SolutionProperties) = preSolution
|
|
||||||
/// HideSolutionNode = FALSE
|
|
||||||
/// EndGlobalSection
|
|
||||||
///EndGlobal
|
|
||||||
///.
|
|
||||||
/// </summary>
|
|
||||||
internal static string SlnTemplate {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("SlnTemplate", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,407 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="Cpp-DLLMainCpp" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include "windows.h"
|
||||||
|
#include "dllmain.h"
|
||||||
|
|
||||||
|
// DLL entry point
|
||||||
|
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||||
|
DWORD ul_reason_for_call,
|
||||||
|
LPVOID lpReserved
|
||||||
|
)
|
||||||
|
{
|
||||||
|
switch (ul_reason_for_call)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
init_il2cpp();
|
||||||
|
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, 0, NULL);
|
||||||
|
break;
|
||||||
|
case DLL_THREAD_ATTACH:
|
||||||
|
case DLL_THREAD_DETACH:
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}</value>
|
||||||
|
</data>
|
||||||
|
<data name="Cpp-DLLMainH" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
|
||||||
|
// Entry point declaration for custom injected code
|
||||||
|
void Run();
|
||||||
|
|
||||||
|
// IL2CPP initializer
|
||||||
|
void init_il2cpp();</value>
|
||||||
|
</data>
|
||||||
|
<data name="Cpp-HelpersCpp" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
// Logging functions
|
||||||
|
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#define WIN32_EXTRA_LEAN
|
||||||
|
#include <windows.h>
|
||||||
|
#include "helpers.h"
|
||||||
|
|
||||||
|
// Write some text to the log file
|
||||||
|
void LogWrite(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)
|
||||||
|
MessageBox(0, L"Could not open log file", 0, 0);
|
||||||
|
|
||||||
|
DWORD written;
|
||||||
|
WriteFile(hfile, text.c_str(), (DWORD) text.length(), &written, NULL);
|
||||||
|
WriteFile(hfile, "\r\n", 2, &written, NULL);
|
||||||
|
CloseHandle(hfile);
|
||||||
|
}</value>
|
||||||
|
</data>
|
||||||
|
<data name="Cpp-HelpersH" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
// Logging functions
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <iomanip>
|
||||||
|
|
||||||
|
extern const LPCWSTR LOG_FILE;
|
||||||
|
|
||||||
|
// Helper function to append text to a file
|
||||||
|
void LogWrite(std::string text);
|
||||||
|
|
||||||
|
// Helper function to convert a pointer to hex
|
||||||
|
template<typename T> std::string to_hex_string(T i) {
|
||||||
|
std::stringstream stream;
|
||||||
|
stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex << i;
|
||||||
|
return stream.str();
|
||||||
|
}</value>
|
||||||
|
</data>
|
||||||
|
<data name="Cpp-IL2CPPInitH" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
// IL2CPP application initializer
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
// Application-specific types
|
||||||
|
#include "il2cpp-types.h"
|
||||||
|
|
||||||
|
// IL2CPP API function pointers
|
||||||
|
#include "il2cpp-function-ptr.h"
|
||||||
|
|
||||||
|
// IL2CPP APIs
|
||||||
|
#define DO_API(r, n, p) r (*n) p
|
||||||
|
#include "il2cpp-api-functions.h"
|
||||||
|
#undef DO_API
|
||||||
|
|
||||||
|
// Application-specific functions
|
||||||
|
#define DO_APP_FUNC(a, r, n, p) r (*n) p
|
||||||
|
#include "il2cpp-functions.h"
|
||||||
|
#undef DO_APP_FUNC
|
||||||
|
|
||||||
|
// TypeInfo pointers
|
||||||
|
#define DO_TYPEDEF(a, n) n ## __Class* n ## __TypeInfo
|
||||||
|
#include "il2cpp-type-ptr.h"
|
||||||
|
#undef DO_TYPEDEF
|
||||||
|
|
||||||
|
// Try not to include any Windows symbosl that might cause a naming conflict
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#define WIN32_EXTRA_LEAN
|
||||||
|
#define NOIME
|
||||||
|
#define NOWINRES
|
||||||
|
#define NOGDICAPMASKS
|
||||||
|
#define NOVIRTUALKEYCODES
|
||||||
|
#define NOWINMESSAGES
|
||||||
|
#define NOWINSTYLES
|
||||||
|
#define NOSYSMETRICS
|
||||||
|
#define NOMENUS
|
||||||
|
#define NOICONS
|
||||||
|
#define NOKEYSTATES
|
||||||
|
#define NOSYSCOMMANDS
|
||||||
|
#define NORASTEROPS
|
||||||
|
#define NOSHOWWINDOW
|
||||||
|
#define OEMRESOURCE
|
||||||
|
#define NOATOM
|
||||||
|
#define NOCLIPBOARD
|
||||||
|
#define NOCOLOR
|
||||||
|
#define NOCTLMGR
|
||||||
|
#define NODRAWTEXT
|
||||||
|
#define NOGDI
|
||||||
|
#define NOUSER
|
||||||
|
#define NOMB
|
||||||
|
#define NOMEMMGR
|
||||||
|
#define NOMETAFILE
|
||||||
|
#define NOMINMAX
|
||||||
|
#define NOMSG
|
||||||
|
#define NOOPENFILE
|
||||||
|
#define NOSCROLL
|
||||||
|
#define NOSERVICE
|
||||||
|
#define NOSOUND
|
||||||
|
#define NOTEXTMETRIC
|
||||||
|
#define NOWH
|
||||||
|
#define NOWINOFFSETS
|
||||||
|
#define NOCOMM
|
||||||
|
#define NOKANJI
|
||||||
|
#define NOHELP
|
||||||
|
#define NOPROFILER
|
||||||
|
#define NODEFERWINDOWPOS
|
||||||
|
#define NOMCX
|
||||||
|
#define NOIME
|
||||||
|
#define NOPROXYSTUB
|
||||||
|
#define NOIMAGE
|
||||||
|
#define NO
|
||||||
|
#define NOTAPE
|
||||||
|
#define ANSI_ONLY
|
||||||
|
#include "windows.h"
|
||||||
|
|
||||||
|
// Initialize everything
|
||||||
|
void init_il2cpp() {
|
||||||
|
// Get base address of IL2CPP module
|
||||||
|
uintptr_t baseAddress = (uintptr_t) GetModuleHandleW(L"GameAssembly.dll");
|
||||||
|
|
||||||
|
// Define IL2CPP API function addresses
|
||||||
|
#define DO_API(r, n, p) n = (r (*) p)(baseAddress + n ## _ptr)
|
||||||
|
#include "il2cpp-api-functions.h"
|
||||||
|
#undef DO_API
|
||||||
|
|
||||||
|
// Define function addresses
|
||||||
|
#define DO_APP_FUNC(a, r, n, p) n = (r (*) p)(baseAddress + a)
|
||||||
|
#include "il2cpp-functions.h"
|
||||||
|
#undef DO_APP_FUNC
|
||||||
|
|
||||||
|
// Define TypeInfo variables
|
||||||
|
#define DO_TYPEDEF(a, n) n ## __TypeInfo = *(n ## __Class**) (baseAddress + a);
|
||||||
|
#include "il2cpp-type-ptr.h"
|
||||||
|
#undef DO_TYPEDEF
|
||||||
|
}</value>
|
||||||
|
</data>
|
||||||
|
<data name="Cpp-MainCpp" xml:space="preserve">
|
||||||
|
<value>// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty
|
||||||
|
// Custom injected code entry point
|
||||||
|
|
||||||
|
#include "il2cpp-init.h"
|
||||||
|
#include "helpers.h"
|
||||||
|
|
||||||
|
using namespace app;
|
||||||
|
|
||||||
|
// Set the name of your log file here
|
||||||
|
extern const LPCWSTR LOG_FILE = L"il2cpp-log.txt";
|
||||||
|
|
||||||
|
// Injected code entry point
|
||||||
|
void Run()
|
||||||
|
{
|
||||||
|
LogWrite("Startup");
|
||||||
|
|
||||||
|
// Place your custom code here
|
||||||
|
}</value>
|
||||||
|
</data>
|
||||||
|
<data name="CppProjTemplate" xml:space="preserve">
|
||||||
|
<value><?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<!--<VCProjectVersion>16.0</VCProjectVersion>-->
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{%PROJECTGUID%}</ProjectGuid>
|
||||||
|
<RootNamespace>Il2CppDLL</RootNamespace>
|
||||||
|
<!--<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>-->
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<!--<PlatformToolset>v142</PlatformToolset>-->
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<!--<PlatformToolset>v142</PlatformToolset>-->
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<!--<PlatformToolset>v142</PlatformToolset>-->
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<!--<PlatformToolset>v142</PlatformToolset>-->
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="dllmain.cpp" />
|
||||||
|
<ClCompile Include="helpers.cpp" />
|
||||||
|
<ClCompile Include="main.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="dllmain.h" />
|
||||||
|
<ClInclude Include="helpers.h" />
|
||||||
|
<ClInclude Include="il2cpp-api-functions.h" />
|
||||||
|
<ClInclude Include="il2cpp-init.h" />
|
||||||
|
<ClInclude Include="il2cpp-function-ptr.h" />
|
||||||
|
<ClInclude Include="il2cpp-functions.h" />
|
||||||
|
<ClInclude Include="il2cpp-type-ptr.h" />
|
||||||
|
<ClInclude Include="il2cpp-types.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project></value>
|
||||||
|
</data>
|
||||||
|
<data name="CppSlnTemplate" xml:space="preserve">
|
||||||
|
<value>Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30204.135
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%PROJECTNAME%", "%PROJECTFILE%", "{%PROJECTGUID%}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{%PROJECTGUID%}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{%PROJECTGUID%}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{%PROJECTGUID%}.Debug|x86.ActiveCfg = Release|x64
|
||||||
|
{%PROJECTGUID%}.Debug|x86.Build.0 = Release|x64
|
||||||
|
{%PROJECTGUID%}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{%PROJECTGUID%}.Release|x64.Build.0 = Release|x64
|
||||||
|
{%PROJECTGUID%}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{%PROJECTGUID%}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {%SOLUTIONGUID%}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal</value>
|
||||||
|
</data>
|
||||||
<data name="CsProjTemplate" xml:space="preserve">
|
<data name="CsProjTemplate" xml:space="preserve">
|
||||||
<value><?xml version="1.0" encoding="utf-8"?>
|
<value><?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
@@ -753,7 +1154,7 @@
|
|||||||
EndProject
|
EndProject
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SlnTemplate" xml:space="preserve">
|
<data name="CsSlnTemplate" xml:space="preserve">
|
||||||
<value>Microsoft Visual Studio Solution File, Format Version 12.00
|
<value>Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
%PROJECTDEFINITIONS%
|
%PROJECTDEFINITIONS%
|
||||||
|
|||||||
Reference in New Issue
Block a user