SamboyCoding / Cpp2IL

Work-in-progress tool to reverse unity's IL2CPP toolchain.
MIT License
1.56k stars 178 forks source link

ISIL `Invalid` Instructions #291

Closed ds5678 closed 2 weeks ago

ds5678 commented 2 weeks ago

Context

Currently, any problem during ISIL generation invalidates the entire set of generated instructions (eg #178).

Proposal

Rather than throwing exceptions and deleting the successfully parsed instructions, Cpp2IL should gracefully continue its analysis and allow downstream consumers to use this partially successful output.

New Instruction

Invalid

This ISIL instruction is emitted when Cpp2IL encounters unexpected problems while attempting to handle a known assembly instruction.

Goal

ISIL generation for all methods, even if some of them have Invalid instructions.