Framework for safe reuse of software binaries

  • Authors:
  • Ramakrishnan Venkitaraman;Gopal Gupta

  • Affiliations:
  • Applied Logic, Programming-Languages and Systems (ALPS) Laboratory, Department of Computer Science, The University of Texas at Dallas;Applied Logic, Programming-Languages and Systems (ALPS) Laboratory, Department of Computer Science, The University of Texas at Dallas

  • Venue:
  • ICDCIT'04 Proceedings of the First international conference on Distributed Computing and Internet Technology
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we consider reusability of software component binaries Reuse of code at the binary level is important because usually only the machine code for system components is available; vendors do not want to share their source code for proprietary reasons We develop necessary and sufficient conditions for ensuring that software binaries are reusable and relate them to the coding standards that have been developed in the industry to ensure binary code reusability These coding standards, in essence, discourage the (i) use of hard-coded pointers, and (ii) writing of non-reentrant code Checking that binary code satisfies these standards/conditions, however, is undecidable, in general We thus develop static analysis based methods for checking if a software binary satisfies these conditions This static analysis rests on the abstract interpretation framework We illustrate our approach by showing how we statically analyze the presence of hard coded pointer variables in assembly code obtained from binaries of digital signal processing applications The analyzer we have developed takes the binary to be checked for reuse as input, disassembles it, builds the flow graph, and statically analyzes the flow graph to check for the presence of code that will hinder its reuse.