
DNCI - .NET-Code-Injektor
DNCI ermöglicht die Injektion von .Net-Code (.exe oder .dll) in unmanaged Prozesse unter Windows.
Das Projekt ist wie folgt strukturiert:
Klassische .Net-Konsolenanwendung in Notepad++ injizieren
Dieses Beispiel verwendet die Datei InjectDemo.Console.ClassicNet.exe. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=processName --processName notepad++ --argument "OK BOY"
Klassische .Net-Konsolenanwendung in Prozess mit ID 66 injizieren
Dieses Beispiel verwendet die Datei InjectDemo.Console.ClassicNet.exe. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=PID --pid 66 --argument "OK BOY"
Versuch, eine klassische .Net-Konsolenanwendung in einen beliebigen laufenden Prozess zu injizieren
Dieses Beispiel verwendet die Datei InjectDemo.Console.ClassicNet.exe. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=BruteForce --argument "OK BOY"
Die Injektionsbibliothek wurde entwickelt, um von jedem .Net-Programm verwendet zu werden. Tatsächlich verwendet das DNCI-Befehlszeilenprogramm selbst die DNCI-Bibliothek.
Klassische .Net-Konsolenanwendung in einen Remote-Prozess injizieren
Injector.Library.InjectorConfiguration config = Injector.Library.InjectorConfigurationBuilder
.Instance()
.InjectThisClrBinary(@"<PATH_TO_BINARY>\InjectDemo.Console.ClassicNet.exe")
.ClrClassName("InjectDemo.Console.ClassicNet.Program")
.ClrMethodName("EntryPoint")
.WithArguments("OK - It Works Baby")
.InjectOnProcess("cmd") // Try to Inject on cmd process
.InjectOnProcess("chrome") // Try to Inject on chrome process
.InjectOnProcess("cmd.exe") // Try to Inject on cmd.exe process
.InjectOnProcess("calc") // Try to Inject on calc process
.InjectOnProcess("notepad++") // Try to Inject on notepad++ process
.Build();
Brute-Force-Injektion einer klassischen .Net-DLL-Anwendung in einen beliebigen verfügbaren Prozess
Injector.Library.InjectorConfiguration config = Injector.Library.InjectorConfigurationBuilder
.Instance()
.InjectThisClrBinary(@"<PATH_TO_BINARY>\InjectDemo.Dll.ClassicNet.dll")
.ClrClassName("InjectDemo.Dll.ClassicNet.Class1")
.ClrMethodName("EntryPoint")
.WithArguments("OK - It Works Baby")
.InjectWithBruteForce()
.Build();
// Create Injector Instance
DNCI.Injector.Library.Injector injector = new Library.Injector(configBuilderconfig);
// Execute the Injection
List<InjectorResult> result = injector.Run();
// Print Injection Result on Console
foreach (InjectorResult res in result)
{
Console.WriteLine(res);
}