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
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

11/16/2021

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

Formal methods provide systematic and rigorous techniques for software d...
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...
12/03/2017

Haptic Assembly and Prototyping: An Expository Review

An important application of haptic technology to digital product develop...
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...
06/07/2019

Datalog Disassembly

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

FunTAL: Reasonably Mixing a Functional Language with Assembly

We present FunTAL, the first multi-language system to formalize safe int...
11/18/2021

Constraint-based Diversification of JOP Gadgets

Modern software deployment process produces software that is uniform and...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.