CSE
Binary Technologies

Binaries contain every aspect of a program - every opcode, every operand, every branch. The BiT group produces an infrastructure that generates state of the art development tools in the fields of binary static and dynamic analysis, optimization, profiling, and correctness.

Overview

The Binary Technologies (BiT) Group in the Center for Software Excellence (CSE) investigates methods to analyze and manipulate program binaries. Using these methods, we establish new techniques in whole-program analysis for both static and runtime scenarios. We produce an infrastructure that generates state of the art development tools in the fields of static and dynamic analysis, optimization, profiling, and correctness.

As software systems evolve, their code complexity increases. Being able to analyze an entire program compiled from different high-level languages is a daunting challenge for any analysis infrastructure. However, building program abstractions at the binary level, where the semantics are well defined, yields advantages that compensate for the information that has been lost during compilation. The language independent characteristics of binary instructions remove most of the complexities inherent in parsing programs written in different languages.

Why are we so concerned about binaries?

Binaries are one of the lowest forms of a program's representation and consequently most advanced program analysis techniques are designed to work best at the source code level, where a lot of information is available. There are, however, significant differences between the actual source code for a program and the instructions contained within a binary. Binaries contain every aspect of a program - every opcode, every operand, every branch, etc. These types of details are not always accessible in the source code.

**

Binary Technologies

Home

Projects

Research Papers

**