Files
Cpp2IL/LibCpp2IL/BinaryStructures/Il2CppCodeGenModule.cs
2021-06-28 20:38:25 +01:00

48 lines
1.7 KiB
C#

namespace LibCpp2IL.BinaryStructures
{
public class Il2CppCodeGenModule
{
public ulong moduleName; //pointer
public long methodPointerCount; //ulong
public ulong methodPointers; //pointer
//Present in v27.1 and v24.5, but not v27.0
[Version(Min = 27.1f)]
[Version(Min = 24.5f, Max = 24.5f)]
public long adjustorThunkCount;
[Version(Min = 27.1f)]
[Version(Min = 24.5f, Max = 24.5f)]
public ulong adjustorThunks; //Pointer
public ulong invokerIndices; //ulong
public ulong reversePInvokeWrapperCount; //ulong
public ulong reversePInvokeWrapperIndices;
public long rgctxRangesCount;
public ulong pRgctxRanges;
public long rgctxsCount;
public ulong rgctxs;
public ulong debuggerMetadata;
[Version(Min = 27)] public ulong customAttributeCacheGenerator;
[Version(Min = 27)] public ulong moduleInitializer;
[Version(Min = 27)] public ulong staticConstructorTypeIndices;
[Version(Min = 27)] public ulong metadataRegistration; //Per-assembly mode only
[Version(Min = 27)] public ulong codeRegistration; //Per-assembly mode only.
private string? _cachedName;
public string Name
{
get
{
if(_cachedName == null)
_cachedName = LibCpp2IlMain.Binary!.ReadStringToNull(LibCpp2IlMain.Binary.MapVirtualAddressToRaw(moduleName));
return _cachedName!;
}
}
public Il2CppTokenRangePair[] RGCTXRanges => LibCpp2IlMain.Binary!.GetRGCTXRangePairsForModule(this);
}
}