There's plenty of room at the bottom: analyzing and verifying machine code

  • Authors:
  • Thomas Reps;Junghee Lim;Aditya Thakur;Gogul Balakrishnan;Akash Lal

  • Affiliations:
  • ,University of Wisconsin, Madison, WI;University of Wisconsin, Madison, WI;University of Wisconsin, Madison, WI;NEC Laboratories America, Inc., Princeton, NJ;Microsoft Research India, Bangalore, India

  • Venue:
  • CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper discusses the obstacles that stand in the way of doing a good job of machine-code analysis Compared with analysis of source code, the challenge is to drop all assumptions about having certain kinds of information available (variables, control-flow graph, call-graph, etc.) and also to address new kinds of behaviors (arithmetic on addresses, jumps to “hidden” instructions starting at positions that are out of registration with the instruction boundaries of a given reading of an instruction stream, self-modifying code, etc.). The paper describes some of the challenges that arise when analyzing machine code, and what can be done about them It also provides a rationale for some of the design decisions made in the machine-code-analysis tools that we have built over the past few years.