Sam Byass
edee922680
Decompiler: Handle box and icall lookup by name, remove rgctx loads and leftover metadata init calls to reduce errors in the output
2026-08-09 23:08:05 +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
ae62110d7b
Decompiler: Implement x86 division support, add modulo operation support, resolve calls to CRT math operations
2026-08-09 16:45:34 +01:00
Sam Byass
a64be49494
Decompiler: Boolean logic and constant-folding
2026-08-09 01:13:09 +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
9c6c017297
Decompiler: Fix static fields checking constants, fix user stream heap corruption, remove inlined write barriers, fix some constructor calls
2026-08-08 21:18:34 +01:00
Jeremy Pritts
1dfeeddc4e
Fix pre-v29 attributes ( #596 )
2026-08-03 23:11:09 +01:00
Sam Byass
34a512de38
Decompiler: Handle arrays of structs, struct return buffers, interface method calls
2026-08-03 23:09:52 +01:00
Luke
cb993837c6
More analysis performance improvements ( #595 )
...
* make ThrowHelperNamesByAddress thread safe
* check if we actually have to reset sources in ResetSources
* SsaForm: make Rename iterative
* CopyCoalescer: only process potentially changed blocks in ComputeBlockLiveOut
2026-08-03 13:49:21 +01:00
Sam Byass
35707d64ca
Decompiler: Support szarray, virtual calls, address of local, plus clean up ILSpy output by adjusting the IL
2026-08-02 23:23:26 +01:00
Sam Byass
2d085901ae
Decompiler: Remove implicit null checks, resolve fields on generics, resolve generic methods which aren't in the metadata by address if we can
2026-08-02 15:17:08 +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
776c5f1d42
Decompiler: Recover delegate invokes
2026-07-25 20:24:46 +01:00
Sam Byass
034f873e7d
Decompiler: Find and remove write barriers
2026-07-25 17:47:06 +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
Luke
21402fc2b9
StackAnalyzer fixes ( #588 )
2026-07-25 15:41:19 +01:00
Trevor
5cebc0d9c1
Support overriding EnumUnderlyingType ( #587 )
2026-07-25 15:28:22 +01:00
Jeremy Pritts
7f25c1da26
Support overriding default values for method parameters ( #586 )
2026-07-25 15:28:08 +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
72be7f30fd
Core: Fix the possibility that other methods could see a partially-constructed GIT.
...
Closes #569
2026-07-04 21:00:31 +01:00
Jeremy Pritts
d5653ec399
Ensure BaseMethod is null for explicit interface implementations ( #567 )
2026-07-04 18:46:58 +01:00
Jeremy Pritts
16b4efd8bd
Support overriding field offsets ( #566 )
2026-07-04 18:40:59 +01:00
Sam Byass
45d5b32642
Decompiler: Recover newobj from il2cpp_object_new
2026-06-21 18:54:28 +01:00
Sam Byass
f4a342cad7
Decompiler: Recover float literals
2026-06-21 17:02:11 +01:00
Xpl0itR
30256772f9
Refactor Il2CppBinary and related components ( #539 )
2026-06-20 17:28:32 +01:00
Jeremy Pritts
5d99a946db
Fix some build warnings ( #562 )
2026-06-20 17:16:08 +01:00
Jeremy Pritts
bba31593b2
Fix null ManifestModule for InjectedAssemblyAnalysisContext ( #561 )
2026-06-20 17:04:20 +01:00
Sam Byass
617fb7e0f3
Decompiler: Strip metadata init blocks
2026-06-20 16:50:56 +01:00
Sam Byass
73c00b6725
Decompiler: Fix simplifier replacing incorrect constants, add methodInfo resolution
2026-06-14 18:31:38 +01:00
Sam Byass
17f3caf1f8
Decompiler: Fixing up simplifier and splitting into pre- and post-ssa, fixes constants being selected through diamonds
2026-06-14 17:08:00 +01:00
Jeremy Pritts
79fe832f66
Add DefaultName for AttributeGeneratorMethodAnalysisContext ( #556 )
2026-06-08 19:59:04 +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
Jeremy Pritts
c6aaa5ee93
Fix name overrides for constructed types ( #552 )
2026-06-07 20:02:55 +01:00
Sam Byass
0b13ff77c2
Decompiler: convert flag arithmetic to conditional jumps
2026-06-07 19:45:54 +01:00
Sam Byass
14e0335869
Decompiler: add SSA dead-code elimination
2026-06-07 17:25:31 +01:00
Sam Byass
75f74b4f8e
Decompiler: Fix SSA / dominator correctness
2026-06-07 17:25:25 +01:00
Sam Byass and Milo
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
Jeremy Pritts
f1dd6d1228
Support null Definition for CustomAttributeIndex ( #551 )
2026-06-07 14:24:01 +01:00
Xpl0itR
9f6b2f6d76
Remove static mutable state from LibCpp2IL 2: Electric Boogaloo ( #542 )
2026-06-07 14:14:35 +01:00
Jeremy Pritts
6af99f2185
Use ReadOnlySpan<> in InjectedMethodAnalysisContext ( #547 )
...
* Use ReadOnlySpan<> in InjectedMethodAnalysisContext
* Less Linq
2026-05-10 22:10:24 +01:00
ds5678
913b673e93
Fix diffable-cs throwing ArgumentOutOfRangeException
2026-03-16 12:56:19 +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
Minecool
3ef4530a63
Fixed broken parenthesis
2026-02-14 13:49:12 +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