Leapfrog: Learn and Prune Features in Binary Programs

Abstract

As software systems keep evolving, we have witnessed that modern software is increasingly complex and bloated. Aprimary reason for"" this phenomenon is because current software engineering practices, such as object-orientedprogramming and code reuse, introduce la""yers of abstractions. As a result, software becomes more extensible andversatile. However, on the flip side, increasing complexity"" leads to worse performance and larger attack surface.At the same time, commodity applications, such as office suites and web brows""ers, are built with performance in mind.Given the sophisticated functionalities they provide, it is standard to use languages that"" provide sufficient levels ofabstraction with a minimal performance penalty. Therefore, low-level object-oriented languages, such a""s C++, aretypically the choice for their implementation which are difficult to reverse-engineer and present challenges when itcome""s to recognizing the types and data structures due to aliasing.In this project, we would like to develop a set of techniques to rev""erse this trend. For commercialoff- the-shelf (COTS)binary programs, we would like to automatically identify important features in"" it, remove unnecessary features (uponuser~s selection), and further harden the pruned binary (to defeat potential exploitation att"acks).

Document Details

Document Type
DoD Grant Award
Publication Date
Nov 03, 2017
Source ID
N000141712893

Entities

People

  • Heng Yin

Organizations

  • Office of Naval Research
  • United States Navy
  • University of California Regents

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Database Systems and Applications