Roughly 10 years ago, Cameron and I were roommates. At the time, he was getting into computer security, talking about NOP sleds and shell code while I ranted about how the Intel memory model could prevent it if people used it correctly. Thankfully he talked me out of writing something antagonistic and a brief introduction to Intel memory management resulted.
There are some notable weaknesses including:
- no mention of how caching figures in
- little to no talk of actually securing things
- it’s IA32, so kind of out of date (bear in mind this was 10 years ago)
I intended some sort of followup that covered safer process address space construction using non-executable heaps but unfortunately never got around to it. Nevertheless, I figured it might be of interest to some people so share and enjoy.