A compiler-based infrastructure for software-protection

  • Authors:
  • Clifford Liem;Yuan Xiang Gu;Harold Johnson

  • Affiliations:
  • Cloakware Corporation, Ottawa, ON, Canada;Cloakware Corporation, Ottawa, ON, Canada;Cloakware Corporation, Ottawa, ON, Canada

  • Venue:
  • Proceedings of the third ACM SIGPLAN workshop on Programming languages and analysis for security
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Not long after the introduction of stored-program computing machines, the first high-level language compilers appeared. The need for automatically and efficiently mapping abstract concepts from high-level languages onto low-level assembly languages has been recognized ever since. A compiler has a unique ability to gather and analyze large amounts of data in a manner that would be an unwieldy manual endeavor. It is this property that makes known compiler techniques and technology ideally suited for the purposes of software protection against reverse engineering and tampering attacks. In this paper, we present a code transformation infrastructure combined with build-time security techniques that are used to integrate protection into otherwise vulnerable machine programs. We show the applicability of known compiler techniques such as aliasanalysis, whole program analysis, data-flow analysis, and control-flow analysis and how these capabilities provide the basis for program transformations that provide comprehensive software protection. These methods are incorporated in an extensible framework allowing efficient development of new code transformations, as part of a larger suite of security tools for the creation of robust applications. We describe a number of successful applications of these tools.