Get Rid of Inline Assembly through Verification-Oriented Lifting
Abstract
Formal methods for software development have made great strides in the last two decades, to the point that their application in safety-critical embedded software is an undeniable success. Their extension to non-critical software is one of the notable forthcoming challenges. For example, C programmers regularly use inline assembly for low-level optimizations and system primitives. This usually results in rendering state-of-the-art formal analyzers developed for C ineffective. We thus propose TINA, the first automated, generic, verification-friendly and trustworthy lifting technique turning inline assembly into semantically equivalent C code amenable to verification, in order to take advantage of existing C analyzers. Extensive experiments on real-world code (including GMP and ffmpeg) show the feasibility and benefits of TINA.
BibTeX
@inproceedings{Recoules-al:ASE19,
author = {Fr{\'{e}}d{\'{e}}ric Recoules and
S{\'{e}}bastien Bardin and
Richard Bonichon and
Laurent Mounier and
Marie{-}Laure Potet},
title = {Get Rid of Inline Assembly through {Verification-Oriented} Lifting},
booktitle = {ASE},
pages = {577--589},
publisher = {{IEEE}},
year = {2019},
}