妙笔文学网 - 历史军事 - 超脑黑客 - 第一百三十九章 栈缓冲区溢出

第一百三十九章 栈缓冲区溢出[第1页/共2页]

这个时候。马修提出,先编写一个相对比较简朴的游戏跑起来再说,获得了林鸿和亚瑟的分歧承认。

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

这个过程,提及来看似简朴,实际上倒是颠末林鸿无数次测试才找到的,为了切确计算栈的长度。他起码反几次复反复了五十遍以上的数据压入过程。而为了能够让本身的这个法度能够顺利领受固件的运转流程,此中所huā费的时候和精力,也是没法三言两语描述得清楚的。

这绝对是个好动静,本来林鸿还觉得需求对硬件停止窜改,现在有了进入这个形式的体例。他完整能够直接不通过硬件,仅从软件上的缝隙便能够直接对这个计算器停止破解。

这三个计算器,恰是已经被胜利破解了的计算器!

按理说,德州仪器的工程师在编写法度的时候,是需求对压入栈内里的数据长度停止查抄的,一旦这个栈已经满了,就必须停止对其再停止压入,不然就会产生溢出。

因而,这个周到的堡垒便被林鸿给胜利霸占了。

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

SAM三人组又聚在了一起共同进餐。

他找到了一个计算器内里的栈缓冲区溢出,从而胜利地往内里写入了本身的代码,冲破了固件体系对用户操纵空间权限的限定。

因为林鸿需求对计算器停止破解,以是他对峙面的统统答复都比较存眷。这个用户的回帖他非常正视,专门用本身的计算器遵循对方描述的挨次,完整地操纵了一番,然后再将计算器连接到计算机上面停止了一系列测试,成果欣喜地发明,这个形式仿佛是德州仪器公司的工程师在开辟过程顶用来调试用的。在这个形式下,用户对计算器的操纵具有很大的权限。

这个地区普通是能够停止数据存储和删除操纵的,庇护级别并不严格。而在缓冲区以外,在存在着其他一些体系内核数据地区,存放的数据都是体系中非常首要的数据,一旦那些数据被点窜,全部体系便能够产生崩溃。当然,也有能够呈现其他意想不到的成果。

敏捷吃完以后,马修顿时拿起了本身的阿谁计算器,在上面按了几下,调出一个目次,然后运转此中的法度,全部计算器液晶屏顿时一革新,只见一个右边一个小小的玄色长条开端渐渐从右至左开端挪动,马修将计算器侧了过来,开端津津有味地玩了起来。

明天,竟然有直接在BBS上就将TI-82计算器的电路图纸直接公布在上面,以是,德州仪器邮寄的质料,实际上已经意义不大了。那小我就是德州仪器公司的工程师,他在上面答复了很多用户提出的题目,并且说欢迎大师提出改进建议,他会向公司提交反应内容。

颠末一个早晨的奋战,林鸿终究胜利了。

玩俄罗斯方块游戏,只需求最多五个按键便能够,三个方向键,一个键用来变更,别的一个键则用来加快。而计算器上有几十个按键,充足了。

以是这些体系内核数据地区是被严格限定和庇护的,用户不能对其停止操纵。

这是因为在此中一个帖子中。有一个用户描述了他发明的一个征象,遵循他给出的几个按键挨次和体例,便能够让计算器进入一个特别的形式――“DEBUG-N”。不过阿谁用户的这个答复贴很快就被紧接而来的其他答复给淹没了,只要很少人才重视到了他的这个答复。

不竭地和各种弊端和BUG做这斗争,直到终究顺利通过的那一刻!

亚瑟和马修两人脸上的伤痕如果不重视看的话已经看不出来,浮肿也完整消逝,他们都奖饰林鸿的“云南白药”非常奇异。

溢出便意味着栈缓冲区以外的单位会被改写,而假定这些数据单位内里存储的数据是有效数据的话,就会产买卖想不到的结果,最常见的结果就是法度崩溃,凡是环境下,这只能算是法度的一个BUG,但是当向这些栈中压入颠末停止设想的数据,就不但仅是BUG了,而是成为了可供黑客操纵的缝隙。

因而,他提出了改进定见,将显现体例向顺时针方向扭转90度,如许方块下落的路程便能够大大加长,能够降流浪度。

在全部过程中,林后都没再插手,他只是在中间旁观着亚瑟编写法度。

林鸿恰是经心设想好了一个小法度,然后将其编译成机器码,先是向他找到的阿谁栈中压入一些无效的数据,切确计算这些数据的长度,等达到必然长度以后,再将他设想好的数据给压入出来,让其产生溢出,覆盖缓冲区以外的地区,如许当固件体系运转到这里的时候,就会胜利地调用履行他的这个法度……

在停止过十几次不竭地来回调试和传输法度的过程以后,亚瑟的俄罗斯游戏终究顺利地在TI-82上运转了!

因而,亚瑟又开端对游戏的源法度停止点窜……

两小我的定见不能同一,时候就在他们不竭地辩论中流逝,成果甚么东西都没做出来。

终究林鸿肯定,并不需求对计算器停止硬件方面的点窜,就完整能够冲破德州仪器公司在固件上设置的限定桎梏。

林鸿将其胜利破解以后,〖兴〗奋之下,健忘了别人不像本身底子不消睡觉,当时就立即敲响了亚瑟的房门,幸亏他们方才睡下不久,听到他这么快就将计算器给破击出来了。本来已经打盹得睁不开眼睛的两人顿时精力一振,将睡意抛到了九霄云外。

马修第一时候将计算器抢了过来,然后开端玩了起来。

法度在运转过程中,为了临时存取数据的需求。普通都要分派一些内存空间,凡是称这些空间为缓冲区。

马修在玩了一会儿就发明,因为计算器显现屏高度太低,很轻易就会被撑到顶,终究挂掉。

栈是一种特别的数据布局,特性是先入后出。就像一条死胡同,大师列队出来,满了以后停止进入,然后再一个一个排着队出来,先出来的那小我,最后才出来。这类数据布局糊口中也有很多例子,比方交试卷,先交的人普通要到最后才会被教员看到,另有就是之前KTV内里点歌体系,先点歌的人,反而排在最前面唱。

刚开端的几次运转都出了点题目,但是这是很普通的环境,移植到别的一个平台,如果能一次性就胜利,那就太夸大了,就算是再牛逼的法度员,偶然候也是会犯一些初级弊端的,比方变量称呼写错,健忘写分号之类的,这是很普通的环境。只要按照调试信息,有针对性地停止点窜就行了。

他们合作合作,马修和亚瑟卖力设想出一个成心机的软件或者游戏,而林鸿则卖力计算器的破解。等破解出来以后。就移植到计算器上面,给大师来一个庞大的欣喜。

因为提早拿到了图纸,破解的事情立即提上了平常,〖兴〗奋之下的三人底子没故意机睡觉,他们做了一个首要决定,那就是必然要赶在返校舞会到来之前,将计算器破解出来。