安卓模拟器(Bluestacks)中国最大论坛 - 蓝手指社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: BlueStacks 应用
查看: 33934|回复: 40

[原创]浅谈手机游戏作弊修改

  [复制链接]
发表于 2013-7-24 00:30:43 | 显示全部楼层 |阅读模式
本帖最后由 ccb 于 2013-7-24 00:41 编辑

在开始一切之前,有几件事必须先说一下:
一,电脑游戏也好,手机游戏也罢,修改了,无限金钱,无限生命,玩起来倒是淋漓酣畅,但别忘了,在你得
到修改的乐趣的同时,你也失去了玩游戏的常规乐趣,那种慢慢冲级,升级时的成就感也会完全消失。
二,只有单机游戏才能修改,别妄想去修改网络游戏的数据。
三,下面提到的各种修改方式,均需要ROOT,没ROOT一切都无法进行。

接下来,依本人的经验,手机游戏的作弊大致分为三种方式:
一,使用游戏作弊的专用软件,这类软件有八门神器,GameGuardian,CIH(没错,就是CIH病毒的作者制作的
一个游戏作弊软件)等。
二,用SQLiteEditor直接修改数据库。
三,直接用RE管理器或类似的文件编辑工具来修改游戏数据文件。
当然,修改的方法方式还有好多种,上面只是我个人最常用的三种方式。这三种方式又分别各有优缺点。

第一种方式,这种方式是游戏兼容性好,几乎大多数游戏都能修改,不管它储存数据的方式如何,基本都能对
付,而且使用上也非常简单,但缺点是这些修改工具的运行环境都非常挑剔,我本人在手机上用过CIH,很好用
,但具体在BS模拟器上,上面提到的这三个工具都不能正常运行,虽然系统都是已经ROOT的了。由于在BS模拟
器上这类工具几乎都不能运行,所以本文不打算介绍这种方式,有兴趣在手机上运行的朋友,请参照网上其他
的教程,反正用过金山游侠的人都很容易就能上手。

第二种方式,如果你对数据库有一定的认识(初级的就行,完全不懂也没关系)的话,这种方式应该很不错,
但有个缺点就是,游戏必须是用数据库保存数据的,但目前来看,至少超过一半以上的游戏并不是规规矩矩地
用数据库来保存数据的,所以对于那些非常规的游戏,这种方法就没用了。

第三种方式,这种方式是除了上面第一种方式之外,通用性最好的了,现在有不少游戏是用XML或XML+数据库来
保存数据的,只要你找得到它保存数据的那个XML,并且看得懂里面各个TAG的用途的话,修改起来其实是非常
容易的。

下面就由浅入深地介绍一些相关的知识并且举几个实例来说明大致的修改过程,但世界上游戏各类那么多,有
时候同一游戏的不同版本修改的情况都不一样,所以当然肯定不可能说得很全面,只是希望本文起到个抛砖引
玉的作用,带大家入门,然后大家再自己深造。由于本人比较懒,并且对自己的文字表达能力比较有自信,所
以本文就不再附带图片,没有图就看不懂只会看图识字的人请绕过。

要修改游戏的数据,首先你得知道游戏的数据放在哪里。在安卓系统上,一般来说,软件和游戏生成的数据是
放在:
/data/data/软件的类名/
这个位置里面,如果是已经ROOT的系统,用RE管理器或其他文件管理器就能浏览这些文件夹。但没有ROOT的系
统,进入/data之后是看不到/data/data这个文件夹的,所以上面说了各种方式都需要以ROOT为前提。
在每个以软件的类名为名称的文件夹里面,你还可以看到其他的几个文件夹。但这里我们需要关心的只有这几
个:
Databases(数据库)
Files(普通文件)
Shared_prefs(主要存放XML)

下面以捕鱼达人为例,捕鱼达人的类名是org.cocos2dx.FishGame,根据上面所说的,那么它的数据文件就放在

/data/data/org.cocos2dx.FishGame/
这个文件夹里面。至于类名如何获得?这个有好多种方法,例如,看下载回来的APK,有些APK的文件名本身就
有它的类名。还有可以用WINRAR打开APK,查看里面的AndroidManifest.xml,在里面找,或者用RE管理器,查
看/data/app(如果是系统自带的软件或游戏,则是/system/app),找到相应的图标,就能看到它的类名了。
对于我们使用BS的人来说,还有一个方便的方法,就是在:C:\Documents and Settings\All
Users\Application Data\BlueStacks\UserData\Library\Icons(这是XP上的路径,使用WIN7,WIN8,WIN9,
WIN10的人自己替换),在这里找你要找那个游戏的图标,找到了看文件名就能看到类名。

