All Projects → enkomio → Managedinjector

enkomio / Managedinjector

Licence: other
A C# DLL injection library

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Managedinjector

Injectioniii
Re-write of Injection for Xcode in (mostly) Swift
Stars: ✭ 2,680 (+9471.43%)
Mutual labels:  injection, reverse-engineering
Minject
Mono Framework Interaction / Injection Library for .NET (C++/CLI)
Stars: ✭ 42 (+50%)
Mutual labels:  injection, reverse-engineering
Pince
A reverse engineering tool that'll supply the place of Cheat Engine for linux
Stars: ✭ 987 (+3425%)
Mutual labels:  injection, reverse-engineering
Vac Hooks
Hook WinAPI functions used by Valve Anti-Cheat. Log calls and intercept arguments & return values. DLL written in C.
Stars: ✭ 103 (+267.86%)
Mutual labels:  injection, reverse-engineering
Memject
Simple Dll injector loading from memory. Supports PE header and entry point erasure. Written in C99.
Stars: ✭ 176 (+528.57%)
Mutual labels:  injection, reverse-engineering
Gamemaniptutorial
A tutorial for manipulating the rendering of a game (generally to increase its quality) if you only have a binary available
Stars: ✭ 119 (+325%)
Mutual labels:  injection, reverse-engineering
Pcsgolh
PCSGOLH - Pointless Counter-Strike: Global Offensive Lua Hooks. A open-source Lua API for CS:GO hacking written in modern C++
Stars: ✭ 56 (+100%)
Mutual labels:  injection, reverse-engineering
Twitterx
Keeping Twitter for macOS alive with code injection
Stars: ✭ 187 (+567.86%)
Mutual labels:  injection, reverse-engineering
Luject
🍹A static injector of dynamic library for application (android, iphoneos, macOS, windows, linux)
Stars: ✭ 203 (+625%)
Mutual labels:  injection, reverse-engineering
Il2cppinspector
Powerful automated tool for reverse engineering Unity IL2CPP binaries
Stars: ✭ 901 (+3117.86%)
Mutual labels:  reverse-engineering
Screverser
Reverse engineer for Smart Contracts
Stars: ✭ 13 (-53.57%)
Mutual labels:  reverse-engineering
Ret Sync
ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
Stars: ✭ 896 (+3100%)
Mutual labels:  reverse-engineering
Dwarf
Full featured multi arch/os debugger built on top of PyQt5 and frida
Stars: ✭ 916 (+3171.43%)
Mutual labels:  reverse-engineering
Romdump
EFI bios rom dumping tools
Stars: ✭ 14 (-50%)
Mutual labels:  reverse-engineering
Pretendo
Project moved to https://github.com/PretendoNetwork/Pretendo
Stars: ✭ 19 (-32.14%)
Mutual labels:  reverse-engineering
Emc
The EMC Framework (Easy Minecraft Client) - An easy to use Minecraft modding framework
Stars: ✭ 21 (-25%)
Mutual labels:  injection
Apk Mitm
🤖 A CLI application that automatically prepares Android APK files for HTTPS inspection
Stars: ✭ 893 (+3089.29%)
Mutual labels:  reverse-engineering
Procjack
PoC of injecting code into a running Linux process
Stars: ✭ 17 (-39.29%)
Mutual labels:  injection
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+3264.29%)
Mutual labels:  reverse-engineering
Androl4b
A Virtual Machine For Assessing Android applications, Reverse Engineering and Malware Analysis
Stars: ✭ 908 (+3142.86%)
Mutual labels:  reverse-engineering

Managed Injector

This project implements a .NET Assembly injection library (it is inspired by the snoopwpf project). The remote process can be a managed or unmanaged one.

Download

Usage

When you want to inject an assembly in a remote process you have to consider the following aspects:

  • The ManagedInjector project currently supports only 32 bit process
  • The remote process must be a windows application (it must process messages in a message loop)

If the above pre-conditions are satisfied you can inject an assembly and invoke an activation method. There are three possibilities to invoke the activation method:

  • You must specify the full method name to invoke (eg. this.is.my.namespace.class.method)
  • You can inject an executable that defines an EntryPoint method to execute (like a Console project)
  • You can define a method with the following signatue: <public|private> static void Inject()

This library is also used by Shed to inject a DLL in a remote process. You can see a video here.

For practical examples see the TestRunner project.

Adding dependencies

If the injected assembly has any dependencies on not standard .NET assemblies, you can add those dependencies with the AddDependency method.

Adding external files

If the injected assembly needs to load some external file in order to work correctly (like a configuration file) you can specify them with the AddFile method. This method will copy the specified file in the working directory of the injected process.

Example

Let's consider the following code:

using System;

namespace InjectedAssembly
{
    public class Main
    {
        // we use a default injection method name in order to execute our code in the remote process
        private static void Inject()
        {
            Console.WriteLine("Hello world from the injected process!");
        }
    }
}

in order to inject the Assembly generated from the above code it is enough to use the following code:

var pid = 1234;
var injector = new Injector(pid, Assembly.LoadFile("AssemblyToInject.dll"));
var injectionResult = injector.Inject();

Build

ManagedInjector is currently developed by using VisualStudio 2017 Community Edition (be sure to have the latest version installed). To build the source code be sure you have to:

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Antonio Parata - Core Developer - s4tan

License

Managed Injector is licensed under the Creative Commons.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].