RiverConc: An Open-source Concolic Execution Engine for x86 Binaries

Ciprian Paduraru, Bogdan Ghimis, Alin Stefanescu

Abstract

This paper presents a new open-source testing tool capable of performing concolic execution on x86 binaries. Using this tool, one can find out ahead of time of potential bugs that can enable threats such as process hijacking and stack buffer overflow attacks. Although a similar tool, SAGE, already exists in literature, it is closed-sourced and we think that using its description to implement an open-sourced version of its main novel algorithm, Generational Search, is beneficial to both industry and research communities. This paper describes, in more detail than previous work, how the components at the core of a concolic execution tool, such as tracers, dynamic tainting mechanisms and SMT solvers, collaborate together to ensure code coverage. Also, it briefly describes how reinforcement learning can be used to speed up the state of the art heuristics for prioritization of inputs. Research opportunities and the technical difficulties that the authors observed during the current development of the project are presented as well.

Download


Paper Citation