EazyDevirt icon indicating copy to clipboard operation
EazyDevirt copied to clipboard

Resolver improvements

Open puff opened this issue 1 year ago • 2 comments

More efficient & accurate member resolver. Adds a new toggle-able option to require dependencies when resolving methods utilizing generics for more accuracy: --require-deps-for-generics

TODO:

  • [x] Types
  • [x] Methods
  • [x] Fields
  • [x] EazCalls (VM method -> vm method calls)

puff avatar Nov 05 '24 16:11 puff

I was asked about the status of this PR privately, so I've decided to post an update here.

It's mostly complete on my local branch, but I am waiting on https://github.com/Washi1337/AsmResolver/issues/598 to be properly fixed upstream which is likely going to take a while as it's likely going to require a rewrite of TypeNameParser

Also, as mentioned in #23, it may be technically possible to not require dependencies for accurately resolving generic methods by analyzing the devirtualized instructions or stack (possibly using Echo) to find the parameter indices, but I don't have the motivation to implement this yet.

puff avatar Feb 20 '25 15:02 puff

Finished revamping core functionality of the resolver, now waiting for https://github.com/Washi1337/AsmResolver/commit/61f91154d626bbd1db6cbeadcde0a74bd41ac1e9 to be included in nuget release.

puff avatar Mar 09 '25 20:03 puff