找到类名之后,建议大家用RE管理器先浏览一下游戏的数据文件夹,看看里面都有哪些文件。先对游戏的文件
有一个了解,然后我们再根据具体的情况来尝试不同的修改方法。比如说,先看看databases文件夹,看里面都
有哪些数据库,需要说明一下,几乎所有的软件都有webview.db和webviewCache.db这两个数据库,这些都不用
看,肯定和游戏数据无关的,有些还会有google_analytics.db,这些也和游戏数据没关系的,都可以忽略。然
后再浏览一下shared_prefs里面,一般都是些XML,至于要判断到底是哪个文件在保存游戏数据,有个简单的方
法就是,你玩一会儿游戏,消耗或增加一些金币或经验值,之后用RE管理器进去看,看看文件修改时间是你刚
才退出游戏的时间的,就很大可能是它在保存游戏数据,那些好几天来都没改动过的一般可以忽略了。

好了,下面准备通过《捕鱼达人》,《捕鱼海底捞》,《捕鱼日记》这三个游戏为例,来说明几种不同的修改
方法,在我们开始动手之前,你还要准备一些用到的工具,其实就只需要用到三个工具:
1,SQLiteEditor
2,RE管理器
3,HexEditor
前面两个,各大手机软件下载网站都很容易找到,我就不提供了,第三个是十六进制编辑器,由于在各软件下
载站找到的都不好用,我当时也是花了几天才找到一个好用的十六进制编辑器,已经忘了在哪下载的了,我后
面会提供下载。

还有一点要注意的就是,为了避免游戏仍然在后台运行对我们的修改造成干扰,在修改前先把后台的游戏结束
掉,方法是设置-应用程序-正在运行的服务,如果有看到你将要修改的游戏,把它结束掉,然后再开始修改


下面就是实战编

hexeditor126.rar (147.77 KB, 下载次数: 263)
 楼主| 发表于 2013-7-24 00:31:44 | 显示全部楼层
一,《捕鱼达人》修改

游戏数据所在文件夹:
/data/data/org.cocos2dx.FishGame

先运行SQLiteEditor,运行之后,它会扫描本地已经安装的所有软件,然后显示为一个列表,你在表中点击相
应的图标就能浏览该软件的数据库了。在这里我们找到列表中的捕鱼达人的图标,点击之后浏览,没找到有用
的数据库,所以第二种修改方式暂时来说没用,看来我们得尝试第三种方式了。

运行RE管理器,浏览到上面所说的游戏数据所在文件夹(小技巧:经常要访问的位置,可以在RE管理器里面添
加为书签,这样下次就不用再浏览,直接书签打开),进入shared_prefs文件夹。根据上面说的,不难找出游
戏数据存放的文件。在这里,我初步判断就是UserDefaultsPreference.xml这个文件。在RE里面打开来看,是
以xml格式存放的一些数值,看来初步的判断没有错。这个游戏我最想修改的数值就是金币,要是有无限金币了
,玩起来可就爽了。于是我在这个文件里面找存放金币的TAG,发现在文件的尾部,有
<PlayerMoney>399</PlayerMoney>,刚才我在游戏里面的金币就是399个,看来是这个位置没错,
不过旁边的符号怪怪的,但根据我的HTML知识,这个是经过编码的,实际上&lt;就是<号,而&gt;就是>号,于
是解码之后就是<PlayerMoney>199</PlayerMoney>,看起来没错,由于刚才只是以文本方式打开来浏览,所以
还不能修改,于是我关了它,再在RE管理器里面长按,在弹出菜单上选择在文本编辑器里面打开,再重新找到
那个位置,把399改为999999,对了,修改完了别忘了点菜单键,保存并退出。这样再退出RE管理器,试运行捕
鱼达人。

经过一阵等待,进入游戏了,但结果让我失望,游戏画面里面,金钱那里,显示的是200,就是新安装时进入的
默认数字。我确信这个地方是记录金钱的没错,看来应该是游戏有校验,如果发现被修改,会把金钱的数值改
为默认的200个。其实这里应该是游戏把另一个xml经过编码之后,编码为一个字符串之后保存在这个xml里面,
要研究它的校验机制那太麻烦了,犯不着为了一个游戏去花太多时间。

