PIE 如何缓解漏洞利用?

逆向工程 罗普 馅饼
2021-06-29 18:29:55

我读了一个教程,他们用-no-pie选项编译是不是因为该.text段将被加载到一个随机地址,因此使得在其中找到的小工具地址无用?

1个回答

PIE 缩写的意思是“Position Independent Executable”。当操作系统加载程序将二进制文件和依赖项加载到虚拟内存的随机位置时,此类可执行文件可能会要求或不要求操作系统进行地址空间布局随机化 (ASLR)。

ASLR 本身,而不是 PIE,保护可执行文件免受特定恶意软件(依赖特定代码的固定虚拟地址并尝试在已经运行的程序中更改它)。请求 ASLR 是PIE 标志旁边的另一个标志。

-no-pieGCC 编译器选项意味着“没有 PIE”——它只是可执行文件头中的一位,向加载器发出信号,代码是位置相关的。(然后加载器将始终将代码加载到可执行文件头中指示的相同、固定的虚拟内存位置。)