# -Wl,-z,noexecstack 是一个选项,用于告诉链接器不在程序的栈上执行代码。这个选项可以提高程序的安全性,因为它可以防止栈溢出攻击。 栈溢出攻击是一种常见的攻击方式,攻击者通过向程序的栈中注入恶意代码来控制程序的执行流程。使用 -Wl,-z,noexecstack 选项可以防止这种攻击方式,因为它会禁止在程序的栈上执行代码。 # -Wl,-z,relro 一个选项,用于启用 RELRO(RELocation Read-Only)保护机制。这个选项可以提高程序的安全性,因为它可以防止一些针对程序的攻击,例如 GOT(Global Offset Table)覆盖攻击。 RELRO 保护机制是一种内存保护机制,它可以将程序的重定位表(Relocation Table)设置为只读模式,从而防止攻击者修改程序的重定位表。这个机制可以防止一些针对程序的攻击,例如 GOT 覆盖攻击。 # -Wl,-z,now 是一个选项,用于启用 NOW(No lazy symbol binding)保护机制。这个选项可以提高程序的安全性,因为它可以防止一些针对程序的攻击,例如 PLT(Procedure Linkage Table)覆盖攻击。 NOW 保护机制是一种内存保护机制,它可以在程序启动时立即解析所有的符号,从而防止攻击者修改程序的 PLT 表。这个机制可以防止一些针对程序的攻击,例如 PLT 覆盖攻击。 使用 -Wl,-z,now 选项可以启用 NOW 保护机制。
标签:选项,gcc,攻击,Wl,程序,防止,机制 From: https://www.cnblogs.com/shiqi17/p/17988065