diff --git a/Il2CppDumper/Il2CppCSharpDumper.cs b/Il2CppDumper/Il2CppCSharpDumper.cs index 68b2db6..08a1d8c 100644 --- a/Il2CppDumper/Il2CppCSharpDumper.cs +++ b/Il2CppDumper/Il2CppCSharpDumper.cs @@ -17,9 +17,7 @@ namespace Il2CppInspector // Namespace prefixes whose contents should be skipped public List ExcludedNamespaces { get; set; } - public Il2CppCSharpDumper(Il2CppInspector proc) { - model = new Il2CppModel(proc); - } + public Il2CppCSharpDumper(Il2CppModel model) => this.model = model; private string formatAddress(ulong address) => model.Package.BinaryImage.Bits == 32 ? string.Format($"0x{(uint) address:X8}") diff --git a/Il2CppDumper/Program.cs b/Il2CppDumper/Program.cs index 11bf5f4..3b7c52c 100644 --- a/Il2CppDumper/Program.cs +++ b/Il2CppDumper/Program.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.IO; +using Il2CppInspector.Reflection; namespace Il2CppInspector { @@ -60,8 +61,16 @@ namespace Il2CppInspector // Write output file int i = 0; - foreach (var il2cpp in il2cppInspectors) - new Il2CppCSharpDumper(il2cpp) {ExcludedNamespaces = excludedNamespaces}.WriteFile(outFile + (i++ > 0 ? "-" + (i-1) : "")); + foreach (var il2cpp in il2cppInspectors) { + // Create model + var model = new Il2CppModel(il2cpp); + + // C# signatures output + new Il2CppCSharpDumper(model) {ExcludedNamespaces = excludedNamespaces}.WriteFile(outFile + (i++ > 0 ? "-" + (i-1) : "")); + + // IDA Python script output + // TODO: IDA Python script output + } } } } diff --git a/Il2CppTests/TestRunner.cs b/Il2CppTests/TestRunner.cs index 9428ea4..00a28c3 100644 --- a/Il2CppTests/TestRunner.cs +++ b/Il2CppTests/TestRunner.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using Il2CppInspector.Reflection; using NUnit.Framework; namespace Il2CppInspector @@ -50,7 +51,7 @@ namespace Il2CppInspector // Dump each image in the binary separately int i = 0; foreach (var il2cpp in inspectors) - new Il2CppCSharpDumper(il2cpp) {ExcludedNamespaces = excludedNamespaces}.WriteFile(testPath + @"\test-result" + (i++ > 0 ? "-" + (i - 1) : "") + ".cs"); + new Il2CppCSharpDumper(new Il2CppModel(il2cpp)) {ExcludedNamespaces = excludedNamespaces}.WriteFile(testPath + @"\test-result" + (i++ > 0 ? "-" + (i - 1) : "") + ".cs"); // Compare test result with expected result for (i = 0; i < inspectors.Count; i++) {