diff --git a/Stack.drawio b/Stack.drawio
new file mode 100644
index 0000000..8f86748
--- /dev/null
+++ b/Stack.drawio
@@ -0,0 +1 @@
+7Vhfb9owHPw0PG5K7JCEx0LLpqmTqlVatafJiX9JrDk2MqbAPv1s4oSEpBqryqgEEgLn/Dd3lzPxCM/KzSdFFsVXSYGPkEc3I3w7QsgPEBrZj0e3FRLFuAJyxahrtAce2W9woOfQFaOw7DTUUnLNFl0wlUJAqjsYUUquu80yybuzLkgOPeAxJbyPPjGqiwqNx94e/wwsL+qZfc/VlKRu7IBlQahctyB8N8IzJaWuSuVmBtySV/NS9Zu/UNssTIHQx3T4cXP3hf28f1iKp+2tf5supvPnD76T55nwlbtjt1q9rSkwC1/YIpXpqtxNNl0XTMPjgqQWXxvlDVbokpsr3xQTuRIU6H1SA8tKV++jF8SRH02ab8PCNGOczySXajcdzrIMpantpJX8Ba0aGibhODQ1bs2gNGxeZMNvODbmBFmCVlvTxHWInCrOlkHgrtd7kf1auaIlMKobEmesvBl6z70pOPr/RQo8IEXILd2UPZtibovfiWIk4eaRcHVmrlb1QI+5IiVYbiQTGtTR/b6BXilh75RSBctmwkQddjoc6sA/qnKD1f/v1jkwAx1DTIMhM8QoweGZzdA87G9vhqBnhofqdkyGrUSqmRQ9og0BustmlzUhBRxQ7CDCWS7MZQo7i+CppZOZFLxxFSWj1E4zKF9X4DfQo8nMWpC4L0gw9HCeTI7xhcYkit9fTobXnDxTTr7aDScMyuiSgzLA7y0o4wsNymDy/oJycg3KMwXlq91wuqCsb+LqhrYbCMTZYDaEaQxJdpptE6Nj3XCynK5jueWGWcE4vYhd8/D1Akdn3jVR/21v3qjggaA9Ldoi1OdKlh1KlkVD1fG011tyucntMd7H6uQMVb922O1ut7XpuDvaC+zwQuq0cFP19lwIX9hzo0nivdW/H6+rIxoPPFfegJDRyYTsvye2hDTM86uSQ0r68f9T0lzuD113da2ja3z3Bw==
\ No newline at end of file
diff --git a/Stack.png b/Stack.png
new file mode 100644
index 0000000..677cc95
Binary files /dev/null and b/Stack.png differ
diff --git a/index.html b/index.html
index 5418b18..7a8788e 100644
--- a/index.html
+++ b/index.html
@@ -148,9 +148,13 @@ layout: false
## Introduction
]
.right-column[
-- C is full of holes, let's get to know one.
+C is full of holes, let's get to know one.
-- Old skool, so no OS or hardware protections.
+Old skool, so no OS or hardware protections. Which today is mostly relevant in IoT. (Remember, the `S` in `IoT` stands for Security.)
+
+Stack smashing is making use of a buffer overflow vulnerability in code using variables on the stack. This type of vulenrability has been known for a long time. This attack was first properly documented in Phrack #49.
+
+.footnote[Phrack #49(http://www.phrack.org/issues/49/14.html#article)]
]
---
template: inverse
@@ -171,6 +175,22 @@ For x86 systems the stack grows from the largest memory address up.
.footnote[Borrowed from [wikipedia](https://en.wikipedia.org/wiki/Stack-based_memory_allocation)]
]
---
+.left-column[
+## Say wut?
+]
+.right-column[
+Whenever a function is called a frame is added to the stack. Whenever a function ends the frame is deleted.
+
+Such a frame consists of variables, a stored stack pointer and a return address.
+]
+---
+.left-column[
+## This is not helping you know...
+]
+.right-column.center.middle[
+
+]
+---
template: inverse
# How does this work?
---