แก้ไขครั้งสุดท้ายโดย profps เมื่อ 2015-11-17 00:42
Been working on this for a while now. It's a .NET library with various injection methods which make it very straightforward to make your own injectors/loaders. It even includes a public Manual Map injection method.
Although the source is in C#, the compiled library is usable in both VB.NET and C#, depending on your language preferences. I have included both the raw binary as well as the project folder in the attachments to this post.
The source is fairly documented, but I get lazy so there may be sections that you'll need to work out for yourself when looking into the source. The project targets .NET 2.0, so there should be no compatibility issues with projects you want to make.
To use the library, simply create a new .NET project and add the library as a project reference. (Project >> Add Reference >> Browse >> Locate DLL)
I've implemented this library using a factory pattern, so using the various different injection methods are very straightforward. All the various types of injection inherit from the base "InjectionMethod" class, which implements two different methods for injecting.
Code:
Inject(...) // inject a single moduleor
InjectAll(...) // inject a range of modules
Both of these methods have various overloads but the key point is that each method can either inject from a PortableExecutable object, or from a file location. A PortableExecutable object can be created in-memory, or from a file location. This means that when using ManualMap injection, it's possible to inject a DLL without it ever touching the harddisk during the injection process. Standard/ThreadHijack methods both call LoadLibrary, so even if you pass a PortableExecutable object to these injection methods, the module will be written to disk in a random location.
The two main namespaces you'll likely refer to are going to be
Code:
using InjectionLibrary;
using JLibrary.PortableExecutable;
Example 1: Using the creation factory to make an injection method
Code:
InjectionMethod injector = InjectionMethod.Create(InjectionMethodType.ManualMap);
Example 2: Super-stealthy injection from resources.
Code:
var injector = InjectionMethod.Create(InjectionMethodType.ManualMap);
var processId = Process.GetProcessesByName("engine")[0].Id;
var hModule = IntPtr.Zero;
using (var img = new PortableExecutable(Properties.Resources.TestDll))
hModule = injector.Inject(img, processId);
if (hModule != IntPtr.Zero)
{
// injection was successful
}
else
{
// injection failed
if (injector.GetLastError() != null)
MessageBox.Show(injector.GetLastError().Message);
}
ดาวน์โหลด dll library
ผู้เข้าชม หากคุณต้องการดูเนื้อหาที่ถูกซ่อน จะต้อง ตอบกลับโพสต์นี้ก่อน
|