feat(il2cpp): link native methods and export Ghidra seeds

Link IL2CPP metadata names to native addresses and types through shared CLI/MCP workflows, with bounded queries and atomic Ghidra seed export.

Preserve the original implementation by 8rulerstar and follow-up correctness, resource, provenance, and CI dependency repairs. Verified against real Windows/Android artifacts, independent references, actual Ghidra, and focused CLI/MCP tests.

Fixes #5112.
This commit is contained in:
JANG BYUNGKUN
2026-10-20 22:56:54 +09:00
committed by GitHub
parent e50a271c72
commit 52d1a72af0
43 changed files with 5060 additions and 368 deletions
+17
View File
@@ -4,6 +4,7 @@ import type {
} from "../domain/il2cpp/il2cppMetadata.js";
import {
checkRange,
readIndex,
Il2cppMetadataFormatFailure,
} from "./Il2cppMetadataFormat.js";
import type { MetadataTables } from "./Il2cppMetadataFile.js";
@@ -132,6 +133,22 @@ function* readNamed<
),
owners[index]!,
);
if (
tables.linkFacts !== undefined &&
(name === "fields" || name === "parameters")
) {
const column =
name === "fields"
? tables.linkFacts.fieldTypes
: tables.linkFacts.parameterTypes;
column[index] = readIndex(
tables.bytes,
section.offset +
index * tables.members.recordBytes[name] +
(name === "fields" ? 4 : 8),
tables.widths.type,
);
}
tables.onRow?.(row);
rows.push(row);
}