破解旅行青蛙无限三叶草方法及apk

0x01 前言

原版以及破解版(以及工具)下载地址:
链接:https://pan.baidu.com/s/1mja3DkW 密码:dotm

0x02 修改数据

Android Killer相关操作这里不再赘述,反编译后我们发现这是Unity3D游戏,Unity3D游戏的脚本文件都存放在Assembly-CSharp.dll或Assembly-CSharp-firstpass.dll文件中,很显然,旅行青蛙的脚本文件位于Assembly-CSharp.dll,我们使用Dnspy进行分析看看。

下载app用解压工具打开,需要分析的文件就是就是Assembly-CSharp.dll。
这里写图片描述
首先修改一下抽奖券的数量。安装游戏后,找到抽奖的地方。抽奖的时候提示券不足。
这里写图片描述
使用dnSpy打开Assembly-CSharp.dll文件,然后搜索字符串”足”,可以发现有两个,打开后发现是第一个。
由此可以猜测TicketStock代表抽奖券库存,点击TicketStock。
这里写图片描述
ticket表示抽奖券数量,点击ticket。
这里写图片描述

这里写图片描述
当页查找ticket,发现有一个initialize方法进行初始化。我们将此处的数量改为9999.右击编辑IL指令。找到ticket变量后,将ldc.i4.0改为ldc.i4,然后将数值改为9999.
这里写图片描述

确定后,发现ticket数值已经改变。
这里写图片描述
保存后并替换apk中原来的Assembly-CSharp.dll文件。

打开抽奖界面发现数量已经改变为9999。

这样虽然达到了修改抽奖券的效果,但数量再大,总会被抽完的。那就换种方法,比如说抽奖的时候增加奖券,或者奖券一直不变。这里采用奖券数量固定的方法,使其不会变动。

if (SuperGameMaster.TicketStock() < 5)
{
ConfilmPanel confilm = this.ConfilmUI.GetComponent();
confilm.OpenPanel(“ふくびき券が足りません”);
confilm.ResetOnClick_Screen();
confilm.SetOnClick_Screen(delegate
{
confilm.ClosePanel();
});
return;
}
已知抽奖的时候奖券是从SuperGameMaster.TicketStock()获取的,找到该方法。令其返回值为固定的数值。
这里写图片描述
右键编辑IL指令。

将其值修改为9999.
这里写图片描述
这里写图片描述
然后替换原文件。

此时无论抽多少次,奖券都不再变化。
另一个就是修改三叶草的数量了。三叶草是该游戏中流行的货币,买东西都是需要该物品。同理找到CloverPointStock()方法。
这里写图片描述
将其返回值修改为9999.之后就可以随便买买买了,三叶草的数量也不会发生变化了。
这里写图片描述

0x03 汉化

然后就是进行汉化了。汉化的方法和上面的类似。(用Android killer也行)首先搜索需要修改的文字。例如给小青蛙起名字的时候。直接进行字符串搜索。

然后修改为对应的中文就行了。当然这种修改方法比较慢,还有另外一种,直接将他人汉化过的dll文件复制进来,可以快速达到汉化的目的,也没有广告的烦恼了。

0x04 总结

这个游戏修改起来比较简单,首先判断为该游戏为Unity3d。然后使用dnSpy来对Assembly-CSharp.dll文件进行修改。根据特定的字符串找到需要修改的位置,修改后进行打包签名后即可。

猜你喜欢

转载自blog.csdn.net/github_37216944/article/details/79180836