Outils d'utilisateurs

Outils du Site


injection_elf

Ceci est une ancienne révision du document !


1. Introduction

Cette article va vous présenter comment injecter du code de manière statique dans un fichier ELF, que ce soit sur architecture 32 bits ou 64 bits, sous une distribution GNU/Linux.

2. Qu'est-ce que le format ELF ?

Afin de comprendre le fonctionnement de l'injection de code, il est nécessaire d'avoir une idée globale de ce qu'est le format ELF et de comment il fonctionne.

Les fichiers ELF (Executable and Linking Format) peuvent être des exécutables normaux (ls, dd, ponysay,…), des bibliothèques partagées (libcrypto.so, libglib.so,…), des fichiers core (core dump) et des fichiers objets (les fichiers .o générés pas les compilateurs qui n'ont pas encore été liés pour devenir des exécutables).

Un fichier ELF va être constitué d'un en-tête et soit d'une table d'en-tête de programme ou d'une table des en-têtes de sections, ou alors des deux. Dans notre cas, il est nécessaire de posséder la table d'en-tête de programme, de toute manière celle-ci est obligatoire pour les exécutables. En effet, cette partie va contenir les informations sur les sections du programme qui vont comprendre le code qui sera mappé dans l'espace d'adressage du programme.

3. Injection entre 2 sections LOAD

Liens externes

injection_elf.1341503758.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)