Compile-time specialization and feature pruning through static binary rewriting have been proposed repeatedly as techniques for reducing the attack surface of large programs, and for minimizing the trusted computing base. We propose a new approach to attack surface reduction: dynamic binary lifting and recompilation. We present BinRec, a binary recompilation framework that lifts binaries to a compiler-level intermediate representation (IR) to allow complex transformations on the captured code. After transformation, BinRec lowers the IR back to a "recovered" binary, which is semantically equivalent to the input binary, but has its unnecessary features removed. Unlike existing approaches, which are mostly based on static analysis and rewritin...
Most security solutions that rely on binary rewriting assume a clean separation between code and dat...
Binary reverse engineering is used to understand and analyse programs for which the source code is u...
We present a practical tool for inserting security features against low-level software attacks into ...
Binary lifting and recompilation allow a wide range of install-Time program transformations, such as...
Legacy binaries that do not have source code remain a vital part of our software ecosystem. Lifting ...
Legacy binaries need to continue functioning even when no source code has been preserved, to support...
Traditionally, execution of a program follows a straight and inflexible path starting from source co...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
Binary analysis allows researchers to examine how programs are constructed and how they will impact ...
Binary code from untrusted sources remains one of the primary vehicles for malicious software attack...
Binary code from untrusted sources remains one of the primary vehicles for malicious software attack...
Unlike library code, whose instruction addresses can be randomized by address space layout randomiza...
A binary rewriter is a piece of software that accepts a binary executable program as input, and prod...
This study introduces a static binary rewriting method for improving security of executable binaries...
Most security solutions that rely on binary rewriting assume a clean separation between code and dat...
Binary reverse engineering is used to understand and analyse programs for which the source code is u...
We present a practical tool for inserting security features against low-level software attacks into ...
Binary lifting and recompilation allow a wide range of install-Time program transformations, such as...
Legacy binaries that do not have source code remain a vital part of our software ecosystem. Lifting ...
Legacy binaries need to continue functioning even when no source code has been preserved, to support...
Traditionally, execution of a program follows a straight and inflexible path starting from source co...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
Binary analysis allows researchers to examine how programs are constructed and how they will impact ...
Binary code from untrusted sources remains one of the primary vehicles for malicious software attack...
Binary code from untrusted sources remains one of the primary vehicles for malicious software attack...
Unlike library code, whose instruction addresses can be randomized by address space layout randomiza...
A binary rewriter is a piece of software that accepts a binary executable program as input, and prod...
This study introduces a static binary rewriting method for improving security of executable binaries...
Most security solutions that rely on binary rewriting assume a clean separation between code and dat...
Binary reverse engineering is used to understand and analyse programs for which the source code is u...
We present a practical tool for inserting security features against low-level software attacks into ...