RSS DEV-Gemeinschaft

Injektion von verwaltetem Code in native Prozesse

Dieses Projekt zeigt die DLL-Injektion, eine Technik, um Code in einen anderen Prozess zu injizieren. DLL-Injektion wird von Malware genutzt, hat aber auch legitime Anwendungen wie die Erstellung von Software-Plug-ins. Der Prozess umfasst das Öffnen des Zielprozesses, das Zuweisen von Speicher, das Schreiben des DLL-Pfads und das Laden der DLL mithilfe von LoadLibrary. Funktions-Hooking ermöglicht das Abfangen und Ändern von API-Aufrufen innerhalb des injizierten Prozesses. Die Windows-API ist abhängig von Bibliotheken wie kernel32.dll und ntdll.dll und interagiert über die SSDT mit dem Kernel. Die DllMain-Funktion einer DLL wird bei erfolgreicher Injektion ausgeführt. In diesem Beispiel wird eine C-Bibliothek injiziert und dann die CoreCLR-Laufzeit und eine verwaltete C#-DLL in einen nativen Prozess (wie notepad.exe) geladen. Die C#-DLL zeigt ein Meldungsfeld mit Prozessinformationen an. Das GitHub-Repository enthält den vollständigen Code. Der bereitgestellte C#-Code zeigt die Funktionalität der injizierten DLL. Das Projekt erfordert die Änderung des Codes mit den richtigen Pfaden zu CoreCLR und der injizierten Bibliothek.
favicon
dev.to
DLL injection of managed code into native process
Create attached notes ...