tkhang1999 / mini-symex-js

A mini symbolic execution engine for simple JavaScript programs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mini-symex-js

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.

How to run?

  1. Prerequisites

Make sure to have python3, python3-disutils, and make installed on your MacOS/Linux machine. Otherwise, the installation of z3javascript may fail.

  1. Install dependencies
$ cd mini-symex-js
$ npm install --loglevel verbose # this may take a while to complete
$ cd node_modules/z3javascript
$ npm run prepublish
  1. Run demo
$ cd mini-symex-js
$ npm run symbolic
$ npm run concolic

Note: For MacOS, replace libz3.so in package.json with libz3.dylib

About

A mini symbolic execution engine for simple JavaScript programs


Languages

Language:JavaScript 100.0%