不过我们可以想想别的办法,愚公移山里面的愚公,确实并不聪明,他屋前有山,但屋后没有呀,他只要开个
后门,一家子就可以出去旅游了,还移山干吗?呵呵。我们遇到困难的时候也要懂得绕道。既然金钱修改失败
了,那我们还是来试试修改别的东西吧。于是经过我三天三夜的研究,发现在上述这个xml里面,除了尾部的经
过编码的超长字串之外,前面部分都是常规的XML的TAG,基本上一些存放数据的TAG都是类似这样的方式的:
<int name="LaserNum" value="5" />,Laser?这不就是激光吗?刚才我游戏里面有5个激光啊。于是我把这个
改了一下,把5改为9999。当然还是要记得保存退出,再退出RE管理器,回到桌面,再运行捕鱼达人,嘿嘿,这
次,我有了9999个激光了,哈哈,修改成功了。

然后再经过一阵研究分析,发现name里面有带Num的都是游戏里面的数值,都可以修改,主要有这几个:
LaserNum 激光
KToxicFogShootNum 迷魂弹
FirecrackerNum ??
StrengThenNum  强化弹
GemAllNum  宝石
只要把强化弹改为99999999,然后全部用强化弹来打,你还怕没金钱吗?呵呵。

二,《捕鱼海底捞》修改

游戏数据所有文件夹:
/data/data/com.sg.android.fish

这个游戏,早在几年前我用android-x86在电脑上玩的时候就修改过,当时在电脑上运行android-x86,兼容性
很差,很多游戏都不能玩,捕鱼海底捞是能玩的少数几个游戏之一。当时这游戏是完全用XML来保存数据的,数
据是保存在SHARE_FISH_TAG.xml这个文件里,但当时也是修改金钱不成功,后来的修改方法是修改幸运时间,
就是点海星之后会有60秒的幸运时间,捕鱼成功率增加,我把60秒改为9999999秒,这样就一直是在幸运时间里
面。不过后来这游戏升级后,又增加了用数据库来保存数据,但同时XML也仍然保存着数据,真搞不懂。而且,
在最新版本中,有2倍炮,5倍炮,10倍炮,但如果是使用了海星,倍率就被锁定为1倍了,所以修改幸运时间现
在是没什么意义了。

后来的版本,我就使用修改数据库的方式来修改。运行SQLiteEditor,找到捕鱼之海底捞,打开了之后,显示
找到一个数据库,数据库名是fish,点击打开,里面可以看到八个表。先看看这个:fish_user_information,
一看这英文表名就知道应该是用户的信息。再打开这个表看看,里面各字段分别是:id level exp yulei
lunpan haixing lightning bak1 bak2 bak3,呵呵,好几个都是拼音,拼音夹杂着英语(这素质,唉),id
level lightning是英语,yulei lunpan haixing这几个是拼音,看到之后,就知道怎么改了吧,长按,然后在
弹出菜单选择“编辑记录”,然后各种炸弹就自己改吧,比如说鱼雷你想要999999就改吧,改完之后点保存就
OK了。

新版本还有宠物,这个也很简单,回到刚进入fish数据库那个画面,看看另一个表:fish_user_pet,看这个表
名就知道是宠物的表。如果你在游戏里面还一个宠物都没解锁,那这个表里面应该是没有任何记录的。不过也
不怕,因为很容易就能让你拥有五只满十级的宠物了。长按之后在弹出菜单上选择“新建记录”,然后分别填
入:
id:1
level:10
exp:1000
type:1
保存,这样你就拥有第一只宠物了,现在这个表里面已经有一条记录了。再在这条记录上长按,在弹出菜单上
选择“复制记录”,然后把id和type都改为2,再复制,同样把id和type改为3,依此类推,一共复制5条记录,
并且id和type分别是从1到5。这样你再进游戏,你就拥有了所有的五只宠物了。

还有,新版本有个炸全屏的原子炮,但在数据库里面没有,却仍然在SHARE_FISH_TAG.xml这个文件里面,<int
name="SHARE_FISH_PROP_YUANZIPAO" value="99999" />,找到这行并且把value改为你想要的数值,这样,游
戏里面没钱了,原子炮拿出来炸几下就是了,呵呵。

三,《捕鱼日记》修改

游戏数据所在文件夹:
/data/data/com.droidhen.fish

