注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 修改器技术/补丁制作区 修改游戏技巧综合指南
查看: 8037|回复: 5
打印 上一主题 下一主题

[原创] 修改游戏技巧综合指南 [复制链接]

日游工作组贡献勋章

帖子
560
精华
1
积分
650
金钱
1520
荣誉
17
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2009-11-20 23:10:07 |只看该作者 |倒序浏览
作为一个有14年游戏修改经验的玩家,给大家确定一个观念,不需要多少专业知识,只要有一些的计算机数据基础,那么没有用内存修改工具+存档文件修改工具搞不定的游戏。

本文是写给初,中级修改者看的,如果是用断点追踪,反汇编分析的高级修改者,请忽略此文。

首先,游戏修改工具:

内存修改工具常用的有CE, FPE2001, GM等,这些都是最基本的工具,用法都简单类似。

CE(cheat engine)最为强大,可以实现多种高级断点分析以及脚本,以及直接创建可独立执行的,自定义界面的,带脚本功能的高级修改器,缺点是高级应用过于复杂。
FPE2001是老牌的修改器,看2001这数字就知道很老了,但很好用,搜索很全,效率很高。缺点没有模糊分析功能,不能创建修改器。
Game Master操作最简单,功能也很强大,可模糊分析,可创建简单的专用游戏修改器。

存档文件修改工具,我常用的就是Hex Workshop,其他也有很多类似的强大的16位文档编辑软件。在修改游戏中,需要用到最重要的功能就是文件比较和特定数值搜索。

其次,数值查找修改我就不说了,这个很简单。要提醒的就是注意数据位数,早期的DOS游戏为2位(XX); Windows多为4位(XX XX)或8位(XX XX XX XX);少部分游戏是浮点数,比如金融帝国2中的现金就是浮点数。这种情况多出现在欧美仿真的模拟金融经营管理类游戏,实际数据是精确到小数点后的,但只显示小数点前的。

本文重点,游戏修改不了怎么办?

第一种情况:找不到地址。搜索内存中某特定数值,最终返回找不到。

首先要考虑是不是搜索时数值位数错误,建议直接选择使用工具提供的从2位到双浮点类型,全面搜索。此种搜索中查找更全面,曾经有个4位的游戏,我用FPE直接搜一个4位的数据搜不到,而用了全面模式却搜到这个4位的。

其次,就必须考虑此游戏内存数据被加密了。一般来说,日本台湾大陆的游戏,喜欢全面加密内存数据和存档数据,而欧美基本上明码甚至是XML明文。
简单一点的加密就是存于内存的真实数值=显示数值(四则运算)某特定数值,这种情况用分析图形数据用的模糊分析法多试几次,很容易搞定且可以得出加密方法。
对于高级复杂的加密方式,比如通过复杂函数多次运算的,比如用时间等参考数值加密的,除了用内存断点分析外,最简单的方法就是从存档入手。此法后面说明。

第二种情况:找到了地址,改动了却无效。

1。你所找到的地址为显示地址。此地址为画面显示数据用的,真实地址另有,这个真实地址的数据可能经过加密。

可以考虑察看下内存里该数值附近的代码,有可能附近有XX XX XX XX一看就是内存指针的数值,指向真实存码地址。到该指针标定的地址记录下当前数值,回游戏稍微变动下该数值,再查看该指针地址的数值。联系下2次变动的关系和实际数值变动的关系,如果有规律可循,尝试修改下,成功则此地址为真实地址,且同时可以推测出游戏加密方式。整个游戏的所有数值加密一般都这个方式,可以方便的直接用于其他数值修改。如果您第一个找出这个方式,赶快到游侠发帖,恭喜您可以获得奖励 。最坏的情况是仍然无效,这时候要用复杂的断点跟踪,或者改为存档下手。

2。游戏为防止修改,而将同一数据存为多地址,这种情况下需要同时修改所有地址,使其保持一致,比如暗黑2使用的3-6个地址;

