Pourquoi faire du Reverse Engineering ?
Le reverse engineering est souvent utilisé pour des raisons de sécurité, par exemple pour vérifier qu'un programme fait exactement ce qu'il est censé faire ou ce pourquoi nous l’avons acheté et qu'il ne contient pas de vulnérabilités et/ou Backdoor.
Vous pourriez aussi avoir besoin d'analyser un programme inconnu
- Soit parce que vous ne savez pas ce que c'est (ex : exécutable sans code source...)
- Soit parce que vous pensez qu'il pourrait être malveillant et éviter ainsi de l'exécuter directement. (Et si c’était un malware...)
Cette technique a notamment été utilisée pour découvrir les failles exploitées par des virus célèbres comme Stuxnet.
Dans le monde professionnel, le reverse engineering peut également être utilisé pour des applications non sécuritaires, comme la maintenance et la mise à jour de logiciels anciens dont le code source a été perdu. Cela peut impliquer de décompiler des binaires, analyser leur fonctionnement et reconstruire des fonctionnalités dans un environnement moderne.
🚨Attention 🚨Le reverse engineering et l’analyse de code sont des activités chronophages. Ainsi, il peut être pertinent de définir une stratégie d’analyse permettant d’avoir une idée d’ensemble des fonctionnalités liées à ce code et ainsi valider son utilisation sans devoir l’analyser en totalité.