Android逆向之CrakeMe系列------02

本文介绍如何使用逆向工程工具如AndroidKiller、Apktool和dnSpy,针对基于Unity3D的CrakeMe02游戏,修改其金币属性实现无限购买。文章详细展示了从解压APK到修改DLL文件,最终成功在游戏中实现金币最大化的全过程。
摘要由CSDN通过智能技术生成

APK概述:
*
CrakeMe02是一个放置类型的单机手机游戏。

特此声明 :
*
本文只是用来学习使用,禁止用于商业或其他用途,违者后果自负!
*
游戏主界面:
在这里插入图片描述
商店:
在这里插入图片描述

分析工具

Apktool 2.4.1

Android Killer V1.3.1.0

dnSpy v6.1.2

目的:

让金币变成最大值,可以随意买买买~~~

分析过程:
1.首先还是老套路,将apk拖入AndroidKiller中
在这里插入图片描述
咦,这个游戏的界面怎么不一样。只有一个Activity,并且由分析结果得出这个游戏是基于Unity3D的
*
2.这里要说明下:

Unity3D 安卓游戏的主逻辑都在 asserts/bin/data/Managed/Assembly-CSharp.dll中,所以我们要对dll文件进行逆向
*
库文件分两种

库的定义— 就是一种可执行代码的二进制形式,可以被操作系统载入内存执行
静态链接库 — 以 .a / .so结尾 ,在编译时把代码加入目标程序 *
动态链接库 — 以 .dll 结尾,在程序运行时链接的

3.用Apktool 解压 目标apk,找到目标dll文件
apktool d xxx.apk (解包)
在这里插入图片描述
找到文件过后,我们用dnSpy打开dll文件,首先把dll文件复制出来,放在单独的文件中,有个备份
在这里插入图片描述

打开dll文件,这里才是Unity3D游戏中大部分主逻辑存放位置,接下来就是对dll文件进行修改。
*
4.下面祭出这张神图,一般来说游戏中的属性都以差不多方式命名(毕竟游戏是要维护的,命名肯定要遵守规则的,除非混淆看不到了),然后我们想要修改什么属性,直接全局搜索对应的英文
在这里插入图片描述
5.这里作者提倡此类游戏能不修改就不修改,要修改顶多只修改个金钱就行了,改攻击力其他的就别想了,要不然游戏就没有意思了。好了言归正传,
先搜索 gold 试试
在这里插入图片描述
额。好像没有相关的类,都是window之类的
*
那我们再搜索 coin试试
在这里插入图片描述
看来有效果,从字面意思来看,应该是用户信息之类的类,那我们点击第一个进去,在这个类中全局搜索coin
可以看到这个用户信息类是一个单例类,找到一处赋值函数
在这里插入图片描述
这段逻辑是,如果没有掉落金币,就一直是0,只要掉落金币后,就会保持99999999
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.替换后dll文件,我们只需要重新打包成apk,并且用Andr
oidKiller来签名,让我们看看成果。
在这里插入图片描述
是不是什么地方搞错了?为什么金币没涨? 不用担心,上面我们已经说过修改代码的这段逻辑,只有杀死敌人一次后,金币才能变化,不然金币一直会返回0. 我们骚等片刻,等杀死一次敌人后再看看。 当当当~~~
在这里插入图片描述
赶紧买买买~~~

CrakeMe系列—02下载地址
提取码:8bxs

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值