L'analyse de binaires pour le Reverse Engineering

Initiez-vous aux bases de l'analyse de binaires, à l'automatisation de l'analyse de fichiers et maîtrisez les techniques et outils qui vous permettront d'étudier les programmes et hardwares qui vous entourent.
Nombre d'articles :
6 article(s)
Type de liste de lecture
Cas pratiques
Niveau :
Intermédiaire

La compilation : du code au binaire… et retour !

Magazine
Marque
MISC
HS n°
Numéro
24
Mois de parution
septembre 2021
Spécialité(s)
Résumé

On trouve des compilateurs partout : quand on construit des programmes, bien sûr, mais aussi quand on visite la page web des Éditions Diamond — elle embarque du JavaScript, qui est probablement compilé à la volée par un composant de votre navigateur. Quand on utilise un Notebook Jupyter pour du calcul scientifique — ne serait-ce que pour la compilation en bytecode du source Python. Quand on installe un APK pour ART, celui-ci est transformé en code natif depuis son bytecode Dalvik… encore de la compilation. Et nous allons voir que le domaine de la compilation peut aussi très largement intéresser celui de la sécurité informatique et du reverse engineering.

Comment analyser un programme : du statique au dynamique jusqu’à l'instrumentation

Magazine
Marque
MISC
HS n°
Numéro
24
Mois de parution
septembre 2021
Spécialité(s)
Résumé

L'analyse d'un binaire, que ce soit un malware, une protection, un binaire inconnu, repose quasiment toujours sur les mêmes approches : analyse statique, dynamique et parfois instrumentation. Dans cet article, nous présentons la démarche et les outils habituels.

De l’extraction de firmware à l’exécution de code sur la carte SD FlashAir

Magazine
Marque
MISC
HS n°
Numéro
24
Mois de parution
septembre 2021
Spécialité(s)
Résumé

Du point de vue de la sécurité, l'étude d'un objet connecté passe par différentes étapes allant de la récupération du firmware à l'identification de l'architecture du processeur. Cet article est un retour d'expérience sur l'analyse de la carte SD FlashAir qui a débuté en 2015. Il détaille une méthodologie typique visant à comprendre le fonctionnement d'un objet connecté inconnu afin d'y exécuter du code.