Passer au contenu principal
FUN MOOC
  • Actualités
  • Cours
  • FormaPro
  • Établissements
  • À propos
  • FAQ
  • Vous êtes ici:
  • Accueil
  • Actualités
  • Autopsie d’un programme, au cœur du code  binaire

Autopsie d’un programme, au cœur du code  binaire

Catégories

Autour du cours

22 nov. 2024

La rétro-ingénierie est un processus crucial pour améliorer, sécuriser ou détourner les logiciels pour les adapter. Apprenez à disséquer les programmes informatiques pour en révéler le fonctionnement interne !

La rétro-ingénierie de programmes, c’est quoi ?

La rétro-ingénierie (angl. reverse engineering), consiste à analyser et à déconstruire un produit, un système ou un logiciel existant pour en comprendre le fonctionnement interne, souvent dans le but de reproduire ou d'améliorer l'original, d'en vérifier la sécurité ou d'assurer la compatibilité avec d’autres systèmes.

Le MOOC RIP : Rétro-ingénierie de programmes, de l’université de Lille, commence par rappeler l’essentiel sur la compilation pour nous permettre de mieux comprendre en quoi consiste… l’opération inverse !  

La compilation, c’est cette étape cruciale dans la réalisation d’un logiciel qui consiste à passer du code d’un programme (écrit dans un langage informatique, comme le C ou le C++, par exemple) à un fichier binaire exécutable par la machine. C’est ce fichier exécutable que vous vend la société qui commercialise le logiciel et auquel vous faites appel lorsque vous lancez votre logiciel favori sur votre ordinateur.

Votre expérience d’informaticien-ne pourrait s’arrêter là, mais les plus curieux-ses d’entre vous, se poseront certainement la question de savoir si l’on peut, à partir de ce fichier exécutable, « remonter au code »… c’est précisément l’objet de la rétro-ingénierie ! RIP : Rétro-ingénierie de programmes vous propose d’apprendre à décortiquer les programmes. A vos scalpels numériques !

La rétro-ingénierie, comment faire ?

Décompiler ou désassembler un programme, faire de la rétro-ingénierie, c’est analyser un programme exécutable pour comprendre comment il a été codé et pour en saisir les processus, les algorithmes, les composants essentiels.

Quels sont les utilitaires grand public qui nous apportent de telles informations (cat, objdump…) ? Qu’est-ce que l’analyse statique (sans exécution du programme) ?  Quels outils utilisent les professionnels (IDA Pro, Ghidra, Radare2, Binary Ninja…) ? A À quoi ressemble un graphe de contrôle obtenu en résultat de l’application de ces outils et comment l’interpréter ? Qu’est-ce que l’analyse dynamique (avec exécution du programme, en observant les entrées et sorties et le comportement d’un programme) ?  Quels outils pour l’analyse dynamique (Wireshark, Windows sysinternals, ltrace, strace…) ? Qu’est-ce qu’un debugger et comment fonctionne-t-il (gbd, ptrace…)?

Pour vous plonger dans les entrailles du code binaire, le cours alterne entre des explications théoriques d’une grande clarté et des temps de pratique de manipulation des outils. Il offre de très nombreuses occasions, à partir de petits programmes en C, de tester ces méthodes et de comparer les informations fournies. Des challenges jalonnent l’ensemble du cours pour évaluer les connaissances acquises.

La rétro-ingénierie, pour quoi faire ?

Apprendre les bases de la rétro-ingénierie en suivant le MOOC RIP : Rétro-ingénierie de programmes, de l’université de Lille, vous permettra d’acquérir des compétences très recherchées dans de nombreux domaines technologiques et industriels. La demande en experts capables de décoder des systèmes complexes est en effet croissante, notamment dans les secteurs suivants : la cybersécurité, pour tester la sécurité des systèmes, identifier les failles et déjouer des attaques potentielles, le développement logiciel et matériel, pour adapter ou améliorer des produits existants, la maintenance et le support technique, pour maintenir et adapter des systèmes sans documentation complète, et la recherche et développement, pour explorer les innovations existantes et les exploiter dans de nouveaux projets.

Pour en savoir plus et s’inscrire, cliquer ici.
Université de Lille
Début du cours : 10 décembre 2024
Fin d'inscription : 10 janvier 2025

NDLR : L’illustration de cet article a été réalisée à l’aide de Firefly, un outil d’Adobe basé sur l’intelligence artificielle.

RIP : Rétro-Ingénierie de Programmes

ÉtablissementUniversité de Lille
Code du cours54014
Date du cours Archivé
Le cours complet peut être complété gratuitement.

Articles liés

5 raisons de s’inscrire au MOOC « Éducation inclusive : ressources numériques adaptées pour la classe »

Catégories

Autour du cours

5 raisons de s’inscrire au MOOC «Les précarités alimentaires»

Catégories

Autour du cours

5 raisons de suivre le MOOC Reproducible Research II: Practices and tools for managing computations and data

Catégories

Autour du cours

Autres catégories d'articles

Arts, création et designDroitFormation de formateurIngénierie pédagogiqueEntrepreneuriat et innovationEnvironnement et développement durableManagementNumérique et technologieIntelligence Artificielle (IA)SantéSciences cognitivesSciences de la vieProjetSUPRéussiteSUPÉthique et sociétéEvénementFonctionnalitéAutour du coursPartenaireFUN recruteUniCampFormation ProPlateformes & servicesOpen innovation
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