Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ReflectiveDLLInjection — 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. | Kitploit
Outils/GitHubGitHub/stephenfewer/reflectivedllinjection
Criminalistique MémoireExploitationPost-ExploitationRed TeamingDéveloppement de Charges Utiles
GitHubstephenfewer/reflectivedllinjection

ReflectiveDLLInjection

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.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
3.4k81657il y a 4 ansVérifié par Kitploit

À propos

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.

Vue d'ensemble

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.

  • L'exécution est transmise, soit via CreateRemoteThread(), soit via un petit shellcode d'amorçage, à la fonction ReflectiveLoader de la bibliothèque, qui est une fonction exportée présente dans la table d'exportation de la bibliothèque.
  • Comme l'image de la bibliothèque existe actuellement à un emplacement arbitraire en mémoire, le ReflectiveLoader calculera d'abord l'emplacement actuel de sa propre image en mémoire afin de pouvoir analyser ses propres en-têtes pour une utilisation ultérieure.
  • Le ReflectiveLoader analysera ensuite la table d'exportation de kernel32.dll du processus hôte afin de calculer les adresses de trois fonctions requises par le chargeur, à savoir LoadLibraryA, GetProcAddress et VirtualAlloc.
  • Le ReflectiveLoader allouera maintenant une région continue de mémoire dans laquelle il procédera au chargement de sa propre image. L'emplacement n'est pas important car le chargeur relocalisera correctement l'image ultérieurement.
  • Les en-têtes et sections de la bibliothèque sont chargés à leurs nouveaux emplacements en mémoire.
  • Le ReflectiveLoader traitera ensuite la copie nouvellement chargée de la table d'imports de son image, chargeant toute bibliothèque supplémentaire et résolvant les adresses de leurs fonctions importées respectives.
  • Le ReflectiveLoader traitera ensuite la copie nouvellement chargée de la table de relocalisation de son image.
  • Le ReflectiveLoader appellera ensuite la fonction de point d'entrée de son image nouvellement chargée, DllMain avec DLL_PROCESS_ATTACH. La bibliothèque a maintenant été chargée avec succès en mémoire.
  • Enfin, le ReflectiveLoader rendra l'exécution au shellcode d'amorçage initial qui l'a appelé, ou s'il a été appelé via CreateRemoteThread, le thread se terminera.

Compilation

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

Utilisation

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

Licence

Sous licence BSD à 3 clauses, veuillez consulter LICENSE.txt pour plus de détails.

Télécharger l’outil