LearnViz CompSci
Home / Learn / Security & Cryptography / ASLR and Stack Canaries

Advanced Topic 41 of 51 Security & Cryptography

ASLR and Stack Canaries

Mitigations randomizing layout and detecting stack corruption.

How it works

Address space layout randomization randomizes where the stack, heap, libraries and executable are loaded in memory on each run, so an attacker cannot know the addresses of useful code or data. Stack canaries are secret values placed between local buffers and the saved return address; the function checks them before returning, and a changed canary shows a stack overflow and aborts the program. Together with non-executable stacks and position-independent executables they raise the cost of memory-corruption exploits.

Where it is used

Modern operating systems and compilers enable them by default, for example the GCC stack protector options and Windows and Linux ASLR.

Common pitfall

They are mitigations, not fixes: information leaks reveal addresses and defeat ASLR, canaries can be leaked or bypassed by overwriting other data, and 32-bit systems have little randomness. Non-PIE binaries and old libraries remain predictable. Fix the underlying bug, compile with hardening flags and combine layers.

Where it fits in the course

ASLR and Stack Canaries is topic 41 of 51 in Security & Cryptography, rated Advanced. It follows Return-Oriented Programming. The next topic is Sandboxing.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Security & Cryptography quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is ASLR and Stack Canaries?
Mitigations randomizing layout and detecting stack corruption. It belongs to Security & Cryptography and is an advanced-level topic.
Where do people use ASLR and Stack Canaries?
Modern operating systems and compilers enable them by default, for example the GCC stack protector options and Windows and Linux ASLR.
What is the most common mistake with ASLR and Stack Canaries?
They are mitigations, not fixes: information leaks reveal addresses and defeat ASLR, canaries can be leaked or bypassed by overwriting other data, and 32-bit systems have little randomness.
What should I learn before this topic?
Start with Return-Oriented Programming, the topic just before it in Security & Cryptography.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Security & Cryptography quiz. You can also explore Stack, Queue & Linked List in the Visual Lab.
Is ASLR and Stack Canaries hard to learn?
It is an Advanced topic. Expect to read the explanation more than once and to connect it with earlier topics. Working through a small example by hand helps most.
How long does it take to learn ASLR and Stack Canaries?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to ASLR and Stack Canaries?
Return-Oriented Programming, Sandboxing, Side-Channel Attacks are closely connected. The full list is in the related topics section of this page.
What should I study after ASLR and Stack Canaries?
Continue with Sandboxing, the next topic in Security & Cryptography.

Related topics