吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11334|回复: 58
上一主题 下一主题
收起左侧

[Android 原创] 【开罗游戏】闪耀滑雪场物语 去广告+修改金币+修改代币 下载+教程

  [复制链接]
跳转到指定楼层
楼主
我已经蓝屏 发表于 2021-7-15 16:03 回帖奖励
本帖最后由 我已经蓝屏 于 2021-7-17 11:06 编辑

开罗的游戏最近广告也不少了
不过人家做游戏也不容易
所以大家能支持的还是支持下
所以本篇仅供交流,成品请到博客里找

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
由于写的是复现过程,所以可能会比较啰嗦,请谅解

准备

  • AndroidKiller(或别的用的来的拆包打包工具)

  • dnspy(Unity制作,需要解IL)

  • jadx(看dex用)

  • 手机或安卓模拟器(方便调试)

修改权限

  1. 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
  2. 下图是权限表,那些粉色的条目都是隐私条目,可以删除

    删除方法:先点击工程管理器,在结构的最后几项里有个叫AndroidManifest.xml的文件,双击编辑。找uses-permission元素,属性名为那些粉色的条目,将其删除即可
  3. 点左上角的编译测试一下
  4. 如果编译的时候遇到No resource identifier found for attribute 'compileSdkVersion' in package 'android',可以在AndroidManifest.xml中,把android:compileSdkVersionandroid:compileSdkVersionCodename这两个属性删除即可
  5. 发现会弹出toast,还会跳出提示,接下来得改源码了
  6. 打开jadx,左上角打开文件,选择程序的dex(位置在程序根目录\projects\包名\ProjectSrc
  7. 打开入口的源代码,入口在工程信息处可以看到
  8. 可以看出,程序强制需要手机状态和写入存储,我们只需要把都手机状态改掉就行了
  9. 回到AndroidKiller,点击工程信息里的入口可以跳到对应的文件,找到所有的READ_PHONE_STATE将他替换成WRITE_EXTERNAL_STORAGE即可,现在把toast改好了,下面来改弹框
  10. 在jadx中,按下Ctrl+Shift+F,搜索弹框里的关键字,比如搜索去设置,可能会出来两个结果,先对其中一个进行操作,然后对另一个也同样操作
  11. 看一下这两个脚本,可以看出里面有三个地方检查了权限,下面我们可以跟着第8步的操作,把这三个地方还有另个脚本的权限检查替换掉,方法如下
  12. 打开AndroidKiller,在工程管理器中找到这个文件,找到其他权限,将其替换成WRITE_EXTERNAL_STORAGE
  13. 点左上角的编译测试一下
  14. OK,权限问题解决

去广告

  1. 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看

  2. 东西还不少,可以把不是开罗的Activity都删掉,如果不放心可以删完之后去模拟器上测测


    具体操作方法可以先点击工程管理器,在结构的最后几项里有个叫AndroidManifest.xml的文件,双击编辑。然后找里面的Activity元素,看他的android:name属性,属性值里没有kairogame的都可以删除。(如果要删除的Activity里有子元素也得删除)

  3. 其他的Receiver和Service也都可以删除,方法和删Activity一样(非必要)

  4. 这是删完多余Activity和Receiver和Service后的样子(还有权限)

  5. 可以测试一下,发现进入游戏之后下面的框没有消失,看来有可能在Unity里控制

  6. 打开dnspy,用他打开Unity库(位置在程序根目录\projects\包名\Project\assets\bin\Data\Managed

  7. 可以看到有个库叫kairo.unity.ad,有可能是控制广告用的,打开看看,里面有个GetAdHeight函数


    指向了GameDefines.GetAdHeight函数,我们追踪进去看看

    这里又指向了一个叫做ADMOBHEIGHT的静态变量,其内容为Screen.height / 12,即为屏幕的1/12,可以看到这个函数的上面有个叫ADMOB_ENABLE的变量,其值为true,有可能是控制广告开关的地方。

  8. 我们这里把ADMOB_ENABLE改成false,操作方法如下:
    ADMOB_ENABLE右键,选择编辑方法,在修改代码窗口中找到GameDefines.ADMOB_ENABLE = true;,将其改为GameDefines.ADMOB_ENABLE = false;,点击右下角的编译,回到主窗口,点击左上角的文件,选择保存模块,再点击确定即可

  9. 回到AndroidKiller,编译看一下下面的广告栏有没有消失

  10. OK解决

修改金币

  1. 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
  2. 打开dnspy,用他打开Unity库(位置在程序根目录\projects\包名\Project\assets\bin\Data\Managed
  3. 先打开游戏看看,我们的初始金币是20000

    回到dnspy,先点击我们的Assembly-CSharp模块(点不点都可以),然后点击编辑->搜索程序集(Ctrl+Shift+K),输入20000,搜索类型选择最下面的数字\字符串,搜索范围选择所有文件

    可以看到第一项是game.Player类的构造函数,我们双击点进去看看

    大概率来说,这个20000就是初始金钱了

修改初始金币

  1. money_进行右键,点击编辑方法,找到20000,修改成想要的数字,然后点编译即可(如果编辑方法下面报错的话可以先关闭编辑方法,还是右键,选择编辑IL指令,找里面的0x4E20(这里是16进制,你直接写10进制进去不影响),改成你想要的数字,比如999999,然后点确定即可),修改完点文件->保存模块->确定,即可
  2. 回到AndroidKiller,编译看一下新存档进去有没有999999的钱
  3. OK解决

减变加

  1. money_进行右键,点击分析,查看他的赋值于

    可以看出第一条大概率是用钱或加钱的时候使用的函数
    第二条应该是读存档的时候用的函数
    第三条就是我们刚刚的新存档的函数
  2. 我们进入game.Player.AddMoney这个函数

    可以看到前半段是算钱的,后半段大概率是算成就之类还有反作弊之类的(防内存修改。吧)所以我们还是老套路,把这个val的值绝对值一下即可
  3. 对函数内容右键,选择编辑方法,在方法的第一行加上val = JMath.Abs(val);(这里的JMath.Abs在函数后面用到了,我们直接拿来用就行)点击编译,修改完点文件->保存模块->确定,即可
  4. 回到AndroidKiller,编译看一下用钱之后的变化

    这里我用钱反而钱变多了,OK

修改代币

  1. 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
  2. 打开dnspy,用他打开Unity库(位置在程序根目录\projects\包名\Project\assets\bin\Data\Managed
  3. 再进游戏,选择菜单->运营->歪罗商店,点击观看视频,会弹出接收奖励的对话框,然后会给你几个到几十个不等的歪罗点数,如果我们还想看会有CD,我们需要把CD去掉,然后把奖励的点数调高就可以随时随地的获得代币了,我们先从接收奖励入手

    我们去dnspy搜索这个接收奖励,先点击我们的Assembly-CSharp模块(点不点都可以),然后点击编辑->搜索程序集(Ctrl+Shift+K),输入接收奖励,搜索类型选择最下面的数字\字符串,搜索范围选择所有文件

    可以看出这个ProExShop比较像一点,我们点击进入这个函数

    伪代码:
if(玩家数据中没有Key的名称为Skitime){
  if(玩家没联网){
          提示("检查网络状态");
  }else{
          玩家数据.设置Key为Skitime的项,值为当前时间;
          显示广告;
          提示("正在接收奖励");
          给奖励();
  }
}else{
  上次记录的时间=玩家数据中的Skitime的值;
  差值=上次记录的时间-现在时间;
  if(差值<300){
          提示("CD300秒");
  }else{
          玩家数据.设置Key为Skitime的项,值为当前时间;
          显示广告;
          提示("正在接收奖励");
          给奖励();
  }
}

我们需要做的事:把差值的阈值改小,修改给奖励的地方
4. 右键,编辑方法,将if (timeSpan.TotalSeconds < 300.0)处的300改小即可,改成1啊2啊啥的都行,编译,OK
5. 双击need1back(),进入函数,可以看出这里做了一个概率系统,阶梯型的给代币,这里我们在概率系统执行完之后将我们想要的值赋给num2就可以替换掉概率系统,而达到每次看视频都是一样的效果了
6. 右键,编辑方法,在概率系统结束后的第一行,也就是MyFormBase.apdat_.sysSave_.ints[59]++;的前一行加上num2 = 想要的数;即可,例:


这样每次就会给我加500点了,点击编译,点文件->保存模块->确定,即可
7. 回到AndroidKiller,编译看一下点查看广告后还有没有cd,有没有一次给500

OK,两秒1000发

原软件下载地址

百度云盘

链接:https://pan.baidu.com/s/14rTJWx9Pt62g9GLT4O3u-g
提取码:690d

免费评分

参与人数 13吾爱币 +13 热心值 +12 收起 理由
KirinK + 1 + 1 谢谢@Thanks!
FORS + 1 我很赞同!
majingjing + 1 + 1 热心回复!
yyyyy654 + 1 + 1 谢谢@Thanks!
絵飛ヾ的魚 + 1 + 1 我很赞同!
Wakes + 1 用心讨论,共获提升!
SakuraYaaa + 1 + 1 用心讨论,共获提升!
Liyao415 + 1 我很赞同!
wenxin2150 + 1 + 1 受益匪浅
nullable + 1 最喜欢看群里的大佬写教程了,图又好看,声音又好听
大衬衫 + 1 + 1 多发一些!
190044355 + 1 + 1 我很赞同!
小十二 + 4 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
yyyyy654 发表于 2021-11-4 10:37
大佬你好,看了你的贴子,想自己试试把一些反加钱的游戏改回正常版自己玩
按照大佬您提供的方法和滑雪场原包,进行的挺顺利的,但是自己开始尝试改的时候出现了以下问题
在进行“打开dnspy,用他打开Unity库(位置在程序根目录\projects\包名\Project\assets\bin\Data\Managed)”这一步时
在冒险迷宫村2 里面,此路径下面是三个文件夹,并且文件夹内没有任何dll后缀的文件,看起来像是被加密了
不知道这种情况下是怎么样的修方法呢,
谢谢了~
推荐
 楼主| 我已经蓝屏 发表于 2021-7-15 16:17 |楼主
ArrayList· 发表于 2021-7-15 16:13
很强,没试呢,这东西跟八门那种修改数值有啥子 区别么。

八门是内存修改
这个是程序性质的修改,对于结果来说区别确实不大
3#
ArrayList· 发表于 2021-7-15 16:13
很强,没试呢,这东西跟八门那种修改数值有啥子 区别么。
4#
ArrayList· 发表于 2021-7-15 16:20
我已经蓝屏 发表于 2021-7-15 16:17
八门是内存修改
这个是程序性质的修改,对于结果来说区别确实不大

,可以兄弟,做的很可以。有空研究一下
5#
嘿嘿嘿001 发表于 2021-7-15 16:23
一直很喜欢玩开罗游戏,感谢分享
头像被屏蔽
6#
阿桂哥 发表于 2021-7-15 16:33
提示: 该帖被管理员或版主屏蔽
7#
qq934679515 发表于 2021-7-15 16:34
那游戏本体从哪里得到呢
8#
yingsummery 发表于 2021-7-15 16:37
多谢楼主,好人啊
9#
芽衣 发表于 2021-7-15 16:45
直装修改还是很方便的,就是逆向麻烦点。
10#
板鸭Es 发表于 2021-7-15 16:51
ArrayList· 发表于 2021-7-15 16:13
很强,没试呢,这东西跟八门那种修改数值有啥子 区别么。

比八门看起来牛B克拉斯
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表