Fundamenta Informaticae 153 (2017) 105–124 105 DOI 10.3233/FI-2017-1533 IOS Press Binary Analysis based on Symbolic Execution and Reversible x86 Instructions Teodor Stoenescu Bitdefender, Romania tstoenescu@bitdefender.com Alin Stefanescu * , Sorina Predut, and Florentin Ipate University of Bucharest, Department of Computer Science Bucharest, Romania alin@fmi.unibuc.ro, sina.predut@gmail.com, florentin.ipate@ifsoft.ro Abstract. We present a binary analysis framework based on symbolic execution with the distin- guishing capability to execute stepwise forward and also backward through the execution tree. It was developed internally at Bitdefender and code-named RIVER. The framework provides com- ponents such as a taint engine, a dynamic symbolic execution engine, and integration with Z3 for constraint solving. In this paper we will provide details on the framework and give an example of analysis on binary code. 1. Introduction Given the nowadays extreme interconnectivity between multiple systems, networks and (big) data pools, the field of cybersecurity is a vitally important aspect, in which concentrated efforts and re- sources are invested. As an example in this direction, the US recently organised, through DARPA, a cybersecurity grand challenge (CGC) [1], where successful teams competed to analyse and fix a * Address for correspondence: Department of Computer Science, University of Bucharest, Str. Academiei 14, 010014 Bucharest, Romania