《象牙塔神话》

下载本书

添加书签

象牙塔神话- 第12部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
5算法的有效办法。与会各国科学家全场震惊。”

  “做大事者要有恒心,要有毅力,不要轻易说我不能。今天不能,不能代表永远不能。”老师最后如是说。

  书 包 网 txt小说上传分享

象牙塔神话(二十八)
最近比较空闲,周末的时候,偶尔也开始玩游戏。

  我玩的第一个游戏,是奥汀公司出品的《三国群英传五》,是战略类的游戏,我选了刘备,开档以后玩了两个小时,就觉得特别郁闷,游戏进展太慢了,玩了那么久,才占领了几座城池,这时,我想,有没有什么办法,可以让自己快速暴机,结束游戏,这样也不会浪费太多的时间。

  我不是纯粹的游戏爱好者,我,自己本身,也是一名程序员,我决定对游戏的程序进行研究。

  在参考了网上的一些文章之后,我发现游戏是可以被修改的,一种是成为静态修改,一种是动态修改。所谓静态修改,就是对游戏的存档,游戏的各个可以被打开的文件进行修改,动态修改,一般指内存修改,游戏程序在运行的时候,游戏中的一些数据会暂时储存在内存里面,如果找到这些数据在内存里面的存储地址,我们就可以对其进行修改,比如在这个游戏里,诸葛亮的武力是32,如果能找到这个数据的存储地址,那么我们可以把他改成255,这样,就可以让诸葛亮去跟吕布单挑,而且保证会把吕布打得落荒而逃。

  在对游戏程序的各个文件进行尝试之后,我发现要静态修改,似乎不太可能,这时,我把注意力集中在了动态修改。要动态修改,就必须用到内存修改工具,我选择了金山游侠五,首先,启动游戏,然后,用游侠五在内存里查找数值32,找到成千上万个结果,这是因为游戏里面有很多的数据要随着游戏进行进行运算,所以会肯能出现相同的数据。然后我回到游戏,让诸葛亮去攻城获得经验,并升级,升级后武力增加了,我再用工具在内存里在原有的几千个结果里面搜索新的变化后的诸葛亮武力数值,最后发现还有很多相同的数据,不过数量少了很多,这时,我在游戏里再在让诸葛亮升级,这样最后终于搜索到了一个唯一的地址,我把数值改了一下,变成了255,回去看一下,好了,现在诸葛亮天下无敌了,我就让诸葛亮去找吕布单挑,电脑在比较了双方的武力值之后,觉得差距太大,最后吕布害怕了,拒绝和诸葛亮单挑。

  改是改好了,不过我发现虽然诸葛亮武力天下无敌,但是体力是有限的,我让他冲锋陷阵,电脑是用大量的士兵来跟他车轮战,慢慢消耗他的体力,这样长久下去不是个办法,我就想,能不能把诸葛亮的体力也修改一下呢?

  我用刚才的办法,找到了诸葛亮的体力数值的内存地址,因为金山游侠五具有数值锁定的功能,我就让诸葛亮的体力值给锁定,好了,我回到游戏,让诸葛亮一个人单挑千军万马,结果只见诸葛亮身边敌军围困万千重,许多弓箭向他射去,各式操着大刀,长枪的士兵围着他攻击,可是诸葛亮的体力一点有不变,只见他身边敌军纷纷倒下,战场上尸横遍野,最后,整个战场上,只剩下诸葛亮一个人!

  根据这种办法,我依此修改了其他武将的体力,武力,智力等其他属性,最后,包括游戏里的金钱等数值,几乎游戏里所有的数据我都给改过了。我发现了一个规律,比如同样是武力数值,诸葛亮在内存中的地址比如是OXA4B70,如果你搜索刘备的武力数值的时候,如果你发现几千个数值中,有一个数值的地址是0XA4B7*的,那么这个地址肯定是刘备的武力数值的存放地址了,这时候就不用继续搜索了,直接改这个就行了。因为类似属性的数值,在内存里的位置是接近的。我搜索了其他武将的武力数值,结果证实了我的猜想。

  最后,刘备占领了所有城池,统一天下。游戏总时间,不到5个小时。

  

