5200小说网
会员书架
首页 >都市言情 >超脑黑客 > 第一百三十九章 栈缓冲区溢出

第一百三十九章 栈缓冲区溢出

上一页 章节目录 加入书签 下一页

之前他们两个讨论了很久,始终无法确定第一个软件该编写什么功能。亚瑟比较倾向于做一个实用性的软件,例如可以辅助学生在学校的学习,而马修则倾向于编写一个有意思的游戏。

两个人的意见不能统一,时间就在他们不断地争辩中流逝,结果什么东西都没做出来。

现在机器已经出来了,却没有合适的软件,真是够郁闷的。

这个时候,马修提出,先编写一个相对比较简单的游戏跑起来再说,得到了林鸿和亚瑟的一致认可。

三人商量了一下,最终决定将俄罗斯方块这个游戏移植到计算器中。

所以这些系统内核数据区域是被严格限制和保护的,用户不能对其进行操作。

栈是一种特殊的数据结构,特点是先入后出。就像一条死胡同,大家排队进去,满了之后停止进入,然后再一个一个排着队出来,先进去的那个人,最后才出来。这种数据结构生活中也有不少例子,例如交试卷,先交的人一般要到最后才会被老师看到,还有就是以前ktv里面点歌系统,先点歌的人,反而排在最后面唱。

按理说,德州仪器的工程师在编写程序的时候,是需要对压入栈里面的数据长度进行检查的,一旦这个栈已经满了,就必须停止对其再进行压入,否则就会产生溢出。

而林鸿找到的这个栈缓冲区,正是那些工程师编写代码的时候不严谨,忘记对这个栈进行长度检查,于是林鸿一直往其中压入数据,等它满了也不管,继续压入,于是便发生了栈内存溢出。

溢出便意味着栈缓冲区之外的单元会被改写,而假如这些数据单元里面存储的数据是有用数据的话,就会产生意想不到的后果,最常见的后果就是程序崩溃,通常情况(武动乾坤最新章节)下,这只能算是程序的一个bug,但是当向这些栈中压入经过进行设计的数据,就不仅仅是bug了,而是成为了可供黑客利用的漏洞。

俄罗斯方块是苏联科学家阿列克谢*帕基特诺夫一个经典游戏,它看似简单但却变化无穷,令人上瘾。1988年在美国上市之后,立刻获得了巨大的商业成功,受到了男女老少所有人的欢迎,成为一款极为经典的大众游戏,没有任何一款游戏能够与其媲美。

亚瑟之前在学习编程的时候,曾经独立开发过这个游戏,有现成的源代码,移植起来的难度并不大。

于是,他们又将阵地转移到了林鸿房间,因为他这台机器可以模拟z80cpu的运行环境,将亚瑟之前编写的那个源程序进行简单的修改和优化之后,就将其编译成为了一个可在计算器里面执行的文件,然后通过数据线传输到了计算器存储空间中。

林鸿正是精心设计好了一个小程序,然后将其编译成机器码,先是向他找到的那个栈中压入一些无效的数据,精确计算这些数据的长度,等达到一定长度之后,再将他设计好的数据给压入进去,让其发生溢出,覆盖缓冲区之外的区域,这样当固件系统运行到这里的时候,就会成功地调用执行他的这个程序……

于是,这个严密的堡垒便被林鸿给成功攻克了。

这个过程,说起来看似简单,实际上却是经过林鸿无数次测试才找到的,为了精确计算栈的长度,他至少反反复复重复了五十遍以上的数据压入过程,而为了能够让自己的这个程序能够顺利接管固件的运行流程,其中所花费的时间和精力,也是无法三言两语描述得清楚的。

林鸿将其成功破解之后,兴奋之下,忘记了别人不像自己根本不用睡觉,当时就立刻敲响了亚瑟的房门,幸好他们刚刚睡下不久,听到他这么快就将计算器给破击出来了,原本已经瞌睡得睁不开眼睛的两人顿时精神一振,将睡意抛到了九霄云外。

立刻想要看一下破解之后的成果,可是接下来难题又来了——没有合适的可以运行在上面的软件。

小说APP安卓版, 点击下载
点击切换 [繁体版]    [简体版]
上一页 章节目录 加入书签 下一页