UNPKG

il2cpp-dump-analyzer-mcp

Version:

Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games

113 lines 4.23 kB
"use strict"; // Enhanced IL2CPP Parser - Main Export File Object.defineProperty(exports, "__esModule", { value: true }); exports.IL2CPPParserUtils = exports.parseIL2CPPDump = exports.initializeParser = exports.IL2CPPDumpParser = exports.EnhancedIL2CPPParser = void 0; // Core enhanced parser var enhanced_il2cpp_parser_1 = require("./enhanced-il2cpp-parser"); Object.defineProperty(exports, "EnhancedIL2CPPParser", { enumerable: true, get: function () { return enhanced_il2cpp_parser_1.EnhancedIL2CPPParser; } }); // Original parser for backward compatibility var il2cpp_parser_1 = require("./il2cpp-parser"); Object.defineProperty(exports, "IL2CPPDumpParser", { enumerable: true, get: function () { return il2cpp_parser_1.IL2CPPDumpParser; } }); var parser_1 = require("./parser"); Object.defineProperty(exports, "initializeParser", { enumerable: true, get: function () { return parser_1.initializeParser; } }); Object.defineProperty(exports, "parseIL2CPPDump", { enumerable: true, get: function () { return parser_1.parseIL2CPPDump; } }); /** * Enhanced IL2CPP Parser Library * * This library provides comprehensive parsing capabilities for IL2CPP dump.cs files * with support for: * * - Real IL2CPP dump format parsing (TypeDefIndex, RVA/Offset) * - Attribute parsing and metadata extraction * - Generic types and nested classes * - MonoBehaviour detection * - Comprehensive error handling and statistics * * Usage Example: * ```typescript * import { EnhancedIL2CPPParser } from './parser'; * * const parser = new EnhancedIL2CPPParser(); * await parser.loadFile('dump.cs'); * const result = parser.extractAllConstructs(); * * console.log(`Found ${result.statistics.totalConstructs} constructs`); * console.log(`Classes: ${result.classes.length}`); * console.log(`Enums: ${result.enums.length}`); * console.log(`Interfaces: ${result.interfaces.length}`); * ``` * * Key Features: * * 1. **Real Format Support**: Handles actual IL2CPP dump.cs format with * TypeDefIndex, RVA, Offset, and image mappings. * * 2. **Attribute Parsing**: Extracts attributes like [Serializable], * [CreateAssetMenu], [SerializeField], etc. * * 3. **Generic Support**: Parses generic methods and classes with * constraint information. * * 4. **MonoBehaviour Detection**: Automatically identifies MonoBehaviour * classes for Unity-specific analysis. * * 5. **Comprehensive Statistics**: Provides detailed parsing statistics * and error reporting. */ // Import for internal use const enhanced_il2cpp_parser_2 = require("./enhanced-il2cpp-parser"); // Utility functions for common operations class IL2CPPParserUtils { /** * Quick parse function for simple use cases */ static async quickParse(filePath) { const parser = new enhanced_il2cpp_parser_2.EnhancedIL2CPPParser(); await parser.loadFile(filePath); return parser.extractAllConstructs(); } /** * Get only classes from a dump file */ static async extractClasses(filePath) { const result = await this.quickParse(filePath); return result.classes; } /** * Get only enums from a dump file */ static async extractEnums(filePath) { const result = await this.quickParse(filePath); return result.enums; } /** * Get only interfaces from a dump file */ static async extractInterfaces(filePath) { const result = await this.quickParse(filePath); return result.interfaces; } /** * Get only MonoBehaviour classes from a dump file */ static async extractMonoBehaviours(filePath) { const result = await this.quickParse(filePath); return result.classes.filter(cls => cls.isMonoBehaviour); } /** * Get parsing statistics */ static async getStatistics(filePath) { const result = await this.quickParse(filePath); return result.statistics; } /** * Get image mappings from dump file */ static async getImageMappings(filePath) { const result = await this.quickParse(filePath); return result.imageMappings; } } exports.IL2CPPParserUtils = IL2CPPParserUtils; //# sourceMappingURL=index.js.map