我记得那会儿,大概是几年前,我玩一个单机游戏,那种RPG类的。玩到后面,刷钱那叫一个累,装备死贵死贵的,打半天才能买一件。玩着玩着就觉得没劲儿了,总不能一直这么肝。网上找攻略,有人提到了一个叫Cheat Engine的东西,说能改游戏数据。我当时想,真的假的?抱着试试看的心态,就踏上了这条“不归路”。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
第一次接触:下载、安装,手心都冒汗了
我这人好奇心重,但对这种改游戏的东西还是有点心虚。去它官网找了半天,找到了下载链接。那会儿网络还不是特别快,下个东西也要等一会儿。下载完,点开安装包,一路“下一步”、“下一步”,也没细看那些条款。安装好后,桌面就多了一个小图标,看起来挺不起眼的。
我鼠标停在图标上,有点犹豫。万一把电脑弄坏了咋办?或者游戏玩不了了?但想想,反正就是个单机游戏,大不了重玩。一咬牙,双击打开了它。
小试牛刀:改金币,从0到上亿!
软件界面弹出来,密密麻麻的英文,我一个头两个大。不过我早有准备,网上看了一些教程的截图,知道大概要点哪里。得把这个程序“挂”到游戏上。
-
第一步,选对游戏程序:我找到界面左上角那个像电脑一样的小图标,点了一下,跳出来一个进程列表。我当时运行着游戏,所以很快就找到游戏的名字了。选中,然后点“打开”。这一步感觉就像是把Cheat Engine的眼睛和手伸进了游戏的内存里。
-
第二步,找到金币数量:我回到游戏里,看看自己有多少金币。比如显示是“1500”。然后回到Cheat Engine,在那个“Value”(值)的输入框里填上“1500”,然后点“First Scan”(首次扫描)。我当时心里想,这能找到吗?屏幕上唰唰唰地跳出一大堆地址,看得我眼花缭乱。
-
第三步,变动数值再找:我回到游戏里,去商店随便买了个最便宜的东西,花掉一点金币。现在金币变成了“1450”。我赶紧回到Cheat Engine,把“Value”改成“1450”,这回点“Next Scan”(再次扫描)。奇迹发生了!这回屏幕上的地址少了很多,而且往往就剩下那么几个甚至一个。
-
第四步,锁定并修改:我把剩下的那几个地址都选中,然后点那个红色箭头的按钮,把它们加到下面的列表里。然后,在列表里右键点选中的地址,选择“Change value of selected addresses”(修改选中地址的值)。我把“1450”改成了“999999999”。改完之后,我小心翼翼地回到游戏里。我的天!金币真的变成了“999999999”!那一瞬间,我兴奋得差点跳起来!
这下可买装备再也不用愁了。随便买,使劲买,简直是人生赢家。
遇到瓶颈:地址怎么老变?
玩了一阵子,关掉游戏,第二天再打开,发现金币又变回原来的“1500”了。我当时有点懵,不是改了吗?怎么又没了?我又重复了一遍上面的操作,金币确实又改过来了,但每次退出游戏就失效。这可把我给愁坏了。
我又去网上找资料,这才知道,原来游戏里的数据地址不是固定死的,每次游戏启动,它可能都会变来变去。这就像一个箱子,虽然里面的东西没变,但箱子的位置变了。这时候就得去找那个“指针”(Pointer)。
-
找指针的尝试:找到金币的地址后,我没急着改,而是右键那个地址,选“Find out what writes to this address”(找出是什么写入这个地址)。然后回到游戏里,让金币数值变动一下,比如买个东西。Cheat Engine就会显示一两条指令,说哪个代码在修改这个地址。然后我选那条指令,点“Show disassembler”(显示反汇编)。
-
找到基址和偏移:在反汇编界面,我发现了一些像“mov [esi+XX], eax”这样的代码。其中“esi”或者“ebp”这些就是寄存器,它们里面的值通常就是基址。而“XX”就是偏移量。我当时脑子有点转不过弯来,但跟着教程一步步操作,大概就是把那个基址记下来,然后用“Pointer Scan”(指针扫描)去找它。
这一步操作比直接改值复杂多了,但一旦成功,找到一个稳定的指针,那么下次重启游戏,金币也能保持住改动后的数值了。我当时真是费了好大的劲才搞明白这个指针的概念,不过搞明白之后,感觉自己的技术又上了一层楼。
我的心得:不只是作弊,更是学习
从一开始的摸不着头脑,到后来能熟练地找地址、改数值,甚至尝试找指针,我觉得这不仅仅是“作弊”那么简单。它让我对电脑的内存、程序的运行方式有了一个粗浅的认识。虽然我不是专业的程序员,但通过这个工具,我好像也能窥探到一点点游戏内部的秘密。
后来我也尝试过用它来理解一些游戏机制,比如某个技能伤害的计算方式,或者某个buff的持续时间。虽然多数时候只是为了更轻松地玩游戏,但这个过程确实挺有意思的。我看到一些游戏里的数据,脑子里总会浮现出它们在内存里跳动的样子。这玩意儿,真有意思。