Ce projet fait la démonstration de l'injection DLL, une technique permettant d'injecter du code dans un autre processus. L'injection DLL est utilisée par les logiciels malveillants, mais elle a également des utilisations légitimes, comme la création de plug-ins logiciels. Le processus implique l'ouverture du processus cible, l'allocation de mémoire, l'écriture du chemin DLL et le chargement de la DLL à l'aide de LoadLibrary. L'accrochage de fonction permet d'intercepter et de modifier les appels d'API dans le processus injecté. L'API Windows s'appuie sur des bibliothèques telles que kernel32.dll et ntdll.dll, interagissant avec le noyau via le SSDT. La fonction DllMain d'une DLL s'exécute lors de l'injection réussie. Cet exemple injecte une bibliothèque C, puis charge le runtime CoreCLR et une DLL C# managée dans un processus natif (comme notepad.exe). La DLL C# affiche une boîte de message contenant des informations sur le processus. Le référentiel GitHub contient le code complet. Le code C# fourni montre les fonctionnalités de la DLL injectée. Le projet nécessite la modification du code avec les chemins corrects vers CoreCLR et la bibliothèque injectée.
dev.to
DLL injection of managed code into native process
Create attached notes ...
