Image credit: georgehart.com

Static Analysis Of Binary Code With Memory Indirections Using Polyhedra

Image credit: georgehart.com

Static Analysis Of Binary Code With Memory Indirections Using Polyhedra

Abstract

In this paper we propose a new abstract domain for static analysis of binary code. Our motivation stems from the need to improve the precision of the estimation of the Worst-Case Execution Time (WCET) of safety-critical real-time code. WCET estimation requires computing information such as upper bounds on the number of loop iterations, unfeasible execution paths, etc. These estimations are usually performed on binary code, mainly to avoid making assumptions on how the compiler works. Our abstract domain, based to polyhedra and on two mapping functions that associate polyhedra variables with registers and memory, targets the precise computation of such information. We prove the correctness of the method, and demonstrate its effectiveness on benchmarks and examples from typical embedded code.

Publication
In International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI)