首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

旅行青蛙 iOS版三叶草修改

旅行青蛙 IOS版修改

Unity3D型游戏修改

2018-2-8 15:00

准备工作

已砸壳的IPA安装包 注意架构!!!

(怎么砸看这里:https://www.52pojie.cn/thread-696309-1-1.html)

Hopper

Il2CppDumper

工作环境

MacOS

Windows

开始工作

修改三叶草数量

使用Hopper分析64位可执行程序发现,里面做了符号剔除,除了一个广告SDK外,并没有太多有价值的信息。被剔除符号表后,函数大部分是以sub_XXXX的形式的C函数。不要着急,查看二进制文件中的字符串信息,发现是以Unity3D引擎编写的程序,应该是使用 IL2CP 选项来编译的C代码。

PS:这里我们也可以从Android的角度想,想要知道是Unity3D的编译形式不难

因为直接分析可执行文件难度较大而以此方式编译的代码,游戏逻辑使用的字符串都保存在Data/Managed/Metadata/global-metadata.dat中,所以我们进行如下操作:

将IPA包解压开,找到文件global-metadata.dat和tabikaeru注意后者是个二进制文件,在Window里描述是文件,解压出来备用

使用 Il2CppDumper,在Window平台下,运行 Il2CppDumper.

2.1 先选择二进制可执行程序tabikaeru

2.2 然后选择global-metadata.dat

2.3 平台选择64bit, 模式选择Auto,运行结束,会生成dump.cs和script.py两个文件和一个DummyDll文件夹

PS:这里要注意下,如果你是从PP助手下载的已砸壳的IPA就要选择32bit,其他操作如上

完成上面的步骤,Unity3D的解包工作就完成了,我们开始分析头文件

打开生成的 dump.cs,这是游戏所有C#头文件信息。

先大概浏览一下,我们的目标是修改三叶草的数量,我们先尝试在里面搜索关键词 Clover 即三叶草,着重查看Set/Get字样的函数,最终我们发现在类SuperGameMaster发现如下定义:

如果是32bit就是:

从字面意思上看,getCloverPoint 就是得到三叶草数量或者叫更新比较好,它的参数又是一个整形,而所在的类名翻译过来是超级游戏管理员,这就更加确定了这个函数就是修改三叶草的关键

转到MacOS环境,在Hopper里转到地址0x1000938BC/A2F30-->这个就是getCloverPoint后面的注释地址,注意地址不固定

PS:其实这么分析也很复杂,我们还是可以从Android的软件下手,确定关键点/。

直接修改汇编代码,将该函数的返回值修改掉, int 类型的函数返回值存在 w0 里,这里直接修改w0的值然后让函数返回。

选择菜单Modify - Assembel Instruction, 先输入mov w0, #0xffff, 然后点击弹窗的Assemble and Go Next, 再输入ret

这样修改就完成了,保存:

选择菜单File - Produce New Executable, 生成新的可执行文件,然后替换原IPA中的文件就好了

最后将修改后的IPA重签名或者发布到第三方的平台就可以测试了

效果图:

成品:没有,自己动手!

--官方论坛

--推荐给朋友

公众微信号:吾爱破解论坛

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G0ZV4K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券