A mini symbolic execution engine written in JavaScript, to illustrate some basic ideas of symbolic execution for beginners.
This work is inspired by mini-mc and mini-symex.
- Prerequisites
Make sure to have python3
, python3-disutils
, and make
installed on your MacOS/Linux machine. Otherwise, the installation of z3javascript
may fail.
- Install dependencies
$ cd mini-symex-js
$ npm install --loglevel verbose # this may take a while to complete
$ cd node_modules/z3javascript
$ npm run prepublish
- Run demo
$ cd mini-symex-js
$ npm run symbolic
$ npm run concolic
Note: For MacOS, replace libz3.so
in package.json
with libz3.dylib