PIE - Position Independent Executable A compiler change called PIE makes the main program a "shared library" Then we can map it anywhere On each run, the main program has a new address