对于一些内置类型,可以直接最终定位到对应的Il2CppClass,比如IL2CPP_TYPE_I4将直接返回il2cpp_defaults.int32_class,IL2CPP_TYPE_OBJECT直接返回il2cpp_defaults.object_class,而il2cpp_defaults是在Runtime::Init里初始化的常用类型缓存。 一维数组对应的IL2CPP_TYPE_SZARRAY,多维数组对应IL2CPP_TYPE_ARRAY,基于其元素...
DO_API(void, il2cpp_type_get_name_chunked, (const Il2CppType * type, void(*chunkReportFunc)(void* data, void* userData), void* userData)); DO_API(const char*, il2cpp_class_get_namespace, (Il2CppClass * klass)); DO_API(Il2CppClass*, il2cpp_class_get_parent, (Il2CppClass * kla...
const Il2CppMethodDefinition* methodDefinition = GetMethodDefinitionFromIndex (index); Il2CppClass* typeInfo = GetTypeInfoFromTypeDefinitionIndex (methodDefinition->declaringType); Class::SetupMethods (typeInfo); s_MethodInfoDefinitionTable[index] = typeInfo->methods[index- typeInfo->typeDefinition->method...
constMethodInfo*il2cpp_class_get_methods(Il2CppClass*klass,void**iter)//导出函数很好找{returnClass::GetMethods(klass,iter);}constMethodInfo*Class::GetMethods(Il2CppClass*klass,void**iter){...if(!*iter){Class::SetupMethods(klass);if(klass->method_count==0)returnNULL;*iter=&klass->methods[...
Il2Cpp.memorySnapshotApi[exportName];if(!handle){try{letpat=_backupExports[exportName];if(!pat){console.warn(`Pattern scan fucked up.${exportName}`);}constresults=Memory.scanSync(base.base,base.size,pat);if(!!results.length){if(exportName=="il2cpp_class_get_type"||exportName=="il2...
publicclassMyClass{privateintaddValue=1;publicintAddOne(intinputValue){returninputValue+addValue;}}intinput=5;MyClasstarget=newMyClass();varfunctionPtr=(void*)typeof(MyClass).GetMethod("AddOne").MethodHandle.Value;varresult=FuncIL2CPP.Generic<int,MyClass,Tint1>(target,input,functionPtr);Debug...
sizeof(Il2CppImageGlobalMetadata));s_TypeInfoTable = (Il2CppClass**)IL2CPP_CALLOC(s_Il2CppMetadataRegistration->typesCount,sizeof(Il2CppClass*));s_TypeInfoDefinitionTable = (Il2CppClass**)IL2CPP_CALLOC(s_GlobalMetadataHeader->typeDefinitionsSize /sizeof(Il2CppTypeDefinition),sizeof(Il2CppClass...
j_il2cpp_runtime_class_init_0(UnityEngine_Object_TypeInfo); v28 = UnityEngine_Object__Instantiate_object_(PrefabNote, Method_UnityEngine_Object_Instantiate_GameObject___); if ( !v28 ) break; v29 = v28; v30 = UnityEngine_GameObject__get_transform(v28, 0LL); ...
IL2CPP_RUNTIME_CLASS_INIT(InitializedTypeInfo(&Type_t_il2cpp_TypeInfo)); Type_t * L_1 = Type_GetTypeFromHandle_m19(NULL /*static, unused*/, LoadTypeToken(&Important_t1_0_0_0), /*hidden argument*/&Type_GetTypeFromHandle_m19_MethodInfo); NullCheck(L_1); MethodInfo_t * L_2 = (Metho...
Il2CppNameToTypeDefinitionIndexHashTable*nameToClassHashTable; const Il2CppCodeGenModule*codeGenModule; uint32_t token; uint8_t dynamic; } Il2CppImage; typedef struct Il2CppImage { const char*name; const char*nameNoExt; Il2CppAssembly*assembly; ...