原理:
处理器中特殊的寄存器:
EIP:扩展指令寄存器,存放下一条要执行的指令地址。
EBP:扩展地址寄存器,存栈底指针,通常称为栈指针。
ESP:扩展堆栈寄存器,存放栈顶指针。
堆栈两个重要操作:PUSH和POP
程序段(内存低端):存程序机器码和只读数据
数据段(内存中端):存程序静态数据
堆栈(内存高端):存程序中动态数据
栈的一般结构:
local1 local2…EBP RET地址 参数1 参数2…
内存低端 ——————————————————内存高端
攻击防范:
系统上管理防范:关闭不要的特权服务,及时给程序漏洞打补丁。
软件开发过程中的防范:编写正确代码,缓冲区不可执行,改过C语言函数库。
漏洞防范:地址空间随机化技术,数据执行阻止,堆栈保护。