There’s Plenty of Room at the Bottom: Analyzing and Verifying Machine Code

Reps, Thomas W. and Lim, Junghee and Thakur, Aditya V. and Balakrishnan, Gogul and Lal, Akash
22nd International Conference on Computer Aided Verification (CAV), 2010

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.

PDF     Springer©    

@inproceedings{reps_etal_CAV10,
  author = {Reps, Thomas W. and Lim, Junghee and Thakur, Aditya V. and Balakrishnan, Gogul and Lal, Akash},
  title = {There's Plenty of Room at the Bottom: Analyzing and Verifying Machine
                 Code},
  booktitle = {22nd International Conference on Computer Aided Verification ({CAV})},
  year = {2010},
  pages = {41--56},
  publisher = {Springer},
  note = {Invited paper},
  doi = {10.1007/978-3-642-14295-6_6}
}