diff --git a/work/dot/.gitignore b/work/dot/.gitignore
new file mode 100644
index 0000000..a136337
--- /dev/null
+++ b/work/dot/.gitignore
@@ -0,0 +1 @@
+*.pdf
diff --git a/work/dot/Makefile b/work/dot/Makefile
new file mode 100644
index 0000000..170f4fc
--- /dev/null
+++ b/work/dot/Makefile
@@ -0,0 +1,12 @@
+.PHONY: clean build
+
+DOT = $(wildcard *.dot)
+PDF = $(DOT:.dot=.pdf)
+
+build: $(PDF)
+
+%.pdf: %.dot
+ dot -Tpdf $< -o $@
+
+clean:
+ rm -f $(PDF)
diff --git a/work/dot/before.dot b/work/dot/before.dot
new file mode 100644
index 0000000..63b3926
--- /dev/null
+++ b/work/dot/before.dot
@@ -0,0 +1,10 @@
+digraph G {
+ parent [
+ shape="plaintext"
+ label=<
+
+ data1 | 0xFE | <- SP |
+ data1 | 0xFF | <- BP |
+
+ >];
+}
diff --git a/work/dot/call.dot b/work/dot/call.dot
new file mode 100644
index 0000000..5ddb455
--- /dev/null
+++ b/work/dot/call.dot
@@ -0,0 +1,15 @@
+digraph G {
+ parent [
+ shape="plaintext"
+ label=<
+
+ data2 | 0xF9 | <- SP |
+ data2 | 0xFA | <- BP |
+ [old IP] | 0xFB | |
+ *0xFE | 0xFC | |
+ *0xFF | 0xFD | |
+ data1 | 0xFE | |
+ data1 | 0xFF | |
+
+ >];
+}
diff --git a/work/dot/exploit.dot b/work/dot/exploit.dot
new file mode 100644
index 0000000..6e9eb18
--- /dev/null
+++ b/work/dot/exploit.dot
@@ -0,0 +1,15 @@
+digraph G {
+ parent [
+ shape="plaintext"
+ label=<
+
+ data2 | 0xF9 | <- SP |
+ [payload] | 0xFA | <- BP |
+ [controlled IP] | 0xFB | |
+ *0xFE | 0xFC | |
+ *0xFF | 0xFD | |
+ data1 | 0xFE | |
+ data1 | 0xFF | |
+
+ >];
+}