Commit Graph
205 Commits
Author SHA1 Message Date
Jeremy Pritts 0098bae630 Remove ModuleDefinition parameters from ContextToTypeSignature (#599) 2026-08-10 01:43:51 +01:00
Sam Byass 7586718ee8 Decompiler: Fix return register issues with CallVoid, fix missing call/init metadata thunks, fix generic field offsets, resolve icalls 2026-08-09 20:43:21 +01:00
Sam Byass 3b75f3dc0c Core: Remove all AsmResolver importer calls, they're not needed any more 2026-08-09 15:57:24 +01:00
Sam Byass f1094bf1cb Decompiler: Method RGCTX, better array support, detect unknown generics via adjustor thunks 2026-08-08 23:30:42 +01:00
Sam Byass 4996fefbf4 Decompiler: Basic implementation of wasm support 2026-08-08 17:11:03 +01:00
Sam Byass d612cb3dd7 Decompiler: Remove assumptions of x86, bring arm64 up to parity, speed up analysis 2026-08-08 14:32:22 +01:00
Sam Byass 34a512de38 Decompiler: Handle arrays of structs, struct return buffers, interface method calls 2026-08-03 23:09:52 +01:00
Sam Byass a87d484b95 Decompiler: Stop having operands be raw object-typed 2026-08-02 14:12:15 +01:00
Sam Byass 3381214fc4 Decompiler: Recover static fields, throw helpers, and rgctx, fix bool flags, fix this param in IL, fix float handling somewhat 2026-07-25 23:48:16 +01:00
Sam Byass d0e3628e88 Core: Fix dll_il_recovery being completely broken 2026-07-25 16:58:41 +01:00
Sam Byass 17bcb005f7 Core+Lib: Stop using Il2CppTypeReflectionData in most places, it's not a good data type.
Also fixes silent coercion of SZArray types to Array[1] in various places in analysis
2026-07-25 16:21:39 +01:00
Jeremy Pritts 7f25c1da26 Support overriding default values for method parameters (#586) 2026-07-25 15:28:08 +01:00
ada-l0velace 9bfa655d65 GetTypeName: include generic type arguments (#582) 2026-07-19 15:42:37 +01:00
Jeremy Pritts bacfb4aa22 Diffable CS improvements (#577) 2026-07-12 23:38:18 +01:00
Jeremy Pritts 5ef1a1957c Remove reference assembly parameter from most type analysis constructors (#575) 2026-07-06 12:36:12 +01:00
Sam Byass 18bbf0d5a3 chore: Code cleanup 2026-07-04 19:58:38 +01:00
ada-l0velace 1d66cb3812 Diffable fieldrva literals (#572) 2026-07-04 19:40:12 +01:00
Jeremy Pritts 16b4efd8bd Support overriding field offsets (#566) 2026-07-04 18:40:59 +01:00
Jeremy Pritts 1261e37c37 Fix missing explicit interface implementations (#564) 2026-07-04 18:36:32 +01:00
Xpl0itR 30256772f9 Refactor Il2CppBinary and related components (#539) 2026-06-20 17:28:32 +01:00
Aaron Robinson 0ac9268db1 Fix attributes on metadata version >= 104 (#555) 2026-06-08 00:14:21 +01:00
Aaron Robinson 9b6e67d1f9 Add support for exported type definitions (#554) 2026-06-08 00:08:33 +01:00
Sam Byass e881176723 Decompiler: First pass on type propagation 2026-06-07 22:03:00 +01:00
Sam ByassandMilo 7fd44cac62 Rebase of #481 on current development
Original exploratory work by Milo (@TheUser-1231) in PR #481.

Co-authored-by: Milo <[email protected]>
2026-06-07 17:25:14 +01:00
Xpl0itR 9f6b2f6d76 Remove static mutable state from LibCpp2IL 2: Electric Boogaloo (#542) 2026-06-07 14:14:35 +01:00
Jeremy Pritts 0b8509573e Improve performance of converting contexts to AsmResolver types (#545)
The opportunities were discovered via performance profiling of Il2CppInterop.
2026-05-10 20:07:06 +01:00
Sam Byass 9638864c3f Core: Fix wasm signature calculation (hopefully for good?) 2026-05-02 18:50:52 +01:00
Sam Byass 9fcbb6b7ad Core: Fix invalid CA blob with very specific constructions 2026-03-22 03:50:09 +00:00
Sam Byass b83799a7f5 core: Fix support for nested array custom attribute params 2026-03-22 03:25:42 +00:00
ds5678 58871c22b3 LastIndexOf instead of IndexOf 2026-03-16 12:56:19 +00:00
ds5678 913b673e93 Fix diffable-cs throwing ArgumentOutOfRangeException 2026-03-16 12:56:19 +00:00
ds5678 5df0c1f430 Address feedback 2026-02-28 20:24:26 +00:00
ds5678 1a8c45e029 Upgrade to AsmResolver 6 beta 6 2026-02-28 20:24:26 +00:00
Sam Byass 4672b69a08 lib: Fix enum base type handling on v35+
Fixes #519. Fixes #518
2026-02-15 13:19:07 +00:00
Sam Byass 8c34e0497a lib: (untested) support for v105 + v106 2026-02-14 21:29:07 +00:00
Sam Byass e7ef9fa0d5 Lib: Support v35, v38, v39 2026-02-14 17:41:57 +00:00
ds5678 774a8b9c96 Change the meaning of MethodAnalysisContext::Overrides
It now specifically refers to methods that use `.override` in IL.
2026-01-18 02:00:10 +00:00
ds5678 0f26b32755 Check for HasDefault flag when emitting parameters 2025-09-12 17:01:01 +01:00
Jeremy Pritts 5c227aad56 Bump AsmResolver to 6 beta 4 (#487) 2025-09-12 16:58:45 +01:00
Jeremy Pritts 859d100253 ToTypeSignature performance improvement (#477) 2025-08-11 14:57:00 +01:00
Jeremy Pritts 033d8ba5e4 Expand API functionality (#475) 2025-08-11 14:50:00 +01:00
Jeremy Pritts 2b5fa59037 Handle self-referencing generic classes (#472) 2025-08-11 14:45:33 +01:00
Jeremy PrittsandSam Byass 9ce22e9116 Support overriding anything (#462)
Co-authored-by: Sam Byass <[email protected]>
2025-06-01 17:47:23 +01:00
ds5678 4d1eccb01f Improve Il2CppType handling 2025-06-01 17:27:28 +01:00
ds5678 717c40a73c Support injecting anything
* Nested types
* Events
* Properties
* Assemblies

Support additional metadata in injected assemblies

Make setter for TypeAnalysisContext::OverrideBaseType public

TypeAnalysisContext::InterfaceContexts as list rather than array

Fix sign bug

Support generic parameters on type contexts and method contexts

Make GenericParameterTypeAnalysisContext instances unique

Revert change to Il2CppGenericParameter::Index

Use attributes to determine if injected methods are static
* Also add hide by sig attribute for injected constructors

Support overrides on injected methods

In ControlFlowGraphOutputFormat, exclude injected assemblies

Ensure injected assemblies can't delete existing assemblies

Backing field on .NET Standard for injected method overrides

Implement requested change
2025-05-15 19:16:23 +01:00
ds5678 d3bbbb38e1 ContextToFieldDescriptor helper class 2025-05-15 13:03:02 +01:00
ds5678 b7eb4d8d65 Move GetPrimitive and make it public 2025-05-15 13:03:02 +01:00
ds5678 abee061bb6 Expand type system to support more types
* Boxed types
* Custom modifier types
* Pinned types
* Sentinel type
2025-05-15 13:03:02 +01:00
Jeremy Pritts e93c0fecc9 Implement some helpers to improve the debugging experience (#437)
* Implement some helpers to improve the debugging experience

* Revisions
2025-04-03 23:09:23 +01:00
Jeremy Pritts 7344147569 Don't set a field offset for static fields (#434) 2025-03-29 01:35:07 +00:00