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

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.


1. Allo docteur, c'est la Noireaude : les premières questions

Pour les plus jeunes, la Noireaude était une vache qui appelait son docteur pour tout et rien (surtout rien). Celui-ci posait des questions pour déterminer ce qu'elle avait réellement. Quand on est confronté à un programme inconnu, c'est pareil : on s'interroge. Qui est-il ? Que fait-il ? Une chose est sûre, comme ce programme est inconnu, on ne souhaite pas le lancer sans un minimum de contrôles. On parle alors d'analyse statique.

Le but de l'analyse statique est de déduire des propriétés sur le comportement d'un programme sans pour autant l'exécuter.

La première étape est de déterminer le format du fichier. La plupart des fichiers contiennent dès le début un magic qui identifie le type (MZ pour un exécutable Windows, %PDF pour un ... PDF, PK pour un ZIP...). La commande file sous Linux donne généralement le type à partir du magic :

$ file /bin/ls
/bin/ls: ELF 64-bit LSB pie...
Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous