Using Snoop to inject a C# dll into another managed process

May 31, 2012 at 2:30 AM

Following from being able to use Snoop in O2  and scripting its 'GoBabyGo' injection process , I was wondering if we can use the ManagedInjector*.dll and ManagedInjectorLauncher*.exe to inject/execute another dll into managed processes.

The code in the ManagedInjector*.dll seems to be quite generic (and not Snoop specific) so it looks like it should be doable.

Anybody as done this before?

Also, is there any documentation of the Injection workflow (i.e how  Snoop is injected into another managed process with WPF controls loaded)

Thanks

Coordinator
Jun 1, 2012 at 1:43 AM

Yes, the code is fairly generic ... and it should be doable to reuse the ManagedInjector pieces ... I don't know if anyone has done this before ... I would expect they have. Several people have downloaded the code ... just to see how the injection process works.

Unfortunately there is no documentation on the injection workflow. Our documentation is woefully inadequate, in general. I hope to be improving that soon.

Jun 4, 2012 at 1:06 AM

I was able to do it :)

Here is a demo: Video: Injecting C# DLLs into Managed (C#) and Unmanaged (C++) processes

The scripts that create this are at : https://github.com/o2platform/O2.Platform.Scripts/tree/master/3rdParty_Tools/Snoop/Process%20Injection%20Tests