LIEF - Bibliothèque d’instrumentation de formats exécutables

Intervenant(s) : Romain Thomas

  • Langue : Anglais
  • Niveau : Expert
  • Type d'événement : Conférence
  • Date : Mardi 4 juillet 2017
  • Horaire : 16h20
  • Durée : 40 minutes
  • Lieu : Lecture hall J 020

Vidéo : https://rmll.ubicast.tv/videos/lief_63569/

Public cible : GeeksProfessionnels

Quand on analyse un fichier exécutable, la première couche d’information accessible est le format exécutable du fichier. Beaucoup d’outils et de bibliothèques existantes permettent d’analyser et d’instrumenter du code assembleur dans un format donné, mais aucun n’est standard et ne supporte simultanément les trois principaux formats exécutables en lecture et en écriture.

Dans cet exposé, nous expliquerons la logique derrière les choix d’architecture de LIEF, ce que LIEF permet de faire et nous pencherons sur des cas d’usage.

LIEF est une bibliothèque multi-plateforme et peut être utilisé au travers d’une API en langage Python, C++ et C. La bibliothèque permet d’analyser les structure standards mais également des structures plus complexes telles que les signature PE (Authenticode) et les table de hachage ELF. Des cas d’usage typiques sont l’injection de code dans un binaire ou une bibliothèque, la redirection du flot de contrôle qui permet des hooks de fonctions et l’offuscation de certaines parties d’un binaire.

LIEF factorise les caractéristiques communes des trois formats supportés ce qui permet de développer des scripts qui fonctionnent simultanément dans les trois cas.

Romain Thomas
Romain Thomas est ingénieur R&D en sécurité à Quarkslab.
Ses travaux s’intéressent à l’offuscation et à la rétro-conception.
Il a développé LIEF, une bibliothèque multi-plateforme de manipulation de formats binaires (PE, ELF, Mach-O).

titre documents joints

Slides (PDF - 862.4 ko)