Get rid of inline assembly through trustable verification-oriented lifting

03/15/2019
by   Frédéric Recoules, et al.
0

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 driving state-of-the-art formal analyzers developed for C ineffective. We thus propose TInA, an automated, generic, trustable and verification-oriented lifting technique turning inline assembly into semantically equivalent C code, in order to take advantage of existing C analyzers. Extensive experiments on real-world C code with inline assembly (including GMP and ffmpeg) show the feasibility and benefits of TInA.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/16/2021

Experience Report: Teaching Code Analysis and Verification Using Frama-C

Formal methods provide systematic and rigorous techniques for software d...
research
03/14/2019

A Formal Verification Technique for Architecture-based Embedded Systems in EAST-ADL

Development of quality assured software-intensive systems, such as autom...
research
02/15/2021

Interface Compliance of Inline Assembly: Automatically Check, Patch and Refine

Inline assembly is still a common practice in low-level C programming, t...
research
12/03/2017

Haptic Assembly and Prototyping: An Expository Review

An important application of haptic technology to digital product develop...
research
06/07/2019

Datalog Disassembly

Disassembly is fundamental to binary analysis and rewriting. We present ...
research
11/10/2017

FunTAL: Reasonably Mixing a Functional Language with Assembly

We present FunTAL, the first multi-language system to formalize safe int...

Please sign up or login with your details

Forgot password? Click here to reset