warbler / SharpMonoInjector Goto Github PK
SharpMonoInjector is a tool for injecting assemblies into Mono embedded applications, commonly Unity Engine based games. The target process usually does not have to be restarted in order to inject an updated version of the assembly. Your unload method must to destroy all of its resources (such as game objects).
SharpMonoInjector works by dynamically generating machine code, writing it to the target process and executing it using CreateRemoteThread. The code calls functions in the mono embedded API. The return value is obtained with ReadProcessMemory.
Both x86 and x64 processes are supported.
In order for the injector to work, the load/unload methods need to match the following method signature:
In releases, there is a console application and a GUI application available.
SharpMonoInjector’s People
Contributors
Stargazers
Watchers
Forkers
SharpMonoInjector’s Issues
Failed to inject assembly when there is a reference to another assembly
My current project always returns NULL from mono_class_from_name().
The project is built with .NET Framework v4.6.1 and for Any CPU (like the example assembly), and I’ve used the GUI app to test injecting it into a 32-bit Unity game. I’ve got the namespace (WhiteNoise.Cheat.Loader.Models), class name (Loader), and method (Load) correct, but the injection is never successful.
This is what my loading class looks like:
Only part of a ReadProcessMemory or WriteProcessMemory request was completed
For some reason application crashes when I click Refresh while dnSpy v6.0.5 (64-bit, .NET Core) is open.
Example assembly problem
So I used Visual Studio Installer to include the game development with unity workload and I even added the optional «Unity 2017.2 64-bit Editor». So then I opened the example assembly but the reference to UnityEngine was broken somehow? It did not automatically get the reference right so I added it manually «C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll». So then the example assembly compiles fine but the .dll is only 4kb? That can not be right? It also just crashes on injection so something must be wrong. Or am I using the wrong version of the UnityEngine.dll compared to the process I am injecting to? I don’t know if they should be the same?? I also tried the «Embed Interop Types» but then it won’t compile because of the errors.
Adding x64 support?
This works like a charm for x86 applications, for x64 it throws an error :/ looks like fasm.net only works for x86. Can x64 support be added?
Can't find any active process
I’ve been running Enter the Gungeon on the background, but the GUI injector is unable to recognize it as a process, and when I click Refresh, the injector just crashes.
Unloading issue
thanks for this cool tool. It works very good. However for the comfort I want to use the unloading too. Unloading in general seems to work just fine. It is at least calling the Unload() method I implemented in my dll which removes the GameObject.
However if I try to inject again, then the game crashes and Sharp Mono Injector says: Arithmetic Overflow Exception.
Do I have to anything else in my dll to unload?
ERROR: Injection failed: GetImageFromAssembly() = 0
When I try to inject, the game crashes and I get this error message.
I’ve looked at the source to try and find out what’s causing it but it’s beyond me.
Can anyone help?
Crashes on Windows 10
Hi there, i am having issues when injecting on Windows 10, the game client suddenly hard crashes. This does not happen on Windows 7 though.. any ideas?
Injection failed: mono_class_from_name() returned NULL + GAME CRASH
«
using System;
using UnityEngine;
namespace InjectUnityBased
<
public class ForceLoader
<
public static GameObject loadobject;
pls i need to fix that :/
mono-2.0-bdwgc.dll
Any idea how to get this to work with ‘mono-2.0-bdwgc.dll’?
I’ve tried adjusting the dll it looks for but no avail and doesn’t find any of the processes I’m looking for.
I fails on the line..
if (!Native.EnumProcessModulesEx( process.Handle, modulePointers, 0, out var bytesNeeded, ModuleFilter.LIST_MODULES_ALL))
and always returns ‘IntPtr.Zero’.
I know this game uses ‘mono-2.0-bdwgc.dll’ as I’ve been temporarily using a stand alone injector until I can integrate this into my code.
The console version of Sharp does not recognize any processes
Yesterday I tried to use the console interface of this injector, since the GUI version simply did not load the list of processes, it did not crash but no process appeared, so I tried with the console and then nothing, it is the same, I tried in different computers the same process and nothing, and yes, the executable.exe does not have spaces in case you are asked.
Anyway, any idea what might be going on?
Opens then closes
My issue is that whenever I open the console version, cmd opens up for an instant then immediately closes.
Could I get some help with this?
Injector is crashing the game
Here is the output of monoinjector
I am trying it on the game stationeers
help please
everytime i try to run an command i get this ‘smi.exe’ is not recognized as an internal or external command,
operable program or batch file. and this i swhat i typed in C:\Users\ninok>smi.exe inject -p unturned -a HInj.dll -n HInj -c Loader -m Load
Injection failed: mono_class_from_name() returned NULL
So I’ve come across a rather interesting issue, and I have no idea how to actually resolve it.
Essentially I’ve just been testing injecting into a game process, and it was working fine initially, however after a few loads and unloads I started getting a mono_class_from_name error.
I’ve tested with a new project, still getting the same error.
This is the ‘loader’ class
And what happens when I attempt to inject (same result for either GUI or Console)
Something I have noticed is that if I name the Load method as Init , it «»»works»»» (nothing is actually injected but smi reports success).
In fact as I was typing this out it started working again (using Load as the class name)
Could .NET be caching something, because I was trying to load/unload immediately before, but now DEMO was closed for around 10 minutes before I attempted the same command on the same dll, and it worked
Access Denied when enumerating process modules
Using the following parameters it spits out an error saying ‘Access Denied when enumerating process modules’: smi.exe inject -p «7DaysToDie.exe» -a 7dt2.dll -n _7dt2 -c Loader -m Init
I ran cmd as an administrator and the target process isn’t ran as an administrator.
Accessing objects which are inside the game
Hello, is it possible to access objects inside the game and do something with them? So far I tried GetComponent(«SceneManager»); and it returns null. I’m sure there is SceneManager class inside from dotNetPeek. Generally I would like some examples of changing elements in game instead of creating new. Thank you very much in advance.
How to run mono_runtime_invoke with parameters?
I’ve noticed the library only supports injecting with no parameters in Load method. However, I’m trying to pass a string to method Load in my Loader. How do I achieve this with some modification of the library to accept a method with parameters? Thank you!
Recommend Projects
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
Vue.js
Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
TensorFlow
An Open Source Machine Learning Framework for Everyone
Django
The Web framework for perfectionists with deadlines.
Laravel
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML.
Recommend Topics
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
server
A server is a program made to process requests and deliver data to clients.
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Visualization
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
Recommend Org
We are working to build community through open source technology. NB: members must have two-factor auth.
warbler/SharpMonoInjector
SharpMonoInjector is a tool for injecting assemblies into Mono embedded applications, commonly Unity Engine based games. The target process usually does not have to be restarted in order to inject an updated version of the assembly. Your unload method must to destroy all of its resources (such as game objects).
SharpMonoInjector works by dynamically generating machine code, writing it to the target process and executing it using CreateRemoteThread. The code calls functions in the mono embedded API. The return value is obtained with ReadProcessMemory.
Both x86 and x64 processes are supported.
In order for the injector to work, the load/unload methods need to match the following method signature:
In releases, there is a console application and a GUI application available.
About
A tool for injecting assemblies into Mono embedded applications, commonly Unity Engine based games
SharpMonoInjector (v2.5) Для Многих Игр
Хотим поделится отлично работающим инжектором SharpMonoInjector. Этот инжектор отлично подходит для игр, написанных на движке Unity, в том числе и для игры Muck. Используя его, вы можете безопасно внедрить хак в свою любимую игру и тем самым играть в нее, используя различные скрипты, которые вы загрузили.
Каждый чит сопровождается инструкциями по внедрению в игру, поэтому у вас не должно возникнуть проблем при запуске.
Скачать SharpMonoInjector Для Многих Игр Бесплатно
- Cheats.ADM
- 12.10.2021
- 1 705
- 1