APK概述
CrakeMe03是一个放置休闲类型的养成游戏。 XXX水族馆基于Unity3D。

特此声明:本文只是用来学习使用,禁止用于商业或其他用途,违者后果自负!

这里分析两个版本的XXX水族馆。一个是历史版本 2016年的XXX水族馆。一个是新版本 1.18.3圣诞节版本

游戏主界面:
Android之CrakeMe系列------03

我们的目的是修改钻石和珍珠数量,这样才能愉快的玩耍!下面开始分析:

分析工具:
  • Apktool 2.4.1
  • Android Killer v1.3.1.0
  • dnSpy v6.1.2
  • IDAPro 6.8

2016历史版本

1.首先解包,把asserts/bin/data/Managed/Assembly-CSharp.dll 文件拖入 dnSpy中。
Android之CrakeMe系列------03

2.然后按照上节博客的那个属性图片对应的属性去 全局搜索。 这里我们就搜索 Gem,或者diamond试试。经过一番搜索,我们定位到了
HeartGenControl这个类,
Android之CrakeMe系列------03

initData这个函数,一般来说就是初始化游戏数据,给对应的字段赋值。

3.既然是在这里赋值,我们尝试下能不能直接赋值,
Android之CrakeMe系列------03
修改成功后记得保存!!!

4.下面我们来打包,签名,来看看结果吧。
Android之CrakeMe系列------03

好了修改成功,其他的属性应该也可以照葫芦画瓢修改。

1.18.3 圣诞节版本新版

1.解包,把对应的dll文件拉入,查看对应类中逻辑
Android之CrakeMe系列------03

逻辑还是差不多,可能加了其他校验。我们再用之前的方法试试看看能不能成功
Android之CrakeMe系列------03

果然出错了,直接修改赋值不成功了。应该是在其他地方加了校验。

  1. 那我们换个思路,跟进去GetString(“TotalGems”)看下逻辑
    Android之CrakeMe系列------03

3.我们可以看到把 TotalGems当做key传入,然后解密后返回对应的字符串。那么我们可以这样做,在逻辑中写死返回的字符串,比如
Android之CrakeMe系列------03

4.最后,保存,打包,签名,我们来看下
Android之CrakeMe系列------03

总结: 在这种没有加密的dll文件中,修改思路就是搜索固定属性的名称,然后看代码逻辑再修改,多试试就可以。当然这只是简单的没有加密的Unity**,比较简单啦。

相关文章: