puff / EazyDevirt

A tool for automatically reconstructing IL code from an assembly virtualized with Eazfuscator.NET
GNU General Public License v3.0
148 stars 33 forks source link

Resolver issues #13

Open puff opened 1 year ago

puff commented 1 year ago

The resolver is slow, fails to handle some types, and is hard to read and navigate. It has problems with nested types and types/methods using generics in particular.

It would be good to completely rewrite it. There are many useful helpers in AsmResolver that could be utilized like TypeNameParser, SignatureComparer, GenericContext, TypeDescriptorExtensions.

VMInlineOperandData may also need to be rewritten. Having it recursively read the data of each VMInlineOperand property in it (DeclaringType, GenericArguments, etc) would be helpful, especially when resolving methods utilizing type generics.