Android逆向Unity3D——XXX快跑破解

本文首发于I春秋,未经允许,禁止转载。

感谢蛋总~

0x00 前言

说明

Unity3D是一款3D引擎,用来开发3D游戏,同样的还有Unity2D用来开发2D游戏的。咳咳,我又来啰嗦了。说白了就是说你玩的有模型的Android手游基本都是Unity3D开发的。
有开发就有破解。
所以我们走着先。

内容

1.环境介绍(无聊选择跳过)

2.贝瑞快跑——金币初始化99999

你能学到什么?

1.万军丛中取敌将首级
2.修改dll文件

3.贝瑞快跑——草莓初始化99999

你能学到什么?

1.学以致用
2.如果从coin发现的各种好东西

0x01 环境介绍

长话短说。这里没意思。

.netframwork 4.0以上。

.net relector 最好是破解的,有需要可以留言。或者戳这里,可能有,看我会不会勤快了。

剩下的就是常用的Android逆向的环境配置了。

0x02 贝瑞快跑——金币初始化99999

试玩,我就不演示了,自己玩。

first

首先反编译。

我们来看Assembly-CSharp.dll这个文件。为什么要看这个?因为这个文件就和main函数一样。

这里就是这个文件的位置。

second

把文件拖到reflector中。

然后使用搜索功能。

搜索这里选择搜索方法。

这里我们要知道什么是coin,coin就是我们的金币的意思。

搜索coin会出现很多的字符串。我们要做的就是从这么多种找到我们需要的coin。

思考:

coin可能会出现在什么地方?
coin出现的地方:
1.初始化的时候
2.游戏结束的时候获取
3.游戏商店的购买
那么初始化,肯定会有一个类。
类的特性里有一个是封装,也就是getXXX or setXXX。
还有一个很重要的地方,就是类名。

思考完了之后我们进行动手。

set,get,我们找到这里。

set是放进去,get就是拿出来。

我们再往下看看

还有一个set,get,但是这次set,get的是tatolCoin,不知道单词的翻翻字典。

tatolCoin就是总金币数目。

我们先来尝试改getCoin的值。

你说你想像改smali代码一样?不好意思,这个还真改不了。必须要从汇编下手,这也是Unity3D比其他难一点的原因了。

Third

修改的方法就是通过汇编指令来进行修改。

这里需要使用一个插件就是

我们利用这个插件来改。

思考

改什么?怎么改?

我们既然要修改金币的数量,那么我们只要让他返回具体数值,就好。

但是我们如果直接返回具体的数值,就会出现金币不会增加,一直都是99999的问题,所以我们这里可以使用Add的方法去增加金币。

我们在原来的逻辑上插入一段汇编。

首先来看看idc.i4是个什么东西。

然后选择int,选择数值,选择在之后进行添加。

然后在之后选择一个add,加法运算即可。

save保存。

end

回编译进行测试。

打开游戏之后,我居然居然。。。。玩了一把。。。感觉还可以。。。。这里修改成功了,而且可以增加金币。

0x03 贝瑞快跑——草莓修改99999

之前修改了金币,草莓也得改一改。为了熟练练习。我们来进行对草莓进行更改

first

我们之前找到了getcoin的位置。

然后根据getcoin,我们发现了getFruits。其实还有很多东西都可以改。

使用之前的方法进行修改。

这里看到我们是修改成功的。

second

测试进行回编译。

这次我就不玩了。直接看结果。

end

还有很多东西等待着发掘,比如跑步速度等等等。

你可能感兴趣的:(Android逆向-操刀天下)