EazyDevirt
EazyDevirt copied to clipboard
Support using as a library
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
internalaccess 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.