Traditionally, execution of a program follows a straight and inflexible path starting from source code, extending through a compiled executable file on disk, and culminating in an executable image in memory. This dissertation enables more flexible programs through new compilation mechanisms and binary editing tech-niques. To assist analysis of functions in binaries, a new compilation mechanism gen-erates data representing control flow graphs of each function. These data allow binary analysis tools to identify the boundaries of basic blocks and the types of edges between them without examining individual instructions. A similar compila-tion mechanism is used to create individually relocatable basic blocks that can be relocated anywhere in me...
Software that is in use and under development today still contains as many bugs as ever. These bugs ...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
The paper approaches the low-level details of the code generated by compilers whose format permits o...
Traditionally, execution of a program follows a straight and inflexible path starting from source co...
This study introduces a static binary rewriting method for improving security of executable binaries...
Binary analysis allows researchers to examine how programs are constructed and how they will impact ...
Legacy binaries need to continue functioning even when no source code has been preserved, to support...
Binary manipulation techniques are increasing in popularity. They support program transformations ta...
Buffer overflow and heap overflow injection attacks have been studied for some time. Recent techniqu...
Compile-time specialization and feature pruning through static binary rewriting have been proposed r...
In order to ensure security guarantees of binary applications, program analyses and verifications ha...
Unlike library code, whose instruction addresses can be randomized by address space layout randomiza...
Binary code analysis is widely used in many applications, including reverse engineering, software fo...
Legacy binaries that do not have source code remain a vital part of our software ecosystem. Lifting ...
Binary lifting and recompilation allow a wide range of install-Time program transformations, such as...
Software that is in use and under development today still contains as many bugs as ever. These bugs ...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
The paper approaches the low-level details of the code generated by compilers whose format permits o...
Traditionally, execution of a program follows a straight and inflexible path starting from source co...
This study introduces a static binary rewriting method for improving security of executable binaries...
Binary analysis allows researchers to examine how programs are constructed and how they will impact ...
Legacy binaries need to continue functioning even when no source code has been preserved, to support...
Binary manipulation techniques are increasing in popularity. They support program transformations ta...
Buffer overflow and heap overflow injection attacks have been studied for some time. Recent techniqu...
Compile-time specialization and feature pruning through static binary rewriting have been proposed r...
In order to ensure security guarantees of binary applications, program analyses and verifications ha...
Unlike library code, whose instruction addresses can be randomized by address space layout randomiza...
Binary code analysis is widely used in many applications, including reverse engineering, software fo...
Legacy binaries that do not have source code remain a vital part of our software ecosystem. Lifting ...
Binary lifting and recompilation allow a wide range of install-Time program transformations, such as...
Software that is in use and under development today still contains as many bugs as ever. These bugs ...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
The paper approaches the low-level details of the code generated by compilers whose format permits o...