Memory... where do we start. Few things are harder to wrap our heads around how it all works. This course does not pretend it will teach you everything you will need to know about memory, this is just giving you the tools you need to continue learning. With that said, pay attention here, and refer back to help understand things.
What makes up primary memory and what is it used for?
- What is secondary memory and what is it used for?
What do we need a cache for?
What does RAM stand for?
- What makes RAM volatile?
- What happens when a computer is turned off?
- Read about a cold boot attack... how does that work? https://arstechnica.com/gadgets/2018/09/cold-boot-attacks-given-new-life-with-firmware-attack/
Plenty of cyber security purists will lose their mind if I do not acknowledge the existence of virtual memory and "the stack" during the section regarding memory. "The stack" is the region of memory, in RAM, where data is added and removed by processes. That is all you are going to learn in this course. All binary exploitation is dependent on in depth knowledge of "the stack"... and you won't be doing any binary exploitation during this course. Don't worry about it, soon you'll be "Smashing the Stack for Fun and Profit", but for now, you need to learn what an operating system does for you.
- Read this... I probably need a better resource but nobody makes short guides to this... because it is complicated as hell. https://www.allaboutcircuits.com/technical-articles/what-is-virtual-memory/
Read this down to the Examples: https://www.geeksforgeeks.org/memory-layout-of-c-program/
What is the stack?
- What is the heap?
- What does memory allocation mean?
- Where is memory allocated?
- What does memory de-allocation mean?
- What happens when memory is de-allocated?