第203章 缓冲区溢出攻击
第203章 缓冲区溢出攻击 (第2/3页)
,这台计算机,虽然结构与地球上的同类有所不同,但是基本执行原理还是相同的。
对面处理器大楼里有三个重要的寄存器,分别是指令指针IP,基址指针BP,栈顶指针SP。
其中,IP里面存着的16位二进制数字,永远是需要执行的下一条指令的地址。它是计算机最重要的寄存器。只要控制了IP,那么就控制了这台计算机。
当墨莫打开水晶盖子的时候,计算机首先会把接收这个控制台输入密码的程序调入内存,并把控制权移交给它。
怎么移交呢?
当然就是先把IP的值存入缓冲区,然后再把新程序在内存的位置交给IP。这样就完成了计算机控制权的移交。接下来IP就会从新位置取出指令执行,这些指令就是新程序的指令了。
为什么要先把IP的值压入缓冲区呢?当然是为了,在执行完了新程序之后,能够从缓冲区里取出这个值,IP回到调用新程序之前的地址,接着执行旧程序。
也就是重新将计算机控制权交还给深海脑魔。
BP和SP里面的16位二进制地址,是当前正在执行的程序,它的数据储存在内存中的范围,被称为缓冲区。缓冲区在内存中的位置,距离当前正在执行的位置,很远很远。此刻IP指向二楼,而BP和SP,指向四楼。
当新程序被调用,它的数据的开头位置,也就是BP也会被保存起来,以便执行完了新程序,能够找到这些数据。
这就是一个程序从打开,到关闭的基本过程。
【米娅,把这些符号给我换成数字,我看着眼晕。】
墨莫眼中的16个林荫文字母变成了0到F的十六进制数字。
墨莫一下子打开了水晶盖子。
下一刻,四楼的缓冲区首先发生了变化。BP的值被压进缓冲区保存,SP的值向下移动一格。
然后,对面大楼里,BP的值变成了和SP一样的值,此刻,旧程序的缓冲区,被封在了它俩上面。
下一步,四楼,IP的值被保存,SP再向下移动一格。接着,新程序被加载进了二楼的一段内存中。
对面处理器大楼上,IP的值发生了变化,新的IP值正是新程序所在的二楼位置。
最后,为了储存新程序的数据,也就是墨莫即将输入的密码,SP再向下移动了整整六百格!
然后计算机停下了,等待着墨莫的输入。
墨莫想都没想,瞅准最后一个按键,也就是F,不停的按。
米娅在心灵网络中不停的计数:【1,2,3……】
随着墨莫的输入,四楼内存里,那六百格的数据,从下到上,一格接着一格开始依次变为整整齐齐的FFFF、FFFF……
墨莫就这么一直输入,不停的按,四楼的FFFF一直向上延伸,距离那几个保存着寄存器数据的位置,越来越近。
直到,墨莫按下第六百次,抬头看了一眼,透过透明的魔法水晶,清楚的看到,在四楼缓冲区里,整齐的FFFF前面,就是保存的旧程序的IP值。
(本章未完,请点击下一页继续阅读)