Relational abstract interpretation of arrays in assembly code - Inria - Institut national de recherche en sciences et technologies du numérique
Article Dans Une Revue Formal Methods in System Design Année : 2022

Relational abstract interpretation of arrays in assembly code

Résumé

In this paper, we propose a static analysis technique for assembly code, based on abstract interpretation, to discover properties on arrays. Considering assembly code rather than source code has important advantages: we do not require to make assumptions on the compiler behaviour, and we can handle closed-source programs. The main disadvantage however, is that information about source code variables and their types, in particular about arrays, is unavailable. Instead, the binary code reasons about data-locations (registers and memory addresses) and their sizes in bytes. Without any knowledge of the source code, our analysis infers which sets of memory addresses correspond to arrays, and establishes properties on these addresses and their contents. The underlying abstract domain is relational, meaning that we can infer relations between variables of the domain. As a consequence, we can infer properties on arrays whose start address and size are dened with respect to variables of the domain, and thus can be unknown statically. Currently, no other tool operating at the assembly or binary level can infer such properties.
Fichier principal
Vignette du fichier
ballabriga-et-al-2022-accepted.pdf (558.62 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03794951 , version 1 (03-10-2022)

Identifiants

Citer

Clément Ballabriga, Julien Forget, Jordy Ruiz. Relational abstract interpretation of arrays in assembly code. Formal Methods in System Design, 2022, ⟨10.1007/s10703-022-00399-3⟩. ⟨hal-03794951⟩
169 Consultations
219 Téléchargements

Altmetric

Partager

More