Scalable variable and data type detection in a binary rewriter

  • Authors:
  • Khaled ElWazeer;Kapil Anand;Aparna Kotha;Matthew Smithson;Rajeev Barua

  • Affiliations:
  • University of Maryland College Park, College Park, MD, USA;University of Maryland College Park, College Park, MD, USA;University of Maryland College Park, College Park, MD, USA;University of Maryland College Park, College Park, MD, USA;University of Maryland College Park, College Park, MD, USA

  • Venue:
  • Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present scalable static analyses to recover variables, data types, and function prototypes from stripped x86 executables (without symbol or debug information) and obtain a functional intermediate representation (IR) for analysis and rewriting purposes. Our techniques on average run 352X faster than current techniques and still have the same precision. This enables analyzing executables as large as millions of instructions in minutes which is not possible using existing techniques. Our techniques can recover variables allocated to the floating point stack unlike current techniques. We have integrated our techniques to obtain a compiler level IR that works correctly if recompiled and produces the same output as the input executable. We demonstrate scalability, precision and correctness of our proposed techniques by evaluating them on the complete SPEC2006 benchmarks suite.