/ruptura

A Windows DLL injection, function interception, and memory manipulation library for .NET.

Primary LanguageC#BSD Zero Clause License0BSD

Ruptura

Ruptura

A Windows DLL injection, function interception, and memory manipulation library for .NET.

License Commits Build Discussions Discord Zulip


Ruptura provides a set of libraries that make it easy to inject a managed .NET assembly into arbitrary Windows (and Wine) processes for the purposes of function hooking and memory manipulation.

Ruptura injects a bundled native module into the target process, which then locates the .NET runtime in either framework-dependent or self-contained mode and initializes it, after which a user-specified managed assembly is executed - all without the user writing a single line of native code. Additionally, a library facilitating common function hooking and memory manipulation scenarios is available for use by the injected assembly.

Usage

This project offers the following packages:

Package Description Downloads
Vezel.Ruptura.Injection Provides the infrastructure to inject the .NET runtime and assemblies into processes. Downloads
Vezel.Ruptura.Hosting Provides the hosting model for injected programs. Downloads
Vezel.Ruptura.Memory Provides function hooking, memory manipulation, and call tracing utilities. Downloads
Vezel.Ruptura.System Provides lightweight managed wrappers around operating system objects such as processes and threads. Downloads

To install a package, run dotnet add package <name>.

See the sample programs for examples of what the API can do. The samples can be run with dotnet example.

For more information, please visit the project home page.

Building

You will need the .NET SDK and Visual Studio with C/C++ support installed. Simply run ./cake (a Bash script) to build artifacts. You can also use ./cake pack if you do not want to build the documentation (which requires Node.js).

These commands will use the Debug configuration by default, which is suitable for development and debugging. Pass -c Release instead to get an optimized build.

License

This project is licensed under the terms found in LICENSE-0BSD.