Skip to content

Emit Loader is a POC Dynamic DLL Loader. Its Main Purpose is to dynamically load DLLs into .Net Framework AppDomains without spinning up a seperate AppDomain.

License

Notifications You must be signed in to change notification settings

KoromaruKoruko/EmitLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emit Loader is a POC DLL dynamic runtime loader, which will be extended in the near future to provide mixin and runtime modification possibilities.

Currently its main and only function is to provide a dynamic load context option for .Net Framework without the use of AppDomains and transparent proxys.

Emit Loader loads the target DLL directly into the current AppDomain as a Dynamic Assembly and provides simple security over what is accessible to the loaded DLL. As the DLL is loaded as a Dynamic Assembly once all references to said Assembly are removed or inaccessible the Assembly will be unloaded during the next GC cycle.

Note: this library is currently useless for .Net Core and .Net Unified as AssemblyLoadContext fufills this feature with less overhead and in a vastly more optimized way.


This Library will be re-written in order to provide additional more useful features such as:
- Function Redirection/Misdirection.
- Type Manipulation
- Function Fixup (Supplying Host Defined Extern Functions during load time)
- More indepth Access Control and Security Enforcement.
- Type Redirection/Misdirection (think Host Defined Standard Library Types)
- Function Manipulation much like how Harmony allows Function Concatination, but directly embued into the function definition without the need for function swaps and call chains.
- Function Multiversioning at loadtime (Load Specific Function Definition based on predefined conditions, such as SIMD support/OS platform)

About

Emit Loader is a POC Dynamic DLL Loader. Its Main Purpose is to dynamically load DLLs into .Net Framework AppDomains without spinning up a seperate AppDomain.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages