Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
drow — Injecte du code dans les exécutables ELF après la construction | Kitploit
Outils/GitHubGitHub/zznop/drow
ExploitationRétro-ingénierieAnalyse de BinairesExploitation de Binaires
GitHubzznop/drow

drow

Injecte du code dans les exécutables ELF après la construction

Voir le dépôt
23634il y a 2 ansVérifié par Kitploit

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

drow Build Status

démo drow

Description

TL;DR

drow est un utilitaire en ligne de commande utilisé pour injecter du code et modifier le point d'entrée d'exécutables ELF (post-compilation). Il prend en entrée des exécutables ELF non modifiés et produit un ELF modifié contenant une charge utile intégrée fournie par l'utilisateur qui s'exécute au moment de l'exécution.

Un peu plus de détails ...

Drow prend les étapes suivantes pour créer le nouvel ELF patché :

  1. Mapper l'exécutable ELF cible non modifié et la charge utile fournie par l'utilisateur, un blob indépendant de la position
  2. Localiser le premier segment exécutable en analysant les en-têtes de programme
  3. Localiser la dernière section dans le segment exécutable en analysant les en-têtes de section
  4. Agrandir le sh_size de l'en-tête de section de la dernière section (dans le segment) et p_memsz/p_filesz de l'en-tête de programme de la taille de la charge utile fournie par l'utilisateur
  5. Corriger les sh_offset des en-têtes de section et les p_offset des en-têtes de programme (décaler vers le bas les sections et segments pour faire de la place pour la charge utile et un petit « stager stub »)
  6. Corriger les offsets dans l'en-tête ELF (e_shoff, e_phoff, etc.)
  7. Modifier l'en-tête ELF e_entry (offset du point d'entrée ELF) pour pointer vers le code injecté
  8. Créer un nouvel ELF contenant le code injecté et les en-têtes ELF modifiés

En plus d'injecter la charge utile fournie par l'utilisateur, drow injecte un petit stub de code qui est préfixé au début de la charge utile. Ce stub est conçu pour appeler la charge utile. Si la charge utile est écrite pour retourner à l'appelant, après le retour de la charge utile, le stager effectue un tailcall vers _start, restaurant l'exécution afin que le programme puisse s'exécuter comme prévu.

Compilation

Installez gcc et scons. Exécutez ensuite scons depuis la racine du répertoire.

Autres informations

En plus de compiler drow, ce projet compile également une charge utile Linux x86-64 nommée rappers_delight.bin qui imprime simplement sur stdout. Cela peut être utilisé pour les tests. Actuellement, drow ne fonctionne qu'avec les fichiers ELF64 ciblant x86-64.

Autres travaux

De nombreux travaux open source ont été effectués dans ce domaine. Je vous encourage également à consulter les projets et publications suivants :

  • The Cerberus ELF Interface: http://phrack.org/issues/61/8.html
  • The Backdoor Factory: https://github.com/secretsquirrel/the-backdoor-factory
  • ELFSH: http://www.eresi-project.org/
Télécharger l’outil