EazyDevirt icon indicating copy to clipboard operation
EazyDevirt copied to clipboard

Support using as a library

Open puff opened this issue 2 years ago • 0 comments

Currently, everything is built into a standalone executable. It would be nice to be able to use the project as a library to allow a more extensible pipeline.

Tasks to be done:

  • [ ] Split Core into separate projects.
  • [ ] Make Core completely separated from the pipeline. - For example, IO namespace uses DevirtualizationContext from the pipeline. We should move IO away from the Core namespace.
  • [ ] Fix the internal access modifier spam.
  • [ ] Split MethodDevirtualizer stage into MethodDisassembler and MethodRecompiler stages. - Decouple VMMethod and other VM architecture from CIL and keep them more VMIL. - Allows other stages to modify instructions before recompilation (i.e. Fixers or Data Devirtualization)
  • [ ] Move Devirtualization namespace to its own project and implement an IPipeline. - Decentralizes the pipeline and allow for more pipelines to be created and used.

puff avatar Jun 11 '23 22:06 puff