A generic approach to the definition of low-level components for multi-architecture binary analysis
Institution:
Versailles-St Quentin en YvelinesDisciplines:
Directors:
Abstract EN:
This thesis proposes a method for describing binary architectures instruction sets based on a grammar formalism. This approach allows to simplify the implementation of encoder and decoders for new architectures and their subsequent updates. This theory is then validated with the implementation of a disassembler based on the generated parser. We show that this disassembler meets the needs of analysis tools by supporting multiple architectures and presenting its results under a unified format. We then present an application of the results of the disassembler under the form of a binary rewriting tool. This tool uses an assembler based on the encoder generated from the grammar representation and allows to perform low-level patching operations on binary files
Abstract FR:
Cette thèse propose une méthode permettant la description des jeux d'instructions des architectures binaires suivant le formalisme des grammaires. Cette approche permet de simplifier la mise en oeuvre des encodeurs et décodeurs pour les nouvelles architectures et leurs mises à jours ultérieures. Cette théorie est ensuite validée par la mise en oeuvre d'un désassembleur basé sur l'analyseur syntaxique généré. Nous montrons que ce désassembleur répond aux besoins des outils d'analyse en permettant le support d'architectures multiples et en présentant les résultats sous un format unifié. Nous présentons ensuite une application des résultats du désassemblage sous forme d'un outil de réécriture binaire. Cet outil utilise un assembleur basé sur l'encodeur généré depuis la représentation de la grammaire et permet d'effectuer des opérations de patch bas niveau sur les fichiers binaires