1. 在执行POP的时候,首先获得数据,然后指针上移一个字
pop ax
sp=sp+2
但是数据还是存在的 ,只有PUSH的时候 他才会被覆盖掉
有点像 硬盘格式化后还可以恢复,硬盘的格式话,并没有真正的删除数据,只是索引重置了,
当前格式化分低格和高格,不一样的, 深度格式化的话 就不会被恢复的。
或者借助专门的格式化工具进行不段的覆盖这样也是难恢复的,不然就艳照门了~
2.栈溢出
黑客利用栈的溢出可以进行攻击,也就是这个栈了。
栈溢出是危险的
C、C++会出现没有数据检查,但是JAVA c#低层有对数据的溢出检查
CPU只知道栈顶 ,栈顶栈底 多大他不知道,
SP指向的就是栈顶 就想 CS:IP 指向的就是指令一样
段寄存器不能直接和数据发生关系, 需要通过通用寄存器来间接产生关系