I have edited the source code and recompiled it. Can I write a plugin to override 3 libraries: - Nop.Services.dll - Nop.Web.exe - Nop.Web.Framework.dll
When I install the new plugin I will use 3 override libraries. When I do not install the plugin I use the default library.
Just use dependency injection to override services.
In your plugin override default nop services and register them using dependency registrar. If you don't want to override if the plugin is not installed, just check if plugin is installed (inside of dependency registrar).