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