
L'injection de DLL réflexive est une technique d'injection de bibliothèque dans laquelle le concept de programmation réflexive est utilisé pour effectuer le chargement d'une bibliothèque depuis la mémoire dans un processus hôte.
L'injection de DLL réflective est une technique d'injection de bibliothèque dans laquelle le concept de programmation réflective est employé pour effectuer le chargement d'une bibliothèque depuis la mémoire dans un processus hôte. Ainsi, la bibliothèque est responsable de son propre chargement en implémentant un chargeur minimal de fichier Portable Executable (PE). Elle peut ensuite gérer, avec une interaction minimale avec le système et le processus hôte, la manière dont elle se chargera et interagira avec l'hôte.
L'injection fonctionne de Windows NT4 jusqu'à Windows 8 inclus, sur x86, x64 et ARM le cas échéant.
Le processus d'injection à distance d'une bibliothèque dans un processus comporte deux étapes. Premièrement, la bibliothèque que vous souhaitez injecter doit être écrite dans l'espace d'adressage du processus cible (ci-après désigné comme le processus hôte). Deuxièmement, la bibliothèque doit être chargée dans ce processus hôte de manière à satisfaire les attentes d'exécution de la bibliothèque, comme la résolution de ses imports ou sa relocalisation vers un emplacement approprié en mémoire.
En supposant que nous ayons l'exécution de code dans le processus hôte et que la bibliothèque que nous souhaitons injecter ait été écrite à un emplacement arbitraire de la mémoire du processus hôte, l'injection de DLL réflective fonctionne comme suit.
Ouvrez le fichier 'rdi.sln' dans Visual Studio C++ et compilez la solution en mode Release pour créer inject.exe et reflective_dll.dll
Pour tester, utilisez inject.exe pour injecter reflective_dll.dll dans un processus hôte via un identifiant de processus, par exemple :
inject.exe 1234
Sous licence BSD à 3 clauses, veuillez consulter LICENSE.txt pour plus de détails.