Sommaire

Analyse statique d’une application

1. Introduction

L’outil d’analyse libre Ghidra que nous avons utilisé lors des analyses sous Windows supporte parfaitement le format Mach-O ainsi que l’architecture ARM. Dans les exemples de ce chapitre, l’architecture sera ARM. Nous n’avons pas de chapitre dédié à cette architecture dans ce livre. En cas d’analyse iOS (ou Android), il vous sera nécessaire d’apprendre une nouvelle architecture, ses instructions, la manière dont les arguments sont passés aux fonctions, etc. L’architecture ARM est documentée, si ce domaine vous intéresse, nous vous recommandons la lecture de cette documentation : https://static.docs.arm.com/100076/0100/arm_instruction_set_reference_guide_100076_0100_00_en.pdf.

Afin de faciliter la lecture et éviter de devoir apprendre une nouvelle architecture, nous n’allons utiliser que le pseudo code de Ghidra.

2. Analyse avec Ghidra

Reprenons l’exemple précédent du faux WhatsApp. Nous avons l’application ainsi qu’une librairie dynamique. Cette librairie est injectée dans le binaire de WhatsApp afin de modifier son comportement. Ouvrons ce binaire dans Ghidra, la fenêtre suivante apparaît :

images/06EP07.PNG

Le fichier boptionspro.dylib contient plusieurs binaires de plusieurs architectures. Ghidra supporte ce type de fichier, il suffit de cliquer sur Batch et de choisir le répertoire de l’application :

images/06EP08.PNG

Nous voyons que le binaire ...