All Projects → ChadSki → Sharpneedle

ChadSki / Sharpneedle

Licence: bsd-2-clause
Inject C# code into a running process

Projects that are alternatives of or similar to Sharpneedle

Vac Hooks
Hook WinAPI functions used by Valve Anti-Cheat. Log calls and intercept arguments & return values. DLL written in C.
Stars: ✭ 103 (-65.78%)
Mutual labels:  dll, injection
Reflexil
The .NET Assembly Editor
Stars: ✭ 1,117 (+271.1%)
Mutual labels:  dll, injection
Process Inject
在Windows环境下的进程注入方法:远程线程注入、创建进程挂起注入、反射注入、APCInject、SetWindowHookEX注入
Stars: ✭ 395 (+31.23%)
Mutual labels:  dll, injection
ProcessInjector.NET
Learning Process Injection and Hollowing techniques
Stars: ✭ 23 (-92.36%)
Mutual labels:  dll, injection
Kernel-dll-injector
Kernel-Mode Driver that loads a dll into every new created process that loads kernel32.dll module
Stars: ✭ 256 (-14.95%)
Mutual labels:  dll, injection
Injectcollection
A collection of injection via vc++ in ring3
Stars: ✭ 131 (-56.48%)
Mutual labels:  dll, injection
Pcsgolh
PCSGOLH - Pointless Counter-Strike: Global Offensive Lua Hooks. A open-source Lua API for CS:GO hacking written in modern C++
Stars: ✭ 56 (-81.4%)
Mutual labels:  dll, injection
Invoker
Penetration testing utility, and antivirus assessment tool.
Stars: ✭ 178 (-40.86%)
Mutual labels:  dll, injection
FA2sp
C&C Red Alert 2: Yuri's Revenge Map Editor : Final Alert 2 extension
Stars: ✭ 28 (-90.7%)
Mutual labels:  dll, injection
UniversalUnityHooks
A framework designed to hook into and modify methods in unity games via dlls
Stars: ✭ 78 (-74.09%)
Mutual labels:  dll, injection
SilentXMRMiner
A Silent (Hidden) Monero (XMR) Miner Builder
Stars: ✭ 417 (+38.54%)
Mutual labels:  injection
ezinject
Modular binary injection framework, successor of libhooker
Stars: ✭ 47 (-84.39%)
Mutual labels:  injection
cozinha loader
An injector focused on undetectability that automatically injects a DLL into the target process with VAC3 bypass.
Stars: ✭ 53 (-82.39%)
Mutual labels:  dll
Commodity Injection Signatures
Commodity Injection Signatures, Malicious Inputs, XSS, HTTP Header Injection, XXE, RCE, Javascript, XSLT
Stars: ✭ 267 (-11.3%)
Mutual labels:  injection
SQL Injection Payload
SQL Injection Payload List
Stars: ✭ 62 (-79.4%)
Mutual labels:  injection
CSwift
C Module for Swift, Swift Script and Dynamic Library Call;Swift中直接调用C语言源程序的展示程序
Stars: ✭ 46 (-84.72%)
Mutual labels:  dll
gulp-inject-partials
A recursive injection of partials based on their path name. Implementation of specific case of gulp-inject.
Stars: ✭ 26 (-91.36%)
Mutual labels:  injection
EVA2
Another version of EVA using anti-debugging techs && using Syscalls
Stars: ✭ 223 (-25.91%)
Mutual labels:  injection
Spotify-Internal
Remove ads and add extra features for spotify desktop version.
Stars: ✭ 25 (-91.69%)
Mutual labels:  dll
Kangaru
🦘 A dependency injection container for C++11, C++14 and later
Stars: ✭ 297 (-1.33%)
Mutual labels:  injection

SharpNeedle

A project for properly injecting C# dlls into other processes.

Note: SharpNeedle currently only supports 32-bit processes. You are welcome to create a pull request which adds 64-bit support.

Rationale

While merely loading your custom dll injected into a target process' memory space is fun, that is only half of the story. Most dll injection tutorials will describe in detail the first half, but then leave you to run your code from within DllMain, a dangerous and limited proposition. For more information about why you should avoid doing anything interesting in your DllMain, read this thread by Raymond Chen.

This project aims to change that dearth of good dll-injection info, providing an open-source way of not only injecting a dll, but also walking the export address table and calling a method on your dll.

This project is specifically geared towards injecting managed code into another process. We will first inject the "Bootstrapper" module, then tell it to load the CLR and start our example managed project.

Usage

Developed in Visual Studio Community 2015 on Windows 10.

In src\Launcher\Launcher.cpp, specify the process name to inject into. In src\ExampleProject\Example.cs, customize EntryPoint() to do as you like. Ensure the process you are injecting into is running. Compile and run with appropriate permission levels. I use an unelevated Visual Studio, then run output from an Administrator command prompt.

Developers

The most interesting file is src\Launcher\Injection.cpp, which deals with walking DLL export tables and creating remote threads.

License

The entirety of my work on this project is released under the 2-clause BSD license.

'src\Launcher\HCommonEnsureCleanup.h' was provided courtesy of GameDeception.net and its license is unclear.

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].