Introduction
In this section, we will give out popular protections and mitigations under the userland in Linux and explain their technical details. Most of them are designed for fighting against evil code execution in process of binary exploitation, while some of them are designed for runtime detection to prevent from being attacked. Most of them are mainly software-level solutions, while some of them are based on specific hardware features.
Note that in this section we will not fully introduce how to bypass these protections, but focus more on concepts of their designs and how they're usually implemented. We will give out detailed solutions of defeating them in corresponding articles of related exploitation techniques.
Currently we may not get all protections fully collected at this time, but we will try our best to complete the journey.