A system to analyze legacy binary applications and "slice" out the functional components allowing them to be encapsulated and run separately as part of new more secure systems. It is assumed that the source code for the legacy system was lost long ago.
Specifically Darpa is looking for :
- Automatically analyzing and identifying binary executable functional components.
- Automatically slicing and extracting identified binary functional components into reusable programming modules, including defined inputs and outputs.
eg. performing a "projection" of the program. removing all instructions not related to calculating the inputs to the functional component. This is also sometimes called dependence analysis or taint analysis and has ~30-40 years of research. see: Frank Tip, “A survey of program slicing techniques,” Journal of programming languages, vol. 3, 1995, p. 121–189.
- Combining static and dynamic binary analysis to increase understanding and function of binary executables.
- Exploring formal verification methods to prove functional component properties.
- Developing intermediate representation language to support program slicing.
- Developing core technology to enable exploration and research for the BET program.