第203章 缓冲区溢出攻击(2/2)
然后,对面大楼里,bp的值变成了和sp一样的值,此刻,旧程序的缓冲区,被封在了它俩上面。
下一步,四楼,ip的值被保存,sp再向下移动一格。接着,新程序被加载进了二楼的一段内存中。
对面处理器大楼上,ip的值发生了变化,新的ip值正是新程序所在的二楼位置。
最后,为了储存新程序的数据,也就是墨莫即将输入的密码,sp再向下移动了整整六百格!
然后计算机停下了,等待着墨莫的输入。
墨莫想都没想,瞅准最后一个按键,也就是f,不停的按。
米娅在心灵网络中不停的计数:【1,2,3……】
随着墨莫的输入,四楼内存里,那六百格的数据,从下到上,一格接着一格开始依次变为整整齐齐的ffff、ffff……
墨莫就这么一直输入,不停的按,四楼的ffff一直向上延伸,距离那几个保存着寄存器数据的位置,越来越近。
直到,墨莫按下第六百次,抬头看了一眼,透过透明的魔法水晶,清楚的看到,在四楼缓冲区里,整齐的ffff前面,就是保存的旧程序的ip值。
【米娅,那里的地址是多少?】
米娅:【经过计算,是df19。】
墨莫点点头,不再输入千篇一律的ffff,而是接着输入:df1a……
当墨莫输入的时候,四楼的缓冲区,那保存着旧程序的ip值的那一格,被墨莫输入的数据覆盖掉了,直接变成了df1a。
前面说过,这台机器的各个程序没有权限高低之分,ip的值在内存的哪里,那么那段内存上的程序就完全享有计算机的所有操控权。
墨莫此刻这个输入程序,那就是最高程序,输入什么,就一定会在内存里写什么,不管前面是什么东西,统统会给覆盖掉。
在覆盖掉旧程序的ip值后,墨莫根据解析出的cpu指令,开始在后面的内存空间中写程序。
这上面大概还有1mb的内存空间,对墨莫这种级别的程序员来说,甚至都可以做一个操作系统了。只见墨莫手指飞快,不停的在16个按键上按着。
四楼那原本是缓冲区的位置,也被飞快的改写着。
旧程序的ip值被覆盖,然后是旧程序的bp值被覆盖,然后是旧程序的数据被覆盖,乃至上面的更旧的程序、更上面的更更旧的程序的数据,纷纷被墨莫输入的代码覆盖。
直到,墨莫一直写到了内存的终点。
然后,墨莫手扶着这个操作台的水晶盖子,轻轻的合上了。
深海脑魔触手上的眼睛猛然睁开,恶狠狠的盯着墨莫,它好像看到了,下一刻,墨莫就会被那里的机关融化!
在墨莫合上盖子的那一刻,位于内存大楼二楼的这个程序,终于执行完毕。
内存大楼四楼缓冲区,df19位置的内容,被传送给对面处理器的指令指针寄存器——ip。
正常情况下,按照机器的执行顺序,这个值就是旧程序的代码在内存二楼的位置。ip将执行位于那里的旧程序,也就是将计算机的控制权还给深海脑魔。
然而,这个值,早已不再是原来那个值了。它被墨莫替换成了——df1a。
df1a就是df19的上一格,而那里的程序,不就是刚刚墨莫写的那些代码吗?
于是,机器开始忠实的执行墨莫输入的代码:
第一步,建立权限系统,只有特定代码前缀的程序,才可以被执行,否则就是无效的。
第二步,运行控制台输入程序,使得墨莫可以通过这个控制台继续编程。
深海脑魔等了几秒,等着墨莫被那个机关融化,然而那控制台的机关毫无反应。
不仅如此,它还发现,那个每次和它的牢房交换信号的程序,不见了!自己再次与这台机器断开了联系。
‘难道他成功了?’深海脑魔暗暗思索,‘怎么可能?他按了那么多下,怎么可能有那么长的密码?就算有,他又是怎么知道的?’
如果这使它困扰,那接下来发生的事,就让它感到恐惧了。
下一刻,关了它几百年的牢笼,这个魔法水晶构造的房间,在一声轻响过后,慢慢打开了……