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

Malware Analysis and Assembly Language Introduction
IBM via edX
Advanced Malware Analysis: Redux
Cybrary
Intro to Malware Analysis and Reverse Engineering
Cybrary
CNIT 126: Practical Malware Analysis
CNIT - City College of San Francisco via Independent
Reverse Engineering 101
Malware Unicorn via Independent