IL2CPP: Load managed code string literals
This commit is contained in:
@@ -29,6 +29,7 @@ namespace Il2CppInspector
|
|||||||
public double Version => Metadata.Version;
|
public double Version => Metadata.Version;
|
||||||
|
|
||||||
public Dictionary<int, string> Strings => Metadata.Strings;
|
public Dictionary<int, string> Strings => Metadata.Strings;
|
||||||
|
public string[] StringLiterals => Metadata.StringLiterals;
|
||||||
public Il2CppTypeDefinition[] TypeDefinitions => Metadata.Types;
|
public Il2CppTypeDefinition[] TypeDefinitions => Metadata.Types;
|
||||||
public Il2CppAssemblyDefinition[] Assemblies => Metadata.Assemblies;
|
public Il2CppAssemblyDefinition[] Assemblies => Metadata.Assemblies;
|
||||||
public Il2CppImageDefinition[] Images => Metadata.Images;
|
public Il2CppImageDefinition[] Images => Metadata.Images;
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 Perfare - https://github.com/Perfare/Il2CppDumper
|
Copyright 2017 Perfare - https://github.com/Perfare/Il2CppDumper
|
||||||
Copyright 2017-2019 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
|
Copyright 2017-2020 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Dynamic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
using NoisyCowStudios.Bin2Object;
|
using NoisyCowStudios.Bin2Object;
|
||||||
|
|
||||||
namespace Il2CppInspector
|
namespace Il2CppInspector
|
||||||
@@ -40,6 +42,7 @@ namespace Il2CppInspector
|
|||||||
public int[] AttributeTypeIndices { get; }
|
public int[] AttributeTypeIndices { get; }
|
||||||
public int[] GenericConstraintIndices { get; }
|
public int[] GenericConstraintIndices { get; }
|
||||||
public uint[] VTableMethodIndices { get; }
|
public uint[] VTableMethodIndices { get; }
|
||||||
|
public string[] StringLiterals { get; }
|
||||||
|
|
||||||
public Dictionary<int, string> Strings { get; } = new Dictionary<int, string>();
|
public Dictionary<int, string> Strings { get; } = new Dictionary<int, string>();
|
||||||
public List<MetadataUsage> MetadataUsages { get; } = new List<MetadataUsage>();
|
public List<MetadataUsage> MetadataUsages { get; } = new List<MetadataUsage>();
|
||||||
@@ -131,10 +134,17 @@ namespace Il2CppInspector
|
|||||||
AttributeTypeRanges = ReadArray<Il2CppCustomAttributeTypeRange>(Header.attributesInfoOffset, Header.attributesInfoCount / Sizeof(typeof(Il2CppCustomAttributeTypeRange)));
|
AttributeTypeRanges = ReadArray<Il2CppCustomAttributeTypeRange>(Header.attributesInfoOffset, Header.attributesInfoCount / Sizeof(typeof(Il2CppCustomAttributeTypeRange)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all string literals
|
// Get all metadata string literals
|
||||||
Position = Header.stringOffset;
|
Position = Header.stringOffset;
|
||||||
while (Position < Header.stringOffset + Header.stringCount)
|
while (Position < Header.stringOffset + Header.stringCount)
|
||||||
Strings.Add((int)Position - Header.stringOffset, ReadNullTerminatedString());
|
Strings.Add((int)Position - Header.stringOffset, ReadNullTerminatedString());
|
||||||
|
|
||||||
|
// Get all managed code string literals
|
||||||
|
var stringLiteralList = ReadArray<Il2CppStringLiteral>(Header.stringLiteralOffset, Header.stringLiteralCount / Sizeof(typeof(Il2CppStringLiteral)));
|
||||||
|
|
||||||
|
StringLiterals = new string[stringLiteralList.Length];
|
||||||
|
for (var i = 0; i < stringLiteralList.Length; i++)
|
||||||
|
StringLiterals[i] = ReadFixedLengthString(Header.stringLiteralDataOffset + stringLiteralList[i].dataIndex, stringLiteralList[i].length);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MetadataUsage> buildMetadataUsages()
|
private List<MetadataUsage> buildMetadataUsages()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2017 Perfare - https://github.com/Perfare/Il2CppDumper
|
Copyright 2017 Perfare - https://github.com/Perfare/Il2CppDumper
|
||||||
Copyright 2017-2019 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
|
Copyright 2017-2020 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
*/
|
*/
|
||||||
@@ -433,4 +433,10 @@ namespace Il2CppInspector
|
|||||||
public uint destinationindex;
|
public uint destinationindex;
|
||||||
public uint encodedSourceIndex;
|
public uint encodedSourceIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class Il2CppStringLiteral
|
||||||
|
{
|
||||||
|
public int length;
|
||||||
|
public int dataIndex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user