YoVDO

RIP : Rétro-Ingénierie de Programmes

Offered By: Université de Lille via France Université Numerique

Tags

Reverse Engineering Courses Cybersecurity Courses Assembly Language Courses Dynamic Analysis Courses Static Analysis Courses

Course Description

Overview

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


Syllabus

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.

Tags

Related Courses

The Computing Technology Inside Your Smartphone
Cornell University via edX
Computer Architecture
Indian Institute of Technology Madras via Swayam
Computation Structures 2: Computer Architecture
Massachusetts Institute of Technology via edX
Product Design and Manufacturing
Indian Institute of Technology Kanpur via Swayam
Foundations to Computer Systems Design
Indian Institute of Technology Madras via Swayam