Address space layout randomization (ASLR) is a mitigation technique that is used by multiple operating systems, including Windows and Linux. The idea behind it is to randomize addresses where the application and the DLLs are loaded in the process memory. Instead of using predefined ImageBase values, the system uses random addresses to make it very hard for the attackers to construct their ROP chains that generally rely on static addresses of instructions comprising it.
Now, let's take a look at some common ways to bypass it.