Malgré le nombre d’outils aidant au désassemblage voire à la décompilation de programmes, il arrive parfois que les mécanismes ou les processeurs étudiés ne soient pas nativement supportés. Pour cette raison, certains outils proposent des API permettant d’implémenter une nouvelle architecture. Cet article détaillera les grandes étapes de ce travail pour deux outils majoritairement utilisés, à savoir IDA PRO et Ghidra.
L’implémentation d’un nouveau processeur peut être fastidieuse selon l’architecture ciblée. Le choix d’une architecture d’apparence triviale est préférable pour démarrer : quoi de mieux qu’un challenge du SSTIC pour sélectionner la candidate idéale ?
Pour être dans son temps, c’est l’architecture DWARF2 qui sera détaillée dans cet article. Un tel processeur virtuel dispose d’un nombre réduit d’instructions qui sont a priori simples à décoder. L’article fournira également un plugin minimaliste d’émulation pour chacun des outils. Il conclura par dresser les avantages/inconvénients de ces outils pour ce genre d’exercice en fonction du cas d’usage. Cet article n’a pas vocation à être complet, aussi certains détails auront été omis (in)volontairement.
Tous les fichiers assurant le support et l’émulation de l’architecture DWARF2 sont consultables et utilisables sans restriction [FICHIERS].
1. Méthodologie...
- 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