象牙塔神话(二十九)
上次修改了单机的三国群英传游戏,结果很快就暴机了,我又尝试过修改其他各种单机游戏,屡试不爽,后来陆续又有新的发现,一个是内存中存储的数值有时候并不是就是游戏里可以看到的数值,我在《大航海家三》里面试图修改仓库里物品的数量的时候,第一次搜索找到了好多个地址,第二次发现一个地址也没有了,一直就无法确定存放物品数量的内存地址在哪里,后来我发现,其实游戏里看到的数值和实际存放的地址之间刚好差了X倍。另外,我还学会了模糊搜索,就是第一次在内存里搜索出游戏的所有数值,接着按照数值的变大,变小还是不变来继续搜索,这种办法适用于游戏中一些属性只是一个类似于血之类的东西而没有标出实际数据的情况。

  在用游侠五修改《大航海家三》的时候,我找到了商船的水手人数的地址,我把船开到海上,一艘载着50多人的海盗船欺负我商船上只有3名水手,就直接开过来要和我的商船来甲板战,肉搏战,想夺取我的商船,结果两只船刚刚靠在一起,开始战斗的时候,我把我的商船上的人数改成了9999,而且是锁定的,这下电脑的海盗船赶紧开溜,但是只有50多人开的海盗船的速度怎么比得上我9999人驾驶的商船的速度(游戏的年代里面的船还是那种靠人力的帆船),马上就被我追上,开始甲板战,很快对方50多个海盗全部被消灭,我夺取了海盗船,把船开回母港之后,想重新出海,电脑却提示说:超载,无法开动。原来是9999个水手太多,超过船的负荷,我只好把水手改回3个,心里却有一个疑问:当初我夺取海盗船的时候,还不是9999个水手的船从照样海上开回来了,现在怎么不行了呢?我想,这就是游戏的一个BUG。

  在对很多单机游戏程序进行研究之后,我积累了很多修改游戏程序的经验,其中静态修改游戏存档文件和其他文件也尝试过。后来,我产生了一个想法:既然单机游戏可以修改,那网络游戏是不是也可以修改?我马上用迅雷到网上下载了一个网络游戏客户端,注册了一个帐号,进去游戏之后,照猫画虎的改了一下一些数值,发现游戏里面的数值根本没变。

  我明白了,原来单机游戏的数值全部储存在本地的电脑上,而网络游戏是服务器和客户端之间的交互,一些重要的数值,比如金钱,经验等是存储在服务器端的,客户端更多的时候只是显示出服务器端的数据。

  是不是网络游戏都不能修改呢?我去图书馆查了一些相关资料,发现网络游戏也是可以改的,只不过不像单机游戏那样非常容易改,专门修改网络游戏的程序,我们通常都叫做外挂。最常见的有两种:一种是木马式外挂,这是专门盗取游戏帐号的,这不是我感兴趣的,另一种是封包式外挂,封包,是客户端与服务器端交换游戏数据的一个通信数据包,客户端发送给服务器的,多是游戏者对游戏的操作等,而服务器端则负责对客户端提交的各种操作进行处理,最后把处理后的结果发送回客户端。我们比较容易做的,就是截取客户端与服务器之间通信的封包,对其进行分析,最后实现修改的目的。

  为了制作自己的封包截取工具,我开始研究HTTP通信机制以及网络编程。随着学习的深入,我发现我不懂的东西越来越多。一转眼,一个多月已经过去了。

  书包 网 。 想看书来

象牙塔神话(三十)
在制作我的外挂过程中,我的一些难点主要有Windows*API调用与钩子函数,网游封包加密技术,反汇编技术等,等我学得足够多最后作出我的第一个外挂之后,整整4个月的业余时间已经全部花在上面了。

  看着自己开发的外挂,我心里多少有点成就感,同时也感叹编程路上的每一个前进的脚步,都是那么艰难。

  兴冲冲的进入网络游戏,启动外挂,我欣喜的看到我的那个游戏角色在那里自动练级,自动加血,自动叫卖。。。。。。我开着外挂挂着游戏,发现除了练级速度比手工慢之外,简直是完美!

  这时我的QQ显示有人找我,我进去一看,是一个在游戏里认识的朋友东方不胜,他劈头就给我一句话:

  “你今天有病啊?”

  我丈二金刚摸不到头脑。

  “怎么成了个练级机器人了啊,我怎么叫你你都不回答,才隔那么几天不见,就不认识我了吗?”对方气冲冲的说。

  我说:“原来是这样啊,我还以为是什么呢?实话跟你说了吧,里面的那个角色的确不是我,当然不认识你。”

  “啊?你被盗号了,还是请人代练了啊?”东方不胜问道。

  “算请人代练吧,不过呢,是免费代练的。”我故意卖了个关子。

  “不可能吧,有这等好事?”东方不胜不太相信。

  “不信就拉倒。”我就故意不理他,看电影去了。

  大概过了5分种吧,东方不胜终于忍不住了,再次在QQ里说:“跟你认识这么久了,好兄弟,你就告诉我,到底这是怎么一回事啊?”

  “嘿嘿。”我说:“这是我开发的第一个网络游戏外挂,可以实现自动练级,自动加血,自动PK,自动叫卖。。。。。。”

  “啊??????!!!!!!”对方给我打过来这个,虽然看不见对方,我却在隔着电脑猜想对方张的大大的O型嘴巴。

  “外挂,外挂是什么啊?”

  我耐着性子给对方讲了好久,对方才明白,这位老兄的领悟力实在不刚恭维。

  “你自己开发的?”对方有点不信。

  “当然。”我说。

  “这么好的东西,就给老兄我共享一下嘛。”对方恳求我说。

  我却犯难了,这可是我4个月的心血,轻易给他,心里实在无法接受。

  我沉默了。

  “怎么不说话了,都这么熟了,借我玩玩不行吗?”对方穷追猛打:“就一会儿,行不?”

  我想了想说:“

小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架