Skip to main content
FUN MOOC
  • News
  • Courses
  • FormaPro
  • Organizations
  • About FUN
  • FAQ
  • You are here:
  • Home
  • Courses
  • RIP : Rétro-Ingénierie de Programmes

RIP : Rétro-Ingénierie de Programmes

Ref. 54014
CategoryComputer science and programming
Venez découvrir avec nous la Rétro-Ingénierie de Programmes !
  • Duration: 6 weeks
  • Effort: 24 hours
  • Pace: ~4 hours/week
  • Languages: French

What you will learn

At the end of this course, you will be able to:

  • 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.

Prerequisites

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

Assessment and 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.

Course plan

  • 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.

Course team

Pierre Graux

Categories

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

Categories

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)

Organizations

University of Lille

License

License for the course content

Attribution-NonCommercial-NoDerivatives

You are free to:

  • Share — copy and redistribute the material in any medium or format

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • NonCommercial — You may not use the material for commercial purposes.
  • NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material.

License for the content created by course participants

All rights reserved

"All rights reserved" is a copyright formality indicating that the copyright holder reserves, or holds for its own use, all the rights provided by copyright law.

FacebookTwitterLinkedin

Learn more

  • Help and contact
  • About FUN
  • Newsletters
  • Legal
  • Privacy policy
  • User's charter
  • General Terms and Conditions of Use
  • Sitemap
  • Cookie management
Logo FUN Mooc powered by Richie