好友
阅读权限10
听众
最后登录1970-1-1
|
我已经蓝屏
发表于 2020-12-4 08:49
本帖最后由 我已经蓝屏 于 2020-12-4 09:03 编辑
前言
本文为教程,如果只想要安装包请来这里
第一步:下载游戏
第二步:下载工具
第三步:解除广告
针对这个游戏解除广告非常方便,代{过}{滤}理商已经给我们写好了开关,我们只要改几个变量就行
- 打开 AndroidKiller,并将 Java 路径配置好,这个我就不写了,不会的可以在论坛里找找
AndroidKiller打开
- 点击界面左上角的打开,然后打开游戏,程序会自动对其解包和解析,出现对话框就都选
是 就行,过一会就会到下图的地方。
AndroidKiller解析
- 咱先点击程序的入口,然后点击编辑器中间那个查看源码的按钮看看程序入口的源码
AndroidKiller查看源码
- 在源码中遨游~,向下翻找,找到类似关闭广告所在处
AndroidKiller源码寻找
-
最小化源码,在 Smali 文件中搜索这个变量
AndroidKiller搜索变量
如上图所示,搜索结果有 5 个
-
这个是声明静态变量的语句
.field public static useAD:Z
-
这个是我们需要的代码,作用是写入静态变量
sput-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->useAD:Z
-
这个是读取静态变量的语句
sget-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->useAD:Z
-
下面两个都是不相关的东西
-
下面我们着重来看看第二条写入静态变量的代码
sput-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->useAD:Z
# sput-boolean vx, 字段ID
# 描述:将vx寄存器中的值复制到指定的Bool变量中
-
根据描述,我们得知这行代码是将 v2 寄存器中的值赋给 useAD 变量中
我们再来找找 v2 寄存器里的值
回到 Smali 文件,向上寻找,找到.prologue ,在.prologue 下方有 v1 和 v2 的定义
.prologue
# 方法开始
const/4 v2, 0x1
const/4 v1, 0x0
# const/4 vx, lit4
# 描述:存入4位常量到vx寄存器
根据注释和源码,我们得知了 v1 是 False,v2 是 True
现在我们就可以去改那三个变量了
-
依次修改三个变量
AndroidKiller修改Smail代码
源代码
sput-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->useAD:Z
sput-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->bannerONOFF:Z
sput-boolean v2, Lkairogame/cn/android/main/UnityPlayerActivity;->splashONOFF:Z
修改后代码
sput-boolean v1, Lkairogame/cn/android/main/UnityPlayerActivity;->useAD:Z
sput-boolean v1, Lkairogame/cn/android/main/UnityPlayerActivity;->bannerONOFF:Z
sput-boolean v1, Lkairogame/cn/android/main/UnityPlayerActivity;->splashONOFF:Z
随后 Ctrl+S 保存
- 我们现在修改好代码了,下一步来编译回 apk 包
点击程序上方菜单栏的Android 栏目,点第一个编译 即可
AndroidKiller编译输出
打包好的文件在工具下方的日志输出 中,可以自行打开
- 现在我们就成功改好并重新打包好游戏了,接下来可以去安装一下试试看,是不是已经没有广告了
:)
第四步:清除敏感权限
紧接第三步的第 2 项
-
点击工程信息 旁边的工程管理器
AndroidKiller工程管理器
-
点击左边目录栏 的AndroidManifest.xml 文件
AndroidManifest
-
在右边的编辑栏中找到特殊权限并删除
AndroidKiller删除权限
-
(特)权限解析
# 访问网络,运行程序访问网络,因为本游戏用不到网络,所以想删除的话也可以
android.permission.INTERNET
# 查看网络状态,比如是否连接到网络,或者是否正在使用蜂窝网之类的,也可以删
android.permission.ACCESS_NETWORK_STATE
# 查看WiFi状态,允许了程序能够拿到SSID,可以删
android.permission.ACCESS_WIFI_STATE
# 读取手机状态和身份,运行了程序可以拿到手机号和IMEI、IMSI,同时具备监听电话能力,获取呼入呼出通话中的状态,建议删除
android.permission.READ_PHONE_STATE
# 获取大概位置,通过蜂窝基站获取手机的大概位置,建议删除
android.permission.ACCESS_COARSE_LOCATION
# 获取外部存储权限,建议保留
android.permission.WRITE_EXTERNAL_STORAGE
# 允许程序振动,建议保留
android.permission.VIBRATE
-
编译然后测试即可,详细可以查看上一章节的第 7 条目
第五步:修改硬币
紧接第四步的第 3 项
- 右击
assets\bin\Data\Managed\Assembly-CSharp.dll 文件,选择打开方式->打开文件路径
AndroidKiller打开Dll目录
- 打开
dnspy 并用他打开Assembly-CSharp.dll 文件
dnspy打开Dll
- 由于我们要修改的是加硬币,所以我们搜索
coin (搜索的快捷键是 Ctrl+Shift+K)
dnspy搜索coin
- 向下翻,我们能翻到一个叫
AddCoin ,命名空间是main.AppData 的方法,双击进去看看
dnspyAddCoin
- 看到源码了,可以从 Clamp 看出,这应该就是增加硬币的地方了
Clamp 是一个限制数字大小的参数,应该是用这个参数来控制硬币不会低于 0 且不会高于 9999 个
dnspyAddCoinCode
- 下面我们开始修改,在方法内右键,选择编辑方法
dnspyAddCoinModify
- 将 Clamp 函数的第二个值改为随便一个大数字,这样你的硬币就不会低于这个数,然后点击右下角的编译
dnspyAddCoinModified
- 接下来我们保存这个模块,按 Ctrl+Shift+S,或者
文件 菜单里选择保存,然后点确定即可
dnspySave
- 回到 AndroidKiller,重新编译即可,如需查看如可编译可以参考第三步的第七条。
这样就修改好啦
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|