symex-intro

Material for an introductory presentation for symbolic execution.

git clone https://git.8pit.net/symex-intro.git

 1INPUT_SIZE ?= 3
 2CFLAGS_SIZE = -DINPUT_SIZE=$(INPUT_SIZE)
 3
 4CLANG  ?= clang
 5CFLAGS += -std=c99 -g -O0 -Xclang -disable-O0-optnone $(CFLAGS_SIZE)
 6
 7base64.ll: base64.c
 8	$(CLANG) -emit-llvm -S -c -o $@ $< $(CFLAGS)
 9base64.c: base64.h
10
11sim: base64.ll
12	klee --solver-backend=z3 \
13		--search=dfs \
14		--exit-on-error \
15		--use-merge \
16		--libc=klee \
17		--write-smt2s \
18		--use-query-log=all:smt2 \
19		$<
20
21clean:
22	rm -rf klee-* base64.ll
23
24.PHONY: sim clean