3。显示数据=基本数据(可能通过药水等改变)+装备等提供的附加值。这时内存所存的数值是2部分,基本值和附加值。这时候,通过搜改变的附加值或改变的基本值找到地址,注意观察,前或后便是另一部分的地址。

4。数据连续性判定。这个比较特殊很少碰到,有些游戏会设置连续累积计算。曾经碰到个经营游戏里,你赚钱,每月都有个盈利记录,你的手头上的现金数目就是游戏根据每月的累积+起始数量+其他收支来决定。由于每月的盈利地址都不一样,无法被搜索,所以此时可以从其他收入支出下手,比如搜索贷款数目改为负,来达到目的。有种特殊的情况就是,每月的盈利是连续存放的,且统计数据表能看到,这时候可以直接输入连续的数值直接找到地址。存档文件里最有可能是连续存放的,所以可以考虑存档下手。

最后,所有办法都无效的时候了,可以从存档分析入手。

此方法简单说来就是,通过使用比如Hex workshop提供的文件比较功能,比较2个差别很小的存档(比如只改变某单一数值),来确定更改的位置。然后依次修改这些数值,载入游戏,察看改变情况,直到找到地址。

相对于加密的内存,存档文件可能不加密或者跟内存的加密方式一样。只要不碰到变态的密码表或者时间加密,就都无所谓。

每个存档一般是单独的文件,大小可能变动,可能不变。这时存档前,尽量保持游戏里改变的非常少,以确保文件变动最小。
也可能是一个文件覆盖所有的存档,这情况老游戏比较多。先游戏里存个档。再找到这个档,复制一份到其他地方去,再到游戏里改变数值,存,之后比较这2个存档。这种方式存档大小肯定不变。

比较的结果,差异不会很多,非变态加密时,可能只有几处改变,都有规律可循,此时不仅能修改,还恭喜您推算到了加密方式。比如学生骑士团这个老rpg游戏,钱的变动,比较结果就2处不同,很容易就看出来第一处变动是取负运算后存盘的加密,也就是1000 存的实际上 -1000。

如果是变态加密法,也是有痕迹可循的,虽然无法直接比较出地址,但可以看到大量的重复变动,简单的比如56都变成了86,11都变成了41,差值都是30,只有几处差值多了或者少了,那么这些便是可能的地址。可以将变成86的存档的每个数值都减去30,再比较。不过,既然是变态加密法,自然不都是这么简单,需要花时间去找寻规律。

最后,最最最重要的原则就是,一旦确定了一个数值的地址,比如人物体力,那么其周围很有可能就是其他数值的地址,比如魔法,速度之类的,仔细看,多尝试修改,表错过。

最最后,如果以上都用了还搞不定,就请钻研断点指针,寄存器跟踪,反汇编分析,或者坐等高手分析吧。

OVER,希望对大家有帮助~转载请注明作者,出处

Sieg
20.11.2009

[ 本帖最后由 smokes 于 2009-11-20 16:19 编辑 ]
银河的历史又翻开了新的一页~~

使用道具 举报

帖子
11
精华
0
积分
6
金钱
114
荣誉
0
人气
0
评议
0
沙发
发表于 2011-9-4 21:10:52 |只看该作者
路過...看看...
頂一下~

使用道具 举报

帖子
3
精华
0
积分
2
金钱
54
荣誉
0
人气
0
评议
0
板凳
发表于 2011-9-18 05:34:26 |只看该作者
现在自己也想学下修改了

使用道具 举报

帖子
13
精华
0
积分
7
金钱
189
荣誉
0
人气
0
评议
0
地板
发表于 2011-9-21 01:08:52 |只看该作者
好贴子,找了好久,才找到

使用道具 举报

帖子
75
精华
0
积分
38
金钱
639
荣誉
0
人气
0
评议
0
5#
发表于 2011-10-2 18:54:48 |只看该作者
恩,正好需要,谢谢楼主,,收下了

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-10-29 14:38 , Processed in 0.312257 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到