C++: Fix self-referential structs not working in Ghidra

This commit is contained in:
Katy Coe
2020-11-26 11:36:38 +01:00
parent d67ef3e5ed
commit 4a22a33dc3
43 changed files with 2228 additions and 204 deletions

View File

@@ -788,7 +788,7 @@ typedef struct Il2CppClass
Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets;
void* static_fields;
const Il2CppRGCTXData* rgctx_data;
Il2CppClass** typeHierarchy;
struct Il2CppClass** typeHierarchy;
uint32_t cctor_started;
uint32_t cctor_finished;
__attribute__((aligned(8))) uint64_t cctor_thread;
@@ -853,7 +853,7 @@ typedef struct Il2CppClass_0 {
} Il2CppClass_0;
typedef struct Il2CppClass_1 {
Il2CppClass** typeHierarchy;
struct Il2CppClass** typeHierarchy;
uint32_t cctor_started;
uint32_t cctor_finished;
#ifdef IS_32BIT
@@ -1385,7 +1385,7 @@ typedef struct Il2CppException
Il2CppString* className;
Il2CppString* message;
Il2CppObject* _data;
Il2CppException* inner_ex;
struct Il2CppException* inner_ex;
Il2CppString* _helpURL;
Il2CppArray* trace_ips;
Il2CppString* stack_trace;
@@ -1638,7 +1638,7 @@ typedef struct Il2CppStringBuilder
{
Il2CppObject object;
Il2CppArray* chunkChars;
Il2CppStringBuilder* chunkPrevious;
struct Il2CppStringBuilder* chunkPrevious;
int chunkLength;
int chunkOffset;
int maxCapacity;
@@ -1896,7 +1896,7 @@ typedef enum Il2CppVarType
IL2CPP_VT_ILLEGALMASKED = 0xfff,
IL2CPP_VT_TYPEMASK = 0xfff,
} Il2CppVarType;
struct Il2CppVariant
typedef struct Il2CppVariant
{
union
{
@@ -1936,7 +1936,7 @@ struct Il2CppVariant
Il2CppIUnknown** ppunkVal;
void** ppdispVal;
Il2CppSafeArray** pparray;
Il2CppVariant* pvarVal;
struct Il2CppVariant* pvarVal;
void* byref;
char cVal;
uint16_t uiVal;