主说,我是Α,我是Ω,是昔在今在以后永在的全能者。 ——启示录 1:8

是二进制学习的开始,同时,对于栈的控制也可以宣告对于程序流的控制,开始能够进行操作了。

前置知识:

从栈帧的运转方式来看,我们可以知道,在一段函数运行完成之后,程序会跳转回先前旧函数运行的位置。而且这个返回的位置就在栈帧的深地址的位置。而,如果我们有某种方式覆盖或者更改函数的这部分值,就可以控制程序流,使其能够到任何我们想去的地方。

的结构我们可以知道,调用函数之后,返回值被压入栈。最简单的方式就是通过输入覆盖返回地址。