Range analysis of microcontroller code using bit-level congruences

  • Authors:
  • Jörg Brauer;Andy King;Stefan Kowalewski

  • Affiliations:
  • Embedded Software Laboratory, RWTH Aachen University, Germany;Portcullis Computer Security, Pinner, UK;Embedded Software Laboratory, RWTH Aachen University, Germany

  • Venue:
  • FMICS'10 Proceedings of the 15th international conference on Formal methods for industrial critical systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Bitwise instructions, loops and indirect data access pose difficult challenges to the verification of microcontroller programs. In particular, it is necessary to show that an indirect write does not mutate registers, which are indirectly addressable. To prove this property, among others, this paper presents a relational binary-code semantics and details how this can be used to compute program invariants in terms of bit-level congruences. Moreover, it demonstrates how congruences can be combined with intervals to derive accurate ranges, as well as information about strided indirect memory accesses.