Passer au contenu principal
FUN MOOC
  • Actualités
  • Cours
  • FormaPro
  • Établissements
  • À propos
  • FAQ
  • Vous êtes ici:
  • Accueil
  • Cours
  • RIP : Rétro-Ingénierie de Programmes

RIP : Rétro-Ingénierie de Programmes

Réf. 54014
CatégorieInformatique et programmation
Venez découvrir avec nous la Rétro-Ingénierie de Programmes !
  • Durée : 6 semaines
  • Effort : 24 heures
  • Rythme: ~4 heures/semaine
  • Langues: Français

Ce que vous allez apprendre

À la fin de ce cours, vous saurez :

  • comprendre les mécanismes de compilation ;
  • lire et comprendre des instructions assembleur d’un programme ;
  • examiner la structure interne des programmes fonctionnant sur Linux ;
  • prendre en main des outils dédiés à la rétro-ingénierie ;
  • vous déplacer au sein des graphes de flot de contrôle ;
  • décompiler un programme ;
  • mettre en place une analyse en boîte opaque ;
  • comprendre le fonctionnement interne d’un debugger ;
  • utiliser un debugger depuis les outils de rétro-ingénierie.

Description

La rétro-ingénierie de programme est l’activité qui consiste à comprendre le fonctionnement interne d’un programme sans avoir accès à son code source. Cela est particulièrement utile pour comprendre le fonctionnement d’un logiciel malveillant ou pour vérifier le niveau de sécurité proposé par un logiciel.

Ce cours donne les bases pour comprendre la structure interne d’un exécutable et utiliser les outils professionnels permettant de réaliser des analyses de programmes. Il, s'adresse aussi bien aux étudiants, qu'aux professionnels et à tout passionné de sécurité informatique.

Pour commencer, nous rappelons le processus de compilation ainsi que le format des fichiers exécutables.

Ensuite, nous analysons le programme sans l’exécuter. C’est ce qu’on appelle une analyse statique. Nous utilisons des outils plébiscités par les professionnels de la cybersécurité.

Enfin, nous présentons la mise en place d’analyse dynamique des programmes pour enrichir les connaissances acquises lors d'analyse statique.

Format

Le MOOC est organisé en trois modules. 
Chaque module, d’une durée de deux semaines, comporte une partie cours,
des manipulations pas-à-pas et des exercices sous forme de challenges ludiques.

Prérequis

Maîtrise de base du langage C.
Utilisation de la ligne de commande Linux.
Notions d’assembleur.

Evaluation et Certification

L'évaluation est basée sur les exercices de mise en pratique proposés au fil du MOOC.
Les apprenants ayant atteint le seuil de validation de 65% recevront un badge de suivi avec succès du MOOC.

Plan de cours

  • MODULE 1 : Rappels de compilation.
    • Rappels de compilation de programmes écrits en C.
    • Compréhension du contenu d’un exécutable et lecture de directives assembleur.
    • Étude de la structure d’un exécutable Linux (ELF) et de ses différentes sections constitutives (bss, data, text, symtab, ...).
  • MODULE 2 : analyse statique
    • Présentation des outils professionnels de rétro-ingénierie de programmes
    • Navigation dans un code assembleur grâce aux structures d’analyse statique usuelles (CFG, X-ref).
    • Comparaison de la sortie de la décompilation d’un exécutable avec le code C l’ayant généré.
  • MODULE 3 : Analyse dynamique
    • Comparaison des techniques d’analyse statique et dynamique
    • Présentation du fonctionnement d’une analyse en boîte opaque
    • Étude du fonctionnement d’un debugger (signals, sigaction, ptrace) et son utilisation pour la rétro-ingénierie.

Équipe pédagogique

Pierre Graux

Catégories

Pierre Graux est enseignant-chercheur à l’Université de Lille et membre du laboratoire CRISTAL (Centre de Recherche en Informatique, Signal et Automatique de Lille). Il fait partie de l’équipe de recherche 2XS (eXtra Small, eXtra Safe)

Thomas Vantroys

Catégories

Thomas Vantroys est enseignant-chercheur à l’Université de Lille et membre du laboratoire CRISTAL (Centre de Recherche en Informatique, Signal et Automatique de Lille). Il est membre de l’équipe de recherche 2XS (eXtra Small, eXtra Safe)

Établissements

Université de Lille

Licence

Licence pour le contenu du cours

Attribution - Pas d’Utilisation Commerciale - Pas de Modification

Vous êtes autorisé à :

  • Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats

Selon les conditions suivantes :

  • Attribution — Vous devez créditer l'oeuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'offrant vous soutient ou soutient la façon dont vous avez utilisé son oeuvre.
  • Pas d’Utilisation Commerciale — Vous n'êtes pas autorisé à faire un usage commercial de cette oeuvre, tout ou partie du matériel la composant.
  • ​​​​​​​Pas de modifications — Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'oeuvre originale, vous n'êtes pas autorisé à distribuer ou mettre à disposition l'oeuvre modifiée.

Licence pour le contenu créé par les participants du cours

Tous droits réservés

"Tous droits réservés" est une formalité du droit d'auteur indiquant que le détenteur du droit d'auteur se réserve, ou détient pour son propre usage, tous les droits prévus par la loi sur le droit d'auteur.

FacebookTwitterLinkedin

En savoir plus

  • Aide et Contact
  • A propos de FUN
  • Foire aux questions
  • Boutique en ligne
  • Mentions légales
  • Politique de confidentialité
  • Infolettres
  • Conditions générales d'utilisation
  • Conditions générales de vente
  • Charte utilisateurs
  • Accessibilité : partiellement conforme
  • Plan de site
  • Gestion des cookies
Logo FUN Mooc propulsé par Richie