Insight: An Open Binary Analysis Framework
We present Insight, a framework for binary program analysis and two tools provided with it: CFGRecovery and iii.
Insight is intended to be a full environment for analyzing, interacting and verifying executable programs. Insight is able to translate x86, x86-64 and msp430 binary code to our intermediate representation and execute it symbolically in an abstract domain where each variable (register, memory cell) is substituted by a formula representing all its possible values along the current execution path.
CFGRecovery aims at automatically rebuilding the program control flow based only on the executable file. It heavily relies on SMT solvers.
iii provides an interactive and a (Python) programmable interface to a coherent set of features from the Insight framework. It behaves like a debugger except that the execution traces that are examined are symbolic and cover a collection of possible concrete executions at once. For example, iii allows to perform an interactive reconstruction of the CFG.
Keywordsbinary analysis CFG recovery symbolic debugging
- 2.Balakrishnan, G., Reps, T.: WYSINWYX: What You See Is Not What You eXecute. Journal of ACM Transactions on Programming Languages and Systems (TOPLAS) 32 (2010)Google Scholar
- 7.Cifuentes, C.: Reverse Compilation Techniques. Ph.D. thesis, Queensland University of Technology, Department of Computer Science (1994)Google Scholar
- 9.Franzn, A., Cimatti, A., Nadel, A., Sebastiani, R., Shalev, J.: Applying SMT in symbolic execution of microcode. In: Proc. of Int. Conf. on Formal Methods in Computer-Aided Design (FMCAD 2010), pp. 121–128. IEEE (2010)Google Scholar
- 13.Song, D., Brumley, D., Yin, H., Caballero, J., Jager, I., Zhenkai, K.M.G.a.L., James, N., Pongsin, P., Prateek, S.: BitBlaze: A new approach to computer security via binary analysis. In: Proc. of Int. Conf. on Information Systems Security (ICISS). LNCS, pp. 1–25. Springer, Heidelberg (2008)CrossRefGoogle Scholar