MCPcopy Create free account
hub / github.com/axhlzy/FridaDebugger / createUnityClassTree

Function createUnityClassTree

agent/symbols.ts:91–113  ·  view source on GitHub ↗
(directClassRoot: SymbolNode)

Source from the content-addressed store, hash-verified

89}
90
91function createUnityClassTree(directClassRoot: SymbolNode): SymbolNode {
92 const root: SymbolNode = Object.create(null);
93 let classCount = 0;
94 let methodCount = 0;
95
96 try {
97 for (const assembly of Il2Cpp.domain.assemblies) {
98 for (const klass of assembly.image.classes) {
99 rememberIl2CppClass(klass);
100 classCount++;
101 const classNode = getOrCreateClassNode(root, klass);
102 methodCount += addMethods(classNode, klass);
103 defineUniqueValue(directClassRoot, sanitizeIdentifier(klass.name), classNode);
104 }
105 }
106 } catch (error) {
107 log(`[sym] failed to build Unity metadata symbols: ${String(error)}`, "red");
108 }
109
110 defineList(root);
111 log(`[sym] unity classes=${classCount} methods=${methodCount}`, "gray");
112 return root;
113}
114
115function getOrCreateClassNode(root: SymbolNode, klass: Il2Cpp.Class): SymbolNode {
116 const namespace = klass.namespace ?? "";

Callers 1

addUnityMetadataMethod · 0.85

Calls 7

rememberIl2CppClassFunction · 0.85
getOrCreateClassNodeFunction · 0.85
addMethodsFunction · 0.85
defineUniqueValueFunction · 0.85
sanitizeIdentifierFunction · 0.85
logFunction · 0.85
defineListFunction · 0.85

Tested by

no test coverage detected