这个游戏的数据存放有点另类,既不在shared_prefs里面用xml存放,也不放在databases的数据库里,它的数
据是放在files里面,用二进制格式存放的。所以这个游戏的修改就要用到HexEditor了。
/data/data/com.droidhen.fish/files/coins.data这个是存放玩家的金币和贝壳等数据的,运行HexEditor,
选项键,open file,然后浏览到这个文件并打开,比如说你现在在游戏里的金钱是500,打开开始-程序-附
件-计算器,在计算器的查看菜单里面选科学型,然后输入500,再点左上的十六进制,会显示1f4,就是说十
进制500转换为十六进制之后是1f4,再看看hexEditor里面,第15和第16个字节那里分别就是01 f4,你把15和
16字节分别改为ff,之后仍然是点选项键,Save file,再进游戏,你就有65535个金币了,还嫌不够?把第14
个字节也改改,不过别太贪心了,反正够用就行了,呵呵。还有,第17-20个字节那里是贝壳的数值。

另外一个文件:/data/data/com.droidhen.fish/files/store.data是存放物品的。关键的三个位置:最后一个
字节是放闪电道具的,倒数第五个字节是面包道具的,倒数第九个字节是鱼雷道具的数量。把这三个位置在
HexEditor中改为ff试试,改完记得按选项-Save file保存退出。

点评

http://www.zuoweixin.com/ 朋友圈营销  发表于 2015-8-27 14:03
楼主,你说的不对。 修改游戏是为了少走玩路,譬如解迷类游戏 曾经反汇编 圣眼之翼,把游戏人数改多了,或者把敌人改厉害了,或弄成以少胜多...   发表于 2013-11-6 17:05
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2013-7-24 00:52:14 | 显示全部楼层
上个修改的效果图让大家看看

FishGameSnapshot.jpg
发表于 2013-7-24 07:07:07 | 显示全部楼层
其实 只要玩过单机游戏 用过金山游侠 就明白原理都是一样
在这是的手机中要有root权限才行  
发表于 2013-7-24 18:20:57 | 显示全部楼层
楼主威武啊!这么详细的教程,多写点这类的文章啊;菜鸟膜拜中!
 楼主| 发表于 2013-7-24 21:13:40 | 显示全部楼层
诺贝尔下届得主 发表于 2013-7-24 18:20
楼主威武啊!这么详细的教程,多写点这类的文章啊;菜鸟膜拜中!

谢谢你的支持。但我觉得如果你们照着这个教程开始动手,然后在自己做的过程发现更多的问题,在这里提出来大家一起研究讨论,会更有意义。
发表于 2013-7-25 16:29:58 | 显示全部楼层
“SQLiteEditor”和那个“SQLite编辑器”是同一个东西吗?就是可以装在安卓系统上的那个?
我查了一下,貌似有好多版本,能不能推荐一个最得心应手的版本,那样大家在按你说的方法试验的时候出现的问题也更容易分析一点?
发表于 2013-7-25 21:33:59 | 显示全部楼层
ccb 发表于 2013-7-24 21:13
谢谢你的支持。但我觉得如果你们照着这个教程开始动手,然后在自己做的过程发现更多的问题,在这里提出来 ...

是啊!很有道理!
 楼主| 发表于 2013-7-25 21:53:46 | 显示全部楼层
本帖最后由 ccb 于 2013-7-25 22:01 编辑
niro213 发表于 2013-7-25 16:29
“SQLiteEditor”和那个“SQLite编辑器”是同一个东西吗?就是可以装在安卓系统上的那个?
我查了一下,貌 ...


是的,怪我疏忽,忘了说,有些网站是叫SQLite编辑器,特别是汉化版都是叫后面这个名字。

我手机上用的是SQLite Editor 1.5,英文版的,因为英语对我没什么障碍,所以用着也没什么问题。这个也是我第一次用这个工具。

后来我在BS模拟器上装的是新版本并且是汉化的,SQLite 编辑器 2.01版。反正两个版本觉得都好用,新版本功能多一些,并且英语不好的朋友当然是选择使用汉化版方便些。这个汉化版我是在木蚂蚁下载的,地址如下:http://www.mumayi.com/android-104488.html
发表于 2013-7-25 22:50:00 | 显示全部楼层
谢谢!我刚去下过了!确实汉化版!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|蓝手指社区 ( 沪ICP备12018715号

GMT+8, 2017-1-24 19:13

快速回复 返回顶部 返回列表