超脑黑客
时间:2023-05-26 来源: 作者:疯狂小强
林鸿询问了一下拨号上网费用的问题,被告知需要至少25美元一个月,他在心中盘算了一下,虽然觉得有些贵,但也不是无法承受。于是他心中就琢磨着,什么时候也牵一根电话先到他房间里面,也享受一下上网冲浪的乐趣。不过他又有点顾虑,毕竟他人在美国,身上只带了三千美元,已经用了一百多美元了,如果再花上两百多美元在网络上,要是以后其他方面需要用钱怎么办?现在才刚到美国,时间还长着呢。
先将这个问题抛在一边,林鸿问起了另外一个问题。
“我想获得德州仪器的那个ti-82型计算器的电路原理图,你们知道从哪里可以找到吗?”。
“你要这个干什么?”马修很是奇怪。
亚瑟也比较疑惑,他是知道林鸿买了一个这样的计算器的,但是要电路原理图干什么呢?
“是这样的……”
林鸿将自己想要破解这台计算机的想法跟他么说了一遍,这毕竟不是什么重要的事情,他在很多方面还需要他们的帮助。
“哇哦,真酷”马修赞道。
“这个主意简直太棒了”亚瑟也觉得林鸿的这个想法很疯狂,不过很了不起。
再听到林鸿已经对破解这个计算机有了腹稿的时候,他们更是惊讶不已。
他们两人表示,将会全力配合林鸿将这个计算器破解出来,要知道,平时他们在学校,有时候也会碰到无聊的时刻,要是能够将这个计算机破解出来,那么则可以考虑将计算机中的游戏移植到其中,这样还真像林鸿所说的那样,随身携带了一台计算机。
一想到这个情景,亚瑟和马修就觉得简直太美妙了
说干就干,马修说他有办法获得这个原理图。
于是,马修让亚瑟找来了一本厚厚的电话簿,然后从电话簿中找到了德州仪器公司的计算器部门主管的联系方式,接着,他拿起电话,拨通了对方的号码。
在林鸿和亚瑟紧张和惊讶的目光中,马修和这个计算器部门主管在电话中狂侃了二十来分钟,最终顺利说服对方给他邮寄了一份ti-82计算机的电路原理图纸,并且还顺便附送了一些不常见的零器件。
林鸿和亚瑟两人对视了一眼,同时给他竖起了大拇指——牛
第一百三十七章蓝鹰【300票加更】
第一百三十七章蓝鹰【300票加,到(圣王txt下载)去看小说
.全部章节
超脑黑客 第一百三十八章sam三人组
. .
第一百三十八章sam三人组
马修是他们当中口才最好的一位,并且知识渊博。在电话中,他说自己是德州仪器的骨灰级用户,从甚至他的父亲也是老德州用户。他直言不讳自己正在拉丁学校上学,并且说自己目前正在做一个有关计算器方面的电子类项目,前几天最终确定将ti-82型计算器确定为自己的项目主体之一……
对方丝毫没有怀疑马修的话,他对马修的行为大加赞赏,同时也非常高兴马修如此喜欢他们公司的计算器。不但要邮寄给他具体的原理图,还另外友情赠送一些零器件,到最后,祝愿马修的项目顺利。
“不用惊讶,当年很多硬件黑客就是通过这种方式获得设备厂商的技术资料的,例如苹果公司最初创业的时候也是通过这个方式获得了第一批零器件。”面对林鸿的惊讶,马修却觉得这非常正常,在他看来,只要打电话过去,要求不是太离谱的话,一般对方都会很爽快地给予回应
一个小时之后,维娜和奥兰多都已经回家,不过亚瑟和马修两人都呆在房间里面没有出来,连晚饭都没有出来吃,当维娜问起的时候,林鸿只好很不自然地按照亚瑟的说法说他们正在完成一个老师布置的家庭作业,由于明天就是最后期限,所以正在加班加点地正在完成。
马修之前已经给家里打过电话,告诉他的父母,今天晚上他可能要在亚瑟家里留宿。
当维娜想要送晚饭进去的时候,却被房间里面的亚瑟给拒绝了,说让林鸿代劳就可以了—求魔最新章节—。
对此,维娜竟然也同意了,虽然她心中有些疑惑,但最终还是没有强行要求进入房间。
从这些生活细节中,林鸿看到了维娜对亚瑟的一种尊重,他们之间,似乎是一种完全平等的关系。在这里,父母非常尊重儿女的决定,很少会因为儿女违背了自己的意愿而且去强迫他们做些什么事情。这在国内似乎很少能看到这样的情形。
另外一方面,儿女想要从父母那里获得金钱或者礼物,一般都必须要付出一定的劳动作为代价才行,否则想要钱,就必须得“借”,既然是借,那以后自然是需要归还的,就如同亚瑟从父母那里借钱买苹果计算机一样,在自己要进行消费的时候,他心中就会时不时地想起自己身上还有一笔债务要还。这要是按照中国的习俗,父母给儿子钱买东西,似乎是天经地义理所当然的事情,斤斤计较岂不是显得太生分了?
由于亚瑟和马修两人都对林鸿的计算器破解计划产生了浓厚的兴趣,两人在房间里面便立刻开始着手实验者林鸿之前所说的一些东西,例如输入那些指令可以让计算器瞬间死机,或者出现各种各样的bug之类的。
其中很多bug,他们在使用的过程中早就遇到过,不过平时根本没有对这种事情上心,反正计算器重新启动之后又是好的,并不影响他们正常使用。
他们从来没有思考过,原来这些bug可以用来对计算器的固件进行破解。不是他们想不到,而是计算器这种东西在他们生活中实在是太常见了,太低端了,不够酷,从而也就没人想要在这个上面做点什么事情,他们玩的都是比较高端的东西,这样大家才会认为他们比较厉害。
不过现在回过头来想一下,如果他们真的将这个计算器破解成功,使之成为一种可以和低配置计算机相媲美的设备,这本身就是一件非常厉害,非常酷的事情,不是吗?
考虑到几乎所有人学生都有这样一个类似的计算器,马修于是专门用亚瑟的账号在一个名为“郁金香”技术类bbs上发布了一个名为“德州仪器公司ti系列计算器bug搜集大全”帖子,帖子在刚开始的时候,放出了几个比较明显的bug现象作为抛砖引玉之用,然后引导大家回帖写出自己在使用过程中所遇到的各种bug。
这个帖子在短短的时间内立刻就成为了bbs里面当天最热门的帖子,很多bbs用户都积极参与进来,因为他们在使用计算器的过程中,或多或少都有过这样的体验。
并且,这些用户本身就是一些对技术非常了解的人,他们看到这个帖子之后受到启发,于是纷纷拿起手中的计算器进行测试、挖掘……
短短半个小时之内,这个帖子的回复数量就已经超过一百个,并且每一个回复都基本言之有物,提出了至少一个计算器固件bug,各种死机,各种花屏,各种溢出……
大家看了这个帖子之后,第一次发现,原来自己一直在使用的计算器竟然隐藏着这么多不为人所知的bug,这简直是太操蛋了,身为追求完美的技术宅,他们实在无法容忍这样的情形出现,甚至有人开始抵制使用德州仪器这个系列的计算器。
在后来,已经陆续开始有人分析为什么会有其中某些bug存在的原因,他们专门另外发帖子讨论,有人推测这是软件设计方面的原因,也有人说这是由于硬件设计的缺陷,大家似乎谁也说服不了谁,于是开始各自寻找支持自己的论据。
有人直接给出一段代码,这段代码运行之后,其产生的表现和计算器中所出现的功能完全一样;也有人直接手绘出一部分计算器的电路图,然后根据这个手绘图从硬件原理上来证明求魔最新章节无法完成某种数据处理……
……
林鸿他们三人蹲守在计算机前刷新着帖子,精神都非常亢奋。他们没想到,这个问题会引起大家如此多的共鸣,关于计算器的讨论帖子,几乎将郁金香bbs上的整个版面都给占据了,并且有越来越多的趋势。
马修发的那个帖子仿佛就是一个导火索,轰的一声,直接将一个军火库给引爆了。
林鸿手中拿着纸笔,将一些他认为比较重要的信息迅速地记录下来。
果然还是众人的智慧强大,他昨天测试了一整个晚上,发现的东西只是其中的一小部分,而马修只在这里发了个帖子,却搜集到了这么多有用的信息,对于他的破解工作有着非常重要的意义,同时也很有启发性,让他想到不少可以用来进行破解的方法。当然,至于有没有用一切都还有待检验。
“stone,你真的有把握能够将计算器给破解吗?”。马修再一次确认道。
“从理论上讲,这完全是可能的。”还没等林鸿回答,亚瑟就抢先说道。
林鸿点点头:“亚瑟说得对,不过还得去尝试,只有亲自尝试过才能知道,不是吗?”。
“哇哦,我简直有些迫不及待想要看到这一天赶紧到来了”马修扶了扶已经开裂的眼镜,“我敢百分之百的确定,一旦我们将这个计算器成功破解,我们将成为学校里面最耀眼的明星”
对马修的这个论断,林鸿和亚瑟毫不怀疑,从bbs上这些人的反应就可以看出来。并且,拥有一台小如计算器大小的“计算机”,这在以前可是想都不敢想的事情,要知道,市面上目前似乎还没有这样的产品。
当然,这个“计算机”和真正的计算机比起来,还是有一些差距的,这是硬件方面的限制而导致的,但是至少可以完成计算机的大部分内容。
接下来,他们三人共同商量了一下,发现如果一旦破解出来,这个产品对于大家的魅力在于两点。
第一点是可以随心所欲地对其进行编程,而不像以前那样只限制在德州仪器公司所指定的几个功能上面。
亚瑟比较期待着一点,用他的话来说,他甚至希望这个计算器可以进行联网,从而实现入侵。当然,联网根本不现实,因为计算器的硬件已经彻底将其限制住了。倒是它自身所带的那个红外线数据交换功能有点意思,理论上来说,可以实现某种意义上的联机网络。
第二点是最关键的一点,那就是可以在其中运行游戏这一点才是马修最为期待的功能。
这个计算器有一个液晶显示屏,大小为96x64像素,完全可以显示一些比较简单的图形了。
马修希望能够在其中移植一些掌上游戏机或者计算机中的游戏。
当然,更理想的是,由他来亲自设计几个游戏,然后将其编写出来,再植入到计算器中……
一想到破解之后的场景,马修和亚瑟就对未来充满希望。
与此同时,马修和亚瑟通过这件事情对林鸿的硬件技术有了一个比较深刻的认知,在这点上,他们两个是无论如何都比不上的。马修擅长的是游戏方面的东西,包括游戏的策划和设计,他曾经设计了一款街机娱乐游戏,后来卖给了游戏公司,获得了一笔不小的收入。而亚瑟擅长的则是软件编程和网络方面的内容。
于是,在马修的提议下,一个名为“sam”的三人项目小组诞生了,这个名字是以他们三人名字的首字母而命名的。s表示stone,a则代表亚瑟,m则是马修。因为林鸿是这个项目的发起者,所以排在前面。
不过,马修和亚瑟并不知道,林鸿除了硬件知识功底扎实,其实他的软件编程能力也相当不错,他缺少的只是相关知识的积累而已。
第一百三十八章sam三人组
第一百三十八章sam三人组,到(圣王txt下载)去看小说
.全部章节
超脑黑客 第一百三十九章 栈缓冲区溢出
. .
第一百三十九章栈缓冲区溢出
第二天,学校食堂。
sam三人组又聚在了一起共同进餐。
亚瑟和马修两人脸上的伤痕如果不注意看的话已经看不出来,浮肿也完全消失,他们都称赞林鸿的“云南白药”非常神奇。
在他们的桌子上,摆放着三个ti-82型计算器,他们一边吃饭,一边不时地看看桌上的计算器,有时候还互相对视而笑,脸上虽然疲倦,但眉目之间却露出非常兴奋和自豪的神色。
这三个计算器,正是已经被成功破解了的计算器!
迅速吃完之后,马修马上拿起了自己的那个计算器,在上面按了几下,调出一个目录,然后运行其中的程序,整个计算器液晶屏顿时一刷新,只见一个右边一个小小的黑色长条开始慢慢从右至左开始移动,马修将计算器侧了过来,开始津津有味地玩了起来。
昨天,竟然有直接在bbs上就将ti-82计算器的电路图纸直接发布在上面,所以,德州仪器邮寄的资料,实际上已经意义不大了。那个人就是德州仪器公司的工程师,他在上面回答了许多用户提出的问题,并且说欢迎大家提出改进建议,他会向公司提交反馈内容。
由于提前拿到了图纸,破解的事情立刻提上了日常,兴奋之下的三人根本没有心思睡觉,他们做了一个重要决定,那就是一定要赶在返校舞会到来之前,将计算器破解出来。
他们分工合作,马修和亚瑟负责设计出一个有意思的软件或者游戏,而林鸿则负责计算器的破解,等破解出来之后,就移植到计算器上面,给大家来一个巨大的惊喜。
由于有了bbs上那些帖子的基础,林鸿已经对破解计算器有了非常大的把握,他最终让亚瑟拿出工具箱,将计算器给拆了开来,对照电路图仔细研究了计算器的硬件结构。
最终林鸿确定,并不需要对计算器进行硬件方面的修改,就完全可以突破德州仪器公司在固件上设置的限制枷锁。
这是因为在其中一个帖子中,有一个用户描述了他发现的一个现象,按照他给出的几个按键顺序和方式,就可以让计算器进入一个特殊的模式——“debug-n”。不过那个用户的这个回复贴很快就被紧接而来的其他回复给淹没了,只有很少人才注意到了他的这个回复。
因为林鸿需要对计算器进行破解,所以他对立面的所有回复都比较关注。这个用户的回帖他非常重视,专门用自己的计算器按照对方描述的顺序,完整地操作了一番,然后再将计算器连接到计算机上面进行了一系列测试,结果惊喜地发现,这个模式似乎是德州仪器公司的工程师在开发过程中用来调试用的,在这个模式下,用户对计算器的操作拥有很大的权限。
这绝对是个好消息,原本林鸿还以为需要对硬件进行改动,现在有了进入这个模式的方式,他完全可以直接不通过硬件,仅从软件上的漏洞就可以直接对这个计算器进行破解。
经过一个晚上的奋战,林鸿最终成功了。
他找到了一个计算器里面的栈缓冲区溢出,从而成功地往里面写入了自己的代码,突破了固件系统对用户操作空间权限的限制。
程序在运行过程中,为了临时存取数据的需要,一般都要分配一些内存空间,通常称这些空间为缓冲区。
这个区域一般是可以进行数据存储和删除操作的,保护级别并不严格。而在缓冲区之外,在存在着其他一些系统内核数据区域,存放的数据都是系统中非常重要的数据,一旦那些数据被修改,整个系统就可能发生崩溃,当然,也有可能出现其他意想不到的结果。
所以这些系统内核数据区域是被严格限制和保护的,用户不能对其进行操作。
栈是一种特殊的数据结构,特点是先入后出。就像一条死胡同,大家排队进去,满了之后停止进入,然后再一个一个排着队出来,先进去的那个人,最后才出来。这种数据结构生活中也有不少例子,例如交试卷,先交的人一般要到最后才会被老师看到,还有就是以前ktv里面点歌系统,先点歌的人,反而排在最后面唱。
按理说,德州仪器的工程师在编写程序的时候,是需要对压入栈里面的数据长度进行检查的,一旦这个栈已经满了,就必须停止对其再进行压入,否则就会产生溢出。
而林鸿找到的这个栈缓冲区,正是那些工程师编写代码的时候不严谨,忘记对这个栈进行长度检查,于是林鸿一直往其中压入数据,等它满了也不管,继续压入,于是便发生了栈内存溢出。
溢出便意味着栈缓冲区之外的单元会被改写,而假如这些数据单元里面存储的数据是有用数据的话,就会产生意想不到的后果,最常见的后果就是程序崩溃,通常情况(求魔最新章节)下,这只能算是程序的一个bug,但是当向这些栈中压入经过进行设计的数据,就不仅仅是bug了,而是成为了可供黑客利用的漏洞。
林鸿正是精心设计好了一个小程序,然后将其编译成机器码,先是向他找到的那个栈中压入一些无效的数据,精确计算这些数据的长度,等达到一定长度之后,再将他设计好的数据给压入进去,让其发生溢出,覆盖缓冲区之外的区域,这样当固件系统运行到这里的时候,就会成功地调用执行他的这个程序……
于是,这个严密的堡垒便被林鸿给成功攻克了。
这个过程,说起来看似简单,实际上却是经过林鸿无数次测试才找到的,为了精确计算栈的长度,他至少反反复复重复了五十遍以上的数据压入过程,而为了能够让自己的这个程序能够顺利接管固件的运行流程,其中所花费的时间和精力,也是无法三言两语描述得清楚的。
林鸿将其成功破解之后,兴奋之下,忘记了别人不像自己根本不用睡觉,当时就立刻敲响了亚瑟的房门,幸好他们刚刚睡下不久,听到他这么快就将计算器给破击出来了,原本已经瞌睡得睁不开眼睛的两人顿时精神一振,将睡意抛到了九霄云外。
立刻想要看一下破解之后的成果,可是接下来难题又来了——没有合适的可以运行在上面的软件。
之前他们两个讨论了很久,始终无法确定第一个软件该编写什么功能。亚瑟比较倾向于做一个实用性的软件,例如可以辅助学生在学校的学习,而马修则倾向于编写一个有意思的游戏。
两个人的意见不能统一,时间就在他们不断地争辩中流逝,结果什么东西都没做出来。
现在机器已经出来了,却没有合适的软件,真是够郁闷的。
这个时候,马修提出,先编写一个相对比较简单的游戏跑起来再说,得到了林鸿和亚瑟的一致认可。
三人商量了一下,最终决定将俄罗斯方块这个游戏移植到计算器中。
俄罗斯方块是苏联科学家阿列克谢*帕基特诺夫一个经典游戏,它看似简单但却变化无穷,令人上瘾。1988年在美国上市之后,立刻获得了巨大的商业成功,受到了男女老少所有人的欢迎,成为一款极为经典的大众游戏,没有任何一款游戏能够与其媲美。
亚瑟之前在学习编程的时候,曾经独立开发过这个游戏,有现成的源代码,移植起来的难度并不大。
于是,他们又将阵地转移到了林鸿房间,因为他这台机器可以模拟z80cpu的运行环境,将亚瑟之前编写的那个源程序进行简单的修改和优化之后,就将其编译成为了一个可在计算器里面执行的文件,然后通过数据线传输到了计算器存储空间中。
刚开始的几次运行都出了点问题,但是这是很正常的情况(求魔最新章节),移植到另外一个平台,如果能一次性就成功,那就太夸张了,就算是再牛逼的程序员,有时候也是会犯一些低级错误的,例如变量名称写错,忘记写分号之类的,这是很正常的情况(求魔最新章节)。只要根据调试信息,有针对性地进行修改就行了。
编写程序就是这样,调试、运行、再调试……
不断地和各种错误和bug做这斗争,直到最终顺利通过的那一刻!
在进行过十几次不断地来回调试和传输程序的过程之后,亚瑟的俄罗斯游戏终于顺利地在ti-82上运行了!
马修第一时间将计算器抢了过来,然后开始玩了起来。
玩俄罗斯方块游戏,只需要至多五个按键就可以,三个方向键,一个键用来变换,另外一个键则用来加速。而计算器上有几十个按键,足够了。
马修在玩了一会儿就发现,由于计算器显示屏高度太低,很容易就会被撑到顶,最终挂掉。
于是,他提出了改进意见,将显示方式向顺时针方向旋转90度,这样方块下落的路程就可以大大加长,可以降低难度。
于是,亚瑟又开始对游戏的源程序进行修改……
在整个过程中,林后都没再插手,他只是在旁边观看着亚瑟编写程序。
亚瑟的这个俄罗斯方块程序是用c语言进行编写的,林鸿来美国之后才开始接触这门编程语言,用得还不是很熟,今天看到亚瑟不断修改调试,也学到了不少东西。
他发现,亚瑟编写程序的时候,有一些细小的编程习惯值得借鉴和学习,例如在关键的地方给点注释、给代码语句多分行缩进,提高代码的可读性……等等。
在将近凌晨五点的时候,他们终于将最终版的俄罗斯方块游戏给确定下来。
此刻,除了林鸿,亚瑟和马修都疲惫不堪,直接倒在床上呼呼大睡。
这天早晨的晨练,亚瑟和马修都没能去,只有林鸿一人。
第一百三十九章栈缓冲区溢出
第一百三十九章栈缓冲区溢出,到(圣王txt下载)去看小说
.全部章节
超脑黑客 第一百四十章 金发美女 【求月票】
猜你喜欢