gcc
# -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 保护机制。
快捷
layout:用于分割窗口,可以一边查看代码,一边测试。主要有以下几种用法:
layout src:显示源代码窗口
layout asm:显示汇编窗口
layout regs:显示源代码/汇编和寄存器窗口
layout split:显示源代码和汇编窗口
layout next:显示下一个layout
layout prev:显示上一个layout
Ctrl + L:刷新窗口
Ctrl + x,再按1:单窗口模式,显示一个窗口
Ctrl + x,再按2:双窗口模式,显示两个窗口
Ctrl + x,再按a:回到传统模式,即退出layout,回到执行layout之前的调试窗口。
人生还有意义。那一定是还在找